From c36f03820bffe13598ac3c8fc476e85d417172db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 26 Aug 2023 03:48:45 +0000 Subject: [PATCH] deploy: 9b5c1844d0da9472097450855292b60f7214e501 --- 404.html | 10 +- assets/css/styles.2c43762e.css | 1 + assets/css/styles.5dd3a1e0.css | 1 - ...ethod-73aceb5fbd6984e821b9a40d254126be.JPG | Bin 56760 -> 0 bytes ...vel_0-85fa26cbb640e98765ca207be6fdd694.JPG | Bin 64484 -> 0 bytes ...Share-0de879d5fb3dc6fba964744db5bb6827.jpg | Bin 95840 -> 0 bytes ..._View-93330078b8f073697286d7f11d8cf2fe.JPG | Bin 332398 -> 0 bytes ...vel_1-6d97a2c34c343f745537069876f68a60.JPG | Bin 24060 -> 0 bytes ...vel_2-0ce359bddd479b9830e12615ebe07fa1.JPG | Bin 25238 -> 0 bytes ...vel_3-c5fd4917d16153206e797c5042ea33ac.JPG | Bin 26255 -> 0 bytes assets/js/0a1bdeaa.03794584.js | 1 + assets/js/104dd0b4.c6688387.js | 1 - assets/js/104dd0b4.cb017fc4.js | 1 + assets/js/10869db1.891a9b7e.js | 1 + ...b3368.3f60616a.js => 14eb3368.64ec88ed.js} | 2 +- .../js/17896441.63195e72.js | 2 +- assets/js/18ade0c5.09969b34.js | 1 + assets/js/18ade0c5.2392765b.js | 1 - ...2e1e1.cdd07291.js => 1942e1e1.57591bcc.js} | 2 +- .../js/1be78505.fe92450b.js | 2 +- assets/js/1c36a847.164c5f27.js | 1 + assets/js/26113f5d.00579de4.js | 1 - assets/js/26113f5d.25361a9a.js | 1 + assets/js/277cf690.38431556.js | 1 + assets/js/313b9001.cb5025d9.js | 1 + assets/js/4caccc33.5ac361b7.js | 1 + assets/js/4caccc33.d4b40cef.js | 1 - assets/js/55054ac6.0e35be01.js | 1 - assets/js/55054ac6.d240c09c.js | 1 + assets/js/5f60a020.0b3b8092.js | 1 + assets/js/6b42df2b.8ec38f25.js | 1 - assets/js/6b42df2b.b3fc4cd9.js | 1 + ...22de7.571cb6ba.js => 79722de7.c6355df8.js} | 2 +- assets/js/798531cc.50b3e9dc.js | 1 - assets/js/798531cc.d412a911.js | 1 + assets/js/7b378cd1.0f5b93da.js | 1 + assets/js/7b378cd1.b4d3598d.js | 1 - assets/js/7c081f1b.bc3f743f.js | 1 - assets/js/7c081f1b.d355be4e.js | 1 + assets/js/81b28c9f.30a79c58.js | 1 + assets/js/81b28c9f.b74c329f.js | 1 - assets/js/8944547a.ffcf72d1.js | 1 + assets/js/8a89048a.938a4041.js | 1 + assets/js/90126b70.5b9aafb8.js | 1 - assets/js/935f2afb.52175e15.js | 1 + assets/js/935f2afb.5bd72703.js | 1 - ...b789d.5f6c0f67.js => 989b789d.f7c7fa37.js} | 2 +- assets/js/9d23aec8.0cef40c3.js | 1 + assets/js/a78d85c7.1bc9f9a4.js | 1 - assets/js/aed38285.fb0ff2ca.js | 1 + ...723e0.d8423627.js => b13723e0.683bf322.js} | 2 +- assets/js/ba2ffba3.8ff5a899.js | 1 - assets/js/ba2ffba3.98361f12.js | 1 + ...37b9f.e823dded.js => e8c37b9f.99708cf7.js} | 2 +- assets/js/f0844d9f.021b24b2.js | 1 + assets/js/f0844d9f.288ed01a.js | 1 - assets/js/f7b0b541.0b5384b3.js | 1 + assets/js/fee3ac30.c445f0d9.js | 1 + assets/js/main.9f5bb88f.js | 2 + ...CENSE.txt => main.9f5bb88f.js.LICENSE.txt} | 0 assets/js/main.b41d83e9.js | 2 - assets/js/runtime~main.4e8da702.js | 1 + assets/js/runtime~main.59c59235.js | 1 - category/contribute/index.html | 10 +- category/faq/index.html | 10 +- category/getting-started/index.html | 12 +- category/guides/index.html | 10 +- category/legacy-documentation/index.html | 10 +- category/manual/index.html | 12 +- category/release-notes/index.html | 10 +- category/tutorial---basics/index.html | 10 +- category/tutorial---extras/index.html | 10 +- category/unraid-connect/index.html | 10 +- category/unraid-os/index.html | 10 +- category/zfs/index.html | 12 +- connect/about/index.html | 10 +- connect/help/index.html | 10 +- connect/remote-access/index.html | 12 +- contribute-to-docs/intro/index.html | 10 +- .../congratulations/index.html | 10 +- .../create-a-blog-post/index.html | 10 +- .../create-a-document/index.html | 10 +- .../tutorial-basics/create-a-page/index.html | 10 +- .../markdown-features/index.html | 10 +- .../manage-docs-versions/index.html | 10 +- .../translate-your-site/index.html | 10 +- de/404.html | 10 +- de/assets/css/styles.2c43762e.css | 1 + de/assets/css/styles.5dd3a1e0.css | 1 - ...ethod-73aceb5fbd6984e821b9a40d254126be.JPG | Bin 56760 -> 0 bytes ...vel_0-85fa26cbb640e98765ca207be6fdd694.JPG | Bin 64484 -> 0 bytes ...Share-0de879d5fb3dc6fba964744db5bb6827.jpg | Bin 95840 -> 0 bytes ..._View-93330078b8f073697286d7f11d8cf2fe.JPG | Bin 332398 -> 0 bytes ...vel_1-6d97a2c34c343f745537069876f68a60.JPG | Bin 24060 -> 0 bytes ...vel_2-0ce359bddd479b9830e12615ebe07fa1.JPG | Bin 25238 -> 0 bytes ...vel_3-c5fd4917d16153206e797c5042ea33ac.JPG | Bin 26255 -> 0 bytes de/assets/js/0a1bdeaa.56c24c5c.js | 1 + de/assets/js/104dd0b4.4c6e2a66.js | 1 + de/assets/js/104dd0b4.c30f249f.js | 1 - de/assets/js/10869db1.88f17a27.js | 1 + ...b3368.3f60616a.js => 14eb3368.64ec88ed.js} | 2 +- .../assets/js/17896441.63195e72.js | 2 +- de/assets/js/18ade0c5.053494f9.js | 1 - de/assets/js/18ade0c5.c8dadadd.js | 1 + ...2e1e1.b8ff7e1c.js => 1942e1e1.2eb0ca01.js} | 2 +- .../assets/js/1be78505.fe92450b.js | 2 +- de/assets/js/1c36a847.fd007298.js | 1 + de/assets/js/26113f5d.634ef45c.js | 1 - de/assets/js/26113f5d.e13c53a4.js | 1 + de/assets/js/277cf690.17346898.js | 1 + de/assets/js/313b9001.cdf21bf4.js | 1 + de/assets/js/4caccc33.55a7fea4.js | 1 - de/assets/js/4caccc33.e7587a57.js | 1 + de/assets/js/55054ac6.15a9a5e7.js | 1 - de/assets/js/55054ac6.1ee0bde6.js | 1 + ...01c12.f203cf55.js => 57b01c12.6146938b.js} | 2 +- de/assets/js/5f60a020.d4885282.js | 1 + de/assets/js/6b42df2b.150721df.js | 1 - de/assets/js/6b42df2b.6c8e10cf.js | 1 + ...22de7.9922385a.js => 79722de7.3287b8ea.js} | 2 +- ...531cc.01db7adb.js => 798531cc.50fb77d7.js} | 2 +- de/assets/js/7b378cd1.04331944.js | 1 - de/assets/js/7b378cd1.2086cc56.js | 1 + de/assets/js/7c081f1b.293f9388.js | 1 + de/assets/js/7c081f1b.5b7300fe.js | 1 - de/assets/js/81b28c9f.1aa3e404.js | 1 - de/assets/js/81b28c9f.4d5b544d.js | 1 + de/assets/js/8944547a.2fa0db38.js | 1 + de/assets/js/8a89048a.f67f006d.js | 1 + de/assets/js/90126b70.6124f2a7.js | 1 - de/assets/js/935f2afb.133a30ef.js | 1 + de/assets/js/935f2afb.464392bf.js | 1 - de/assets/js/9d23aec8.59a08b27.js | 1 + de/assets/js/a78d85c7.6182cd19.js | 1 - de/assets/js/aed38285.c2df1fb8.js | 1 + ...723e0.ea0ac449.js => b13723e0.4a95c8fd.js} | 2 +- ...ffba3.aa6fca37.js => ba2ffba3.402517ff.js} | 2 +- ...37b9f.4daaab11.js => e8c37b9f.3fc34400.js} | 2 +- de/assets/js/f0844d9f.da6a1766.js | 1 - de/assets/js/f0844d9f.f2d9f43d.js | 1 + de/assets/js/f7b0b541.aebce8e6.js | 1 + de/assets/js/fee3ac30.87c6d149.js | 1 + de/assets/js/main.76054a9f.js | 2 - de/assets/js/main.85bcca4b.js | 2 + ...CENSE.txt => main.85bcca4b.js.LICENSE.txt} | 0 de/assets/js/runtime~main.4d0a043d.js | 1 - de/assets/js/runtime~main.7fb1f846.js | 1 + de/category/contribute/index.html | 10 +- de/category/faq/index.html | 10 +- de/category/getting-started/index.html | 12 +- de/category/guides/index.html | 10 +- de/category/legacy-documentation/index.html | 10 +- de/category/manual/index.html | 12 +- de/category/release-notes/index.html | 10 +- de/category/tutorial---basics/index.html | 10 +- de/category/tutorial---extras/index.html | 10 +- de/category/unraid-connect/index.html | 10 +- de/category/unraid-os/index.html | 10 +- de/category/zfs/index.html | 12 +- de/connect/about/index.html | 10 +- de/connect/help/index.html | 10 +- de/connect/remote-access/index.html | 12 +- de/contribute-to-docs/intro/index.html | 10 +- .../congratulations/index.html | 10 +- .../create-a-blog-post/index.html | 10 +- .../create-a-document/index.html | 10 +- .../tutorial-basics/create-a-page/index.html | 10 +- .../markdown-features/index.html | 10 +- .../manage-docs-versions/index.html | 10 +- .../translate-your-site/index.html | 10 +- de/index.html | 10 +- .../dual-boot-unraid-and-windows/index.html | 10 +- .../index.html | 10 +- .../Articles/upgrading-to-unraid-6/index.html | 10 +- de/legacy/FAQ/Parity/index.html | 10 +- de/legacy/FAQ/cache-disk/index.html | 10 +- .../FAQ/check-disk-filesystems/index.html | 10 +- .../FAQ/check-harddrive-speed/index.html | 10 +- de/legacy/FAQ/console/index.html | 10 +- .../FAQ/parity-swap-procedure/index.html | 10 +- .../FAQ/replacing-a-data-drive/index.html | 10 +- .../replacing-multiple-data-drives/index.html | 10 +- .../index.html | 10 +- .../setup-sleep-and-wake-on-lan/index.html | 10 +- de/legacy/FAQ/shrink-array/index.html | 10 +- de/legacy/FAQ/terminal-access/index.html | 10 +- .../index.html | 10 +- .../index.html | 10 +- .../understanding-smart-reports/index.html | 10 +- .../usb-flash-drive-preparation/index.html | 12 +- de/search/index.html | 10 +- de/sitemap.xml | 2 +- de/unraid-os/faq/licensing-faq/index.html | 12 +- de/unraid-os/faq/os-faq/index.html | 17 +- .../redeem-license-activation-code/index.html | 12 +- de/unraid-os/faq/unraid-account/index.html | 10 +- .../configuring-time-machine/index.html | 10 +- .../guides/wol-setup-for-unraid/index.html | 10 +- .../manual/additional-settings/index.html | 14 +- de/unraid-os/manual/applications/index.html | 14 +- .../changing-the-flash-device/index.html | 12 +- .../manual/docker-management/index.html | 14 +- .../manual/getting-started/index.html | 14 +- .../manual-install-method/index.html | 14 +- de/unraid-os/manual/multi-language/index.html | 14 +- .../security/data-encryption/index.html | 22 + .../manual/security/flash-drive/index.html | 22 + .../manual/security/good-practices/index.html | 26 + de/unraid-os/manual/security/index.html | 529 +----------------- .../security/secure-webgui-ssl/index.html | 22 + de/unraid-os/manual/security/vpn/index.html | 27 + .../manual/shares/create-a-share/index.html | 22 + .../manual/shares/delete-a-share/index.html | 22 + .../manual/shares/disk-shares/index.html | 22 + de/unraid-os/manual/shares/index.html | 489 +--------------- .../manual/shares/network-access/index.html | 22 + .../manual/shares/user-shares/index.html | 27 + .../manual/storage-management/index.html | 16 +- de/unraid-os/manual/tools/index.html | 14 +- .../manual/troubleshooting/index.html | 14 +- .../manual/upgrade-instructions/index.html | 12 +- de/unraid-os/manual/users/index.html | 12 +- de/unraid-os/manual/vm-management/index.html | 12 +- de/unraid-os/manual/vm-support/index.html | 12 +- de/unraid-os/manual/what-is-unraid/index.html | 14 +- .../manual/zfs/placeholder/index.html | 12 +- de/unraid-os/release-notes/6.10.0/index.html | 14 +- de/unraid-os/release-notes/6.10.1/index.html | 10 +- de/unraid-os/release-notes/6.10.2/index.html | 10 +- de/unraid-os/release-notes/6.10.3/index.html | 10 +- de/unraid-os/release-notes/6.11.0/index.html | 10 +- de/unraid-os/release-notes/6.11.1/index.html | 10 +- de/unraid-os/release-notes/6.11.2/index.html | 10 +- de/unraid-os/release-notes/6.11.3/index.html | 10 +- de/unraid-os/release-notes/6.11.4/index.html | 10 +- de/unraid-os/release-notes/6.11.5/index.html | 10 +- de/unraid-os/release-notes/6.12.0/index.html | 10 +- de/unraid-os/release-notes/6.12.1/index.html | 10 +- de/unraid-os/release-notes/6.12.2/index.html | 10 +- de/unraid-os/release-notes/6.12.3/index.html | 10 +- de/unraid-os/release-notes/6.9.0/index.html | 10 +- de/unraid-os/release-notes/6.9.1/index.html | 10 +- de/unraid-os/release-notes/6.9.2/index.html | 10 +- es/404.html | 10 +- es/assets/css/styles.2c43762e.css | 1 + es/assets/css/styles.5dd3a1e0.css | 1 - ...ethod-73aceb5fbd6984e821b9a40d254126be.JPG | Bin 56760 -> 0 bytes ...vel_0-85fa26cbb640e98765ca207be6fdd694.JPG | Bin 64484 -> 0 bytes ...Share-0de879d5fb3dc6fba964744db5bb6827.jpg | Bin 95840 -> 0 bytes ..._View-93330078b8f073697286d7f11d8cf2fe.JPG | Bin 332398 -> 0 bytes ...vel_1-6d97a2c34c343f745537069876f68a60.JPG | Bin 24060 -> 0 bytes ...vel_2-0ce359bddd479b9830e12615ebe07fa1.JPG | Bin 25238 -> 0 bytes ...vel_3-c5fd4917d16153206e797c5042ea33ac.JPG | Bin 26255 -> 0 bytes es/assets/js/0a1bdeaa.b15b63b5.js | 1 + es/assets/js/104dd0b4.9393eea1.js | 1 + es/assets/js/104dd0b4.dec56907.js | 1 - es/assets/js/10869db1.80b06e87.js | 1 + .../assets/js/14eb3368.64ec88ed.js | 2 +- .../assets/js/17896441.63195e72.js | 2 +- ...17e09.aacc5121.js => 18d17e09.6ec93d3c.js} | 2 +- ...2e1e1.55c71b28.js => 1942e1e1.1c6bd3dd.js} | 2 +- .../assets/js/1be78505.fe92450b.js | 2 +- es/assets/js/1c36a847.97768b3e.js | 1 + es/assets/js/25ec094f.9e09d3eb.js | 1 - es/assets/js/25ec094f.fb8cab05.js | 1 + es/assets/js/26113f5d.aeb54beb.js | 1 + es/assets/js/26113f5d.b2fffa94.js | 1 - es/assets/js/277cf690.3285e9f4.js | 1 + es/assets/js/313b9001.b77b1e8e.js | 1 + es/assets/js/4caccc33.7c1a0ec6.js | 1 - es/assets/js/4caccc33.ce493ad3.js | 1 + es/assets/js/55054ac6.4d5e11e8.js | 1 + es/assets/js/55054ac6.53671d7d.js | 1 - es/assets/js/5f60a020.9ba72785.js | 1 + es/assets/js/6b42df2b.5ce005ce.js | 1 - es/assets/js/6b42df2b.73043424.js | 1 + ...22de7.786e2fb3.js => 79722de7.01d9d74c.js} | 2 +- ...531cc.2c20cdd9.js => 798531cc.f5810f3b.js} | 2 +- es/assets/js/7b378cd1.a6c7e676.js | 1 + es/assets/js/7b378cd1.af7c4dc7.js | 1 - es/assets/js/7c081f1b.bc01a910.js | 1 - es/assets/js/7c081f1b.dc7dcdeb.js | 1 + es/assets/js/81b28c9f.5ca9e0f7.js | 1 - es/assets/js/81b28c9f.dfb14a8b.js | 1 + es/assets/js/8944547a.341d22ef.js | 1 + es/assets/js/8a89048a.2bc2fffa.js | 1 + es/assets/js/90126b70.9f6b92ae.js | 1 - es/assets/js/935f2afb.b09d5f8b.js | 1 + es/assets/js/935f2afb.d9784532.js | 1 - es/assets/js/9d23aec8.1333bc54.js | 1 + es/assets/js/a78d85c7.dfd666f5.js | 1 - es/assets/js/aed38285.94b00935.js | 1 + ...723e0.f648e1ab.js => b13723e0.4f513726.js} | 2 +- ...ffba3.580a5eca.js => ba2ffba3.5183065a.js} | 2 +- es/assets/js/f0844d9f.1f01c257.js | 1 + es/assets/js/f0844d9f.599da76c.js | 1 - es/assets/js/f7b0b541.7dcf9237.js | 1 + es/assets/js/fee3ac30.aeeafe4b.js | 1 + es/assets/js/main.284febb9.js | 2 - es/assets/js/main.62fd37dd.js | 2 + ...CENSE.txt => main.62fd37dd.js.LICENSE.txt} | 0 es/assets/js/runtime~main.2fc7ff6e.js | 1 - es/assets/js/runtime~main.d7bdb25b.js | 1 + es/category/contribute/index.html | 10 +- es/category/faq/index.html | 10 +- es/category/getting-started/index.html | 12 +- es/category/guides/index.html | 10 +- es/category/legacy-documentation/index.html | 10 +- es/category/manual/index.html | 12 +- es/category/release-notes/index.html | 10 +- es/category/tutorial---basics/index.html | 10 +- es/category/tutorial---extras/index.html | 10 +- es/category/unraid-connect/index.html | 10 +- es/category/unraid-os/index.html | 10 +- es/category/zfs/index.html | 12 +- es/connect/about/index.html | 10 +- es/connect/help/index.html | 10 +- es/connect/remote-access/index.html | 12 +- es/contribute-to-docs/intro/index.html | 10 +- .../congratulations/index.html | 10 +- .../create-a-blog-post/index.html | 10 +- .../create-a-document/index.html | 10 +- .../tutorial-basics/create-a-page/index.html | 10 +- .../markdown-features/index.html | 10 +- .../manage-docs-versions/index.html | 10 +- .../translate-your-site/index.html | 10 +- es/index.html | 10 +- .../dual-boot-unraid-and-windows/index.html | 10 +- .../index.html | 10 +- .../Articles/upgrading-to-unraid-6/index.html | 10 +- es/legacy/FAQ/Parity/index.html | 10 +- es/legacy/FAQ/cache-disk/index.html | 10 +- .../FAQ/check-disk-filesystems/index.html | 10 +- .../FAQ/check-harddrive-speed/index.html | 10 +- es/legacy/FAQ/console/index.html | 10 +- .../FAQ/parity-swap-procedure/index.html | 10 +- .../FAQ/replacing-a-data-drive/index.html | 10 +- .../replacing-multiple-data-drives/index.html | 10 +- .../index.html | 10 +- .../setup-sleep-and-wake-on-lan/index.html | 10 +- es/legacy/FAQ/shrink-array/index.html | 10 +- es/legacy/FAQ/terminal-access/index.html | 10 +- .../index.html | 10 +- .../index.html | 10 +- .../understanding-smart-reports/index.html | 10 +- .../usb-flash-drive-preparation/index.html | 12 +- es/search/index.html | 10 +- es/sitemap.xml | 2 +- es/unraid-os/faq/licensing-faq/index.html | 12 +- es/unraid-os/faq/os-faq/index.html | 17 +- .../redeem-license-activation-code/index.html | 10 +- es/unraid-os/faq/unraid-account/index.html | 10 +- .../configuring-time-machine/index.html | 10 +- .../guides/wol-setup-for-unraid/index.html | 10 +- .../manual/additional-settings/index.html | 14 +- es/unraid-os/manual/applications/index.html | 14 +- .../changing-the-flash-device/index.html | 12 +- .../manual/docker-management/index.html | 14 +- .../manual/getting-started/index.html | 14 +- .../manual-install-method/index.html | 12 +- es/unraid-os/manual/multi-language/index.html | 14 +- .../security/data-encryption/index.html | 22 + .../manual/security/flash-drive/index.html | 22 + .../manual/security/good-practices/index.html | 26 + es/unraid-os/manual/security/index.html | 529 +----------------- .../security/secure-webgui-ssl/index.html | 22 + es/unraid-os/manual/security/vpn/index.html | 27 + .../manual/shares/create-a-share/index.html | 22 + .../manual/shares/delete-a-share/index.html | 22 + .../manual/shares/disk-shares/index.html | 22 + es/unraid-os/manual/shares/index.html | 489 +--------------- .../manual/shares/network-access/index.html | 22 + .../manual/shares/user-shares/index.html | 27 + .../manual/storage-management/index.html | 16 +- es/unraid-os/manual/tools/index.html | 14 +- .../manual/troubleshooting/index.html | 14 +- .../manual/upgrade-instructions/index.html | 12 +- es/unraid-os/manual/users/index.html | 12 +- es/unraid-os/manual/vm-management/index.html | 12 +- es/unraid-os/manual/vm-support/index.html | 12 +- es/unraid-os/manual/what-is-unraid/index.html | 14 +- .../manual/zfs/placeholder/index.html | 12 +- es/unraid-os/release-notes/6.10.0/index.html | 14 +- es/unraid-os/release-notes/6.10.1/index.html | 10 +- es/unraid-os/release-notes/6.10.2/index.html | 10 +- es/unraid-os/release-notes/6.10.3/index.html | 10 +- es/unraid-os/release-notes/6.11.0/index.html | 10 +- es/unraid-os/release-notes/6.11.1/index.html | 10 +- es/unraid-os/release-notes/6.11.2/index.html | 10 +- es/unraid-os/release-notes/6.11.3/index.html | 10 +- es/unraid-os/release-notes/6.11.4/index.html | 10 +- es/unraid-os/release-notes/6.11.5/index.html | 10 +- es/unraid-os/release-notes/6.12.0/index.html | 10 +- es/unraid-os/release-notes/6.12.1/index.html | 10 +- es/unraid-os/release-notes/6.12.2/index.html | 10 +- es/unraid-os/release-notes/6.12.3/index.html | 10 +- es/unraid-os/release-notes/6.9.0/index.html | 10 +- es/unraid-os/release-notes/6.9.1/index.html | 10 +- es/unraid-os/release-notes/6.9.2/index.html | 10 +- fr/404.html | 10 +- fr/assets/css/styles.2c43762e.css | 1 + fr/assets/css/styles.5dd3a1e0.css | 1 - ...ethod-73aceb5fbd6984e821b9a40d254126be.JPG | Bin 56760 -> 0 bytes ...vel_0-85fa26cbb640e98765ca207be6fdd694.JPG | Bin 64484 -> 0 bytes ...Share-0de879d5fb3dc6fba964744db5bb6827.jpg | Bin 95840 -> 0 bytes ..._View-93330078b8f073697286d7f11d8cf2fe.JPG | Bin 332398 -> 0 bytes ...vel_1-6d97a2c34c343f745537069876f68a60.JPG | Bin 24060 -> 0 bytes ...vel_2-0ce359bddd479b9830e12615ebe07fa1.JPG | Bin 25238 -> 0 bytes ...vel_3-c5fd4917d16153206e797c5042ea33ac.JPG | Bin 26255 -> 0 bytes fr/assets/js/0a1bdeaa.67c90df9.js | 1 + fr/assets/js/104dd0b4.384ecc12.js | 1 - fr/assets/js/104dd0b4.50f572e9.js | 1 + fr/assets/js/10869db1.dae8600a.js | 1 + .../assets/js/14eb3368.64ec88ed.js | 2 +- .../assets/js/17896441.63195e72.js | 2 +- fr/assets/js/18ade0c5.1e8e6a61.js | 1 - fr/assets/js/18ade0c5.d177a698.js | 1 + ...2e1e1.5de57aa5.js => 1942e1e1.66f2d29f.js} | 2 +- .../assets/js/1be78505.fe92450b.js | 2 +- fr/assets/js/1c36a847.3d007acd.js | 1 + fr/assets/js/26113f5d.5bf370f5.js | 1 + fr/assets/js/26113f5d.e5de3f41.js | 1 - fr/assets/js/277cf690.163a9f3a.js | 1 + fr/assets/js/313b9001.ac3c6c89.js | 1 + fr/assets/js/4caccc33.5982ae04.js | 1 + fr/assets/js/4caccc33.6ec19246.js | 1 - fr/assets/js/55054ac6.9a7e37fd.js | 1 - fr/assets/js/55054ac6.ce6949e6.js | 1 + fr/assets/js/5f60a020.51573a8c.js | 1 + fr/assets/js/6b42df2b.1891268c.js | 1 - fr/assets/js/6b42df2b.f9bdc3ba.js | 1 + ...22de7.81e56057.js => 79722de7.47e24423.js} | 2 +- ...531cc.1cc97956.js => 798531cc.7aea1eb2.js} | 2 +- fr/assets/js/7b378cd1.37a73256.js | 1 + fr/assets/js/7b378cd1.9c8375cf.js | 1 - fr/assets/js/7c081f1b.1444274b.js | 1 - fr/assets/js/7c081f1b.92e8a38a.js | 1 + fr/assets/js/81b28c9f.62e45f75.js | 1 + fr/assets/js/81b28c9f.c357452f.js | 1 - fr/assets/js/8944547a.62c05971.js | 1 + fr/assets/js/8a89048a.df69773d.js | 1 + fr/assets/js/90126b70.a3f6e806.js | 1 - fr/assets/js/935f2afb.409d144b.js | 1 - fr/assets/js/935f2afb.95f515d2.js | 1 + fr/assets/js/9d23aec8.54184a2d.js | 1 + fr/assets/js/a78d85c7.e5f7dbb4.js | 1 - fr/assets/js/aed38285.863e5bc8.js | 1 + ...723e0.86922bbf.js => b13723e0.2af37b56.js} | 2 +- ...ca393.77647b34.js => b58ca393.428256a7.js} | 2 +- ...ffba3.c0c2d7db.js => ba2ffba3.d8131fc7.js} | 2 +- ...37b9f.e264fcc7.js => e8c37b9f.14d390cd.js} | 2 +- fr/assets/js/f0844d9f.5c10117e.js | 1 + fr/assets/js/f0844d9f.b2aa73c5.js | 1 - fr/assets/js/f7b0b541.dff5b32c.js | 1 + fr/assets/js/fee3ac30.6f487de7.js | 1 + fr/assets/js/main.e6bd8ad0.js | 2 - fr/assets/js/main.f1d56603.js | 2 + ...CENSE.txt => main.f1d56603.js.LICENSE.txt} | 0 fr/assets/js/runtime~main.1bad24bd.js | 1 + fr/assets/js/runtime~main.a9e7a162.js | 1 - fr/category/contribute/index.html | 10 +- fr/category/faq/index.html | 10 +- fr/category/getting-started/index.html | 12 +- fr/category/guides/index.html | 10 +- fr/category/legacy-documentation/index.html | 10 +- fr/category/manual/index.html | 12 +- fr/category/release-notes/index.html | 10 +- fr/category/tutorial---basics/index.html | 10 +- fr/category/tutorial---extras/index.html | 10 +- fr/category/unraid-connect/index.html | 10 +- fr/category/unraid-os/index.html | 10 +- fr/category/zfs/index.html | 12 +- fr/connect/about/index.html | 10 +- fr/connect/help/index.html | 10 +- fr/connect/remote-access/index.html | 12 +- fr/contribute-to-docs/intro/index.html | 10 +- .../congratulations/index.html | 10 +- .../create-a-blog-post/index.html | 10 +- .../create-a-document/index.html | 10 +- .../tutorial-basics/create-a-page/index.html | 10 +- .../markdown-features/index.html | 10 +- .../manage-docs-versions/index.html | 10 +- .../translate-your-site/index.html | 10 +- fr/index.html | 10 +- .../dual-boot-unraid-and-windows/index.html | 10 +- .../index.html | 10 +- .../Articles/upgrading-to-unraid-6/index.html | 10 +- fr/legacy/FAQ/Parity/index.html | 10 +- fr/legacy/FAQ/cache-disk/index.html | 10 +- .../FAQ/check-disk-filesystems/index.html | 10 +- .../FAQ/check-harddrive-speed/index.html | 10 +- fr/legacy/FAQ/console/index.html | 10 +- .../FAQ/parity-swap-procedure/index.html | 10 +- .../FAQ/replacing-a-data-drive/index.html | 10 +- .../replacing-multiple-data-drives/index.html | 10 +- .../index.html | 10 +- .../setup-sleep-and-wake-on-lan/index.html | 10 +- fr/legacy/FAQ/shrink-array/index.html | 10 +- fr/legacy/FAQ/terminal-access/index.html | 10 +- .../index.html | 10 +- .../index.html | 10 +- .../understanding-smart-reports/index.html | 10 +- .../usb-flash-drive-preparation/index.html | 12 +- fr/search/index.html | 10 +- fr/sitemap.xml | 2 +- fr/unraid-os/faq/licensing-faq/index.html | 12 +- fr/unraid-os/faq/os-faq/index.html | 17 +- .../redeem-license-activation-code/index.html | 12 +- fr/unraid-os/faq/unraid-account/index.html | 10 +- .../configuring-time-machine/index.html | 10 +- .../guides/wol-setup-for-unraid/index.html | 10 +- .../manual/additional-settings/index.html | 14 +- fr/unraid-os/manual/applications/index.html | 14 +- .../changing-the-flash-device/index.html | 12 +- .../manual/docker-management/index.html | 14 +- .../manual/getting-started/index.html | 14 +- .../manual-install-method/index.html | 14 +- fr/unraid-os/manual/multi-language/index.html | 14 +- .../security/data-encryption/index.html | 22 + .../manual/security/flash-drive/index.html | 22 + .../manual/security/good-practices/index.html | 26 + fr/unraid-os/manual/security/index.html | 529 +----------------- .../security/secure-webgui-ssl/index.html | 22 + fr/unraid-os/manual/security/vpn/index.html | 27 + .../manual/shares/create-a-share/index.html | 22 + .../manual/shares/delete-a-share/index.html | 22 + .../manual/shares/disk-shares/index.html | 22 + fr/unraid-os/manual/shares/index.html | 489 +--------------- .../manual/shares/network-access/index.html | 22 + .../manual/shares/user-shares/index.html | 27 + .../manual/storage-management/index.html | 16 +- fr/unraid-os/manual/tools/index.html | 14 +- .../manual/troubleshooting/index.html | 14 +- .../manual/upgrade-instructions/index.html | 12 +- fr/unraid-os/manual/users/index.html | 12 +- fr/unraid-os/manual/vm-management/index.html | 12 +- fr/unraid-os/manual/vm-support/index.html | 12 +- fr/unraid-os/manual/what-is-unraid/index.html | 14 +- .../manual/zfs/placeholder/index.html | 12 +- fr/unraid-os/release-notes/6.10.0/index.html | 14 +- fr/unraid-os/release-notes/6.10.1/index.html | 10 +- fr/unraid-os/release-notes/6.10.2/index.html | 10 +- fr/unraid-os/release-notes/6.10.3/index.html | 10 +- fr/unraid-os/release-notes/6.11.0/index.html | 10 +- fr/unraid-os/release-notes/6.11.1/index.html | 10 +- fr/unraid-os/release-notes/6.11.2/index.html | 10 +- fr/unraid-os/release-notes/6.11.3/index.html | 10 +- fr/unraid-os/release-notes/6.11.4/index.html | 10 +- fr/unraid-os/release-notes/6.11.5/index.html | 10 +- fr/unraid-os/release-notes/6.12.0/index.html | 10 +- fr/unraid-os/release-notes/6.12.1/index.html | 10 +- fr/unraid-os/release-notes/6.12.2/index.html | 10 +- fr/unraid-os/release-notes/6.12.3/index.html | 10 +- fr/unraid-os/release-notes/6.9.0/index.html | 10 +- fr/unraid-os/release-notes/6.9.1/index.html | 10 +- fr/unraid-os/release-notes/6.9.2/index.html | 10 +- index.html | 10 +- .../dual-boot-unraid-and-windows/index.html | 10 +- .../index.html | 10 +- .../Articles/upgrading-to-unraid-6/index.html | 10 +- legacy/FAQ/Parity/index.html | 10 +- legacy/FAQ/cache-disk/index.html | 10 +- legacy/FAQ/check-disk-filesystems/index.html | 10 +- legacy/FAQ/check-harddrive-speed/index.html | 10 +- legacy/FAQ/console/index.html | 10 +- legacy/FAQ/parity-swap-procedure/index.html | 10 +- legacy/FAQ/replacing-a-data-drive/index.html | 10 +- .../replacing-multiple-data-drives/index.html | 10 +- .../index.html | 10 +- .../setup-sleep-and-wake-on-lan/index.html | 10 +- legacy/FAQ/shrink-array/index.html | 10 +- legacy/FAQ/terminal-access/index.html | 10 +- .../index.html | 10 +- .../index.html | 10 +- .../understanding-smart-reports/index.html | 10 +- .../usb-flash-drive-preparation/index.html | 12 +- search/index.html | 10 +- sitemap.xml | 2 +- unraid-os/faq/licensing-faq/index.html | 12 +- unraid-os/faq/os-faq/index.html | 17 +- .../redeem-license-activation-code/index.html | 12 +- unraid-os/faq/unraid-account/index.html | 10 +- .../configuring-time-machine/index.html | 10 +- .../guides/wol-setup-for-unraid/index.html | 10 +- .../manual/additional-settings/index.html | 14 +- unraid-os/manual/applications/index.html | 14 +- .../changing-the-flash-device/index.html | 12 +- unraid-os/manual/docker-management/index.html | 14 +- unraid-os/manual/getting-started/index.html | 14 +- .../manual-install-method/index.html | 14 +- unraid-os/manual/multi-language/index.html | 14 +- .../security/data-encryption/index.html | 22 + .../manual/security/flash-drive/index.html | 22 + .../manual/security/good-practices/index.html | 26 + unraid-os/manual/security/index.html | 529 +----------------- .../security/secure-webgui-ssl/index.html | 22 + unraid-os/manual/security/vpn/index.html | 27 + .../manual/shares/create-a-share/index.html | 22 + .../manual/shares/delete-a-share/index.html | 22 + .../manual/shares/disk-shares/index.html | 22 + unraid-os/manual/shares/index.html | 489 +--------------- .../manual/shares/network-access/index.html | 22 + .../manual/shares/user-shares/index.html | 27 + .../manual/storage-management/index.html | 16 +- unraid-os/manual/tools/index.html | 14 +- unraid-os/manual/troubleshooting/index.html | 14 +- .../manual/upgrade-instructions/index.html | 12 +- unraid-os/manual/users/index.html | 12 +- unraid-os/manual/vm-management/index.html | 12 +- unraid-os/manual/vm-support/index.html | 12 +- unraid-os/manual/what-is-unraid/index.html | 14 +- unraid-os/manual/zfs/placeholder/index.html | 12 +- unraid-os/release-notes/6.10.0/index.html | 14 +- unraid-os/release-notes/6.10.1/index.html | 10 +- unraid-os/release-notes/6.10.2/index.html | 10 +- unraid-os/release-notes/6.10.3/index.html | 10 +- unraid-os/release-notes/6.11.0/index.html | 10 +- unraid-os/release-notes/6.11.1/index.html | 10 +- unraid-os/release-notes/6.11.2/index.html | 10 +- unraid-os/release-notes/6.11.3/index.html | 10 +- unraid-os/release-notes/6.11.4/index.html | 10 +- unraid-os/release-notes/6.11.5/index.html | 10 +- unraid-os/release-notes/6.12.0/index.html | 10 +- unraid-os/release-notes/6.12.1/index.html | 10 +- unraid-os/release-notes/6.12.2/index.html | 10 +- unraid-os/release-notes/6.12.3/index.html | 10 +- unraid-os/release-notes/6.9.0/index.html | 10 +- unraid-os/release-notes/6.9.1/index.html | 10 +- unraid-os/release-notes/6.9.2/index.html | 10 +- zh/404.html | 10 +- zh/assets/css/styles.2c43762e.css | 1 + zh/assets/css/styles.5dd3a1e0.css | 1 - ...ethod-73aceb5fbd6984e821b9a40d254126be.JPG | Bin 56760 -> 0 bytes ...vel_0-85fa26cbb640e98765ca207be6fdd694.JPG | Bin 64484 -> 0 bytes ...Share-0de879d5fb3dc6fba964744db5bb6827.jpg | Bin 95840 -> 0 bytes ..._View-93330078b8f073697286d7f11d8cf2fe.JPG | Bin 332398 -> 0 bytes ...vel_1-6d97a2c34c343f745537069876f68a60.JPG | Bin 24060 -> 0 bytes ...vel_2-0ce359bddd479b9830e12615ebe07fa1.JPG | Bin 25238 -> 0 bytes ...vel_3-c5fd4917d16153206e797c5042ea33ac.JPG | Bin 26255 -> 0 bytes zh/assets/js/0a1bdeaa.4351b9aa.js | 1 + zh/assets/js/104dd0b4.18ce3b9a.js | 1 + zh/assets/js/104dd0b4.f0afbec1.js | 1 - zh/assets/js/10869db1.70506c93.js | 1 + zh/assets/js/14eb3368.3f60616a.js | 1 - zh/assets/js/14eb3368.64ec88ed.js | 1 + zh/assets/js/17896441.5d44835b.js | 1 - zh/assets/js/17896441.63195e72.js | 1 + zh/assets/js/18ade0c5.6468a34d.js | 1 - zh/assets/js/18ade0c5.657518ee.js | 1 + ...2e1e1.d09eaa07.js => 1942e1e1.afa4e387.js} | 2 +- zh/assets/js/1be78505.010a8141.js | 1 - zh/assets/js/1be78505.fe92450b.js | 1 + zh/assets/js/1c36a847.a38a32f2.js | 1 + zh/assets/js/26113f5d.1e37ce86.js | 1 + zh/assets/js/26113f5d.fb48086a.js | 1 - zh/assets/js/277cf690.325851d5.js | 1 + zh/assets/js/313b9001.07647b6e.js | 1 + ...cef38.24e0c714.js => 41ecef38.5c7ba79d.js} | 2 +- zh/assets/js/4caccc33.80b208b9.js | 1 - zh/assets/js/4caccc33.893d9038.js | 1 + zh/assets/js/55054ac6.84d1245d.js | 1 - zh/assets/js/55054ac6.d4a0c2c6.js | 1 + zh/assets/js/5f60a020.c559cc54.js | 1 + zh/assets/js/6b42df2b.3f0e98f5.js | 1 - zh/assets/js/6b42df2b.84bfb8dd.js | 1 + ...22de7.310dcd27.js => 79722de7.a9e77c89.js} | 2 +- ...531cc.2b2bda34.js => 798531cc.0ebb9bf0.js} | 2 +- zh/assets/js/7b378cd1.40233086.js | 1 + zh/assets/js/7b378cd1.ba2d30da.js | 1 - zh/assets/js/7c081f1b.0e8babec.js | 1 - zh/assets/js/7c081f1b.53e7e977.js | 1 + zh/assets/js/81b28c9f.ee6abbb4.js | 1 + zh/assets/js/81b28c9f.f94af7ec.js | 1 - zh/assets/js/8944547a.f5271396.js | 1 + zh/assets/js/8a89048a.8241feff.js | 1 + zh/assets/js/90126b70.0b49abed.js | 1 - zh/assets/js/935f2afb.7d1fb1bb.js | 1 - zh/assets/js/935f2afb.b7c96576.js | 1 + zh/assets/js/9d23aec8.8bf37886.js | 1 + zh/assets/js/a78d85c7.4986ff98.js | 1 - zh/assets/js/aed38285.8a87c0f9.js | 1 + ...723e0.ec19028c.js => b13723e0.e966e613.js} | 2 +- ...ffba3.8cafea63.js => ba2ffba3.ae642b32.js} | 2 +- zh/assets/js/f0844d9f.58191536.js | 1 - zh/assets/js/f0844d9f.e045a212.js | 1 + zh/assets/js/f7b0b541.beb81f22.js | 1 + zh/assets/js/fee3ac30.dc3e06e8.js | 1 + zh/assets/js/main.54b490a9.js | 2 - zh/assets/js/main.818d5412.js | 2 + ...CENSE.txt => main.818d5412.js.LICENSE.txt} | 0 zh/assets/js/runtime~main.0878d8ef.js | 1 + zh/assets/js/runtime~main.cce2c79a.js | 1 - zh/category/contribute/index.html | 10 +- zh/category/faq/index.html | 10 +- zh/category/getting-started/index.html | 12 +- zh/category/guides/index.html | 10 +- zh/category/legacy-documentation/index.html | 10 +- zh/category/manual/index.html | 12 +- zh/category/release-notes/index.html | 10 +- zh/category/tutorial---basics/index.html | 10 +- zh/category/tutorial---extras/index.html | 10 +- zh/category/unraid-connect/index.html | 10 +- zh/category/unraid-os/index.html | 10 +- zh/category/zfs/index.html | 12 +- zh/connect/about/index.html | 10 +- zh/connect/help/index.html | 10 +- zh/connect/remote-access/index.html | 12 +- zh/contribute-to-docs/intro/index.html | 10 +- .../congratulations/index.html | 10 +- .../create-a-blog-post/index.html | 10 +- .../create-a-document/index.html | 10 +- .../tutorial-basics/create-a-page/index.html | 10 +- .../markdown-features/index.html | 10 +- .../manage-docs-versions/index.html | 10 +- .../translate-your-site/index.html | 10 +- zh/index.html | 10 +- .../dual-boot-unraid-and-windows/index.html | 10 +- .../index.html | 10 +- .../Articles/upgrading-to-unraid-6/index.html | 10 +- zh/legacy/FAQ/Parity/index.html | 10 +- zh/legacy/FAQ/cache-disk/index.html | 10 +- .../FAQ/check-disk-filesystems/index.html | 10 +- .../FAQ/check-harddrive-speed/index.html | 10 +- zh/legacy/FAQ/console/index.html | 10 +- .../FAQ/parity-swap-procedure/index.html | 10 +- .../FAQ/replacing-a-data-drive/index.html | 10 +- .../replacing-multiple-data-drives/index.html | 10 +- .../index.html | 10 +- .../setup-sleep-and-wake-on-lan/index.html | 10 +- zh/legacy/FAQ/shrink-array/index.html | 10 +- zh/legacy/FAQ/terminal-access/index.html | 10 +- .../index.html | 10 +- .../index.html | 10 +- .../understanding-smart-reports/index.html | 10 +- .../usb-flash-drive-preparation/index.html | 12 +- zh/search/index.html | 10 +- zh/sitemap.xml | 2 +- zh/unraid-os/faq/licensing-faq/index.html | 12 +- zh/unraid-os/faq/os-faq/index.html | 17 +- .../redeem-license-activation-code/index.html | 10 +- zh/unraid-os/faq/unraid-account/index.html | 10 +- .../configuring-time-machine/index.html | 10 +- .../guides/wol-setup-for-unraid/index.html | 10 +- .../manual/additional-settings/index.html | 14 +- zh/unraid-os/manual/applications/index.html | 14 +- .../changing-the-flash-device/index.html | 12 +- .../manual/docker-management/index.html | 14 +- .../manual/getting-started/index.html | 14 +- .../manual-install-method/index.html | 14 +- zh/unraid-os/manual/multi-language/index.html | 14 +- .../security/data-encryption/index.html | 22 + .../manual/security/flash-drive/index.html | 22 + .../manual/security/good-practices/index.html | 26 + zh/unraid-os/manual/security/index.html | 529 +----------------- .../security/secure-webgui-ssl/index.html | 22 + zh/unraid-os/manual/security/vpn/index.html | 27 + .../manual/shares/create-a-share/index.html | 22 + .../manual/shares/delete-a-share/index.html | 22 + .../manual/shares/disk-shares/index.html | 22 + zh/unraid-os/manual/shares/index.html | 489 +--------------- .../manual/shares/network-access/index.html | 22 + .../manual/shares/user-shares/index.html | 27 + .../manual/storage-management/index.html | 16 +- zh/unraid-os/manual/tools/index.html | 14 +- .../manual/troubleshooting/index.html | 14 +- .../manual/upgrade-instructions/index.html | 12 +- zh/unraid-os/manual/users/index.html | 12 +- zh/unraid-os/manual/vm-management/index.html | 12 +- zh/unraid-os/manual/vm-support/index.html | 12 +- zh/unraid-os/manual/what-is-unraid/index.html | 14 +- .../manual/zfs/placeholder/index.html | 12 +- zh/unraid-os/release-notes/6.10.0/index.html | 14 +- zh/unraid-os/release-notes/6.10.1/index.html | 10 +- zh/unraid-os/release-notes/6.10.2/index.html | 10 +- zh/unraid-os/release-notes/6.10.3/index.html | 10 +- zh/unraid-os/release-notes/6.11.0/index.html | 10 +- zh/unraid-os/release-notes/6.11.1/index.html | 10 +- zh/unraid-os/release-notes/6.11.2/index.html | 10 +- zh/unraid-os/release-notes/6.11.3/index.html | 10 +- zh/unraid-os/release-notes/6.11.4/index.html | 10 +- zh/unraid-os/release-notes/6.11.5/index.html | 10 +- zh/unraid-os/release-notes/6.12.0/index.html | 10 +- zh/unraid-os/release-notes/6.12.1/index.html | 10 +- zh/unraid-os/release-notes/6.12.2/index.html | 10 +- zh/unraid-os/release-notes/6.12.3/index.html | 10 +- zh/unraid-os/release-notes/6.9.0/index.html | 10 +- zh/unraid-os/release-notes/6.9.1/index.html | 10 +- zh/unraid-os/release-notes/6.9.2/index.html | 10 +- 788 files changed, 3720 insertions(+), 7455 deletions(-) create mode 100644 assets/css/styles.2c43762e.css delete mode 100644 assets/css/styles.5dd3a1e0.css delete mode 100644 assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG delete mode 100644 assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG delete mode 100644 assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg delete mode 100644 assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG delete mode 100644 assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG delete mode 100644 assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG delete mode 100644 assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG create mode 100644 assets/js/0a1bdeaa.03794584.js delete mode 100644 assets/js/104dd0b4.c6688387.js create mode 100644 assets/js/104dd0b4.cb017fc4.js create mode 100644 assets/js/10869db1.891a9b7e.js rename assets/js/{14eb3368.3f60616a.js => 14eb3368.64ec88ed.js} (98%) rename fr/assets/js/17896441.5d44835b.js => assets/js/17896441.63195e72.js (99%) create mode 100644 assets/js/18ade0c5.09969b34.js delete mode 100644 assets/js/18ade0c5.2392765b.js rename assets/js/{1942e1e1.cdd07291.js => 1942e1e1.57591bcc.js} (64%) rename es/assets/js/1be78505.010a8141.js => assets/js/1be78505.fe92450b.js (99%) create mode 100644 assets/js/1c36a847.164c5f27.js delete mode 100644 assets/js/26113f5d.00579de4.js create mode 100644 assets/js/26113f5d.25361a9a.js create mode 100644 assets/js/277cf690.38431556.js create mode 100644 assets/js/313b9001.cb5025d9.js create mode 100644 assets/js/4caccc33.5ac361b7.js delete mode 100644 assets/js/4caccc33.d4b40cef.js delete mode 100644 assets/js/55054ac6.0e35be01.js create mode 100644 assets/js/55054ac6.d240c09c.js create mode 100644 assets/js/5f60a020.0b3b8092.js delete mode 100644 assets/js/6b42df2b.8ec38f25.js create mode 100644 assets/js/6b42df2b.b3fc4cd9.js rename assets/js/{79722de7.571cb6ba.js => 79722de7.c6355df8.js} (71%) delete mode 100644 assets/js/798531cc.50b3e9dc.js create mode 100644 assets/js/798531cc.d412a911.js create mode 100644 assets/js/7b378cd1.0f5b93da.js delete mode 100644 assets/js/7b378cd1.b4d3598d.js delete mode 100644 assets/js/7c081f1b.bc3f743f.js create mode 100644 assets/js/7c081f1b.d355be4e.js create mode 100644 assets/js/81b28c9f.30a79c58.js delete mode 100644 assets/js/81b28c9f.b74c329f.js create mode 100644 assets/js/8944547a.ffcf72d1.js create mode 100644 assets/js/8a89048a.938a4041.js delete mode 100644 assets/js/90126b70.5b9aafb8.js create mode 100644 assets/js/935f2afb.52175e15.js delete mode 100644 assets/js/935f2afb.5bd72703.js rename assets/js/{989b789d.5f6c0f67.js => 989b789d.f7c7fa37.js} (80%) create mode 100644 assets/js/9d23aec8.0cef40c3.js delete mode 100644 assets/js/a78d85c7.1bc9f9a4.js create mode 100644 assets/js/aed38285.fb0ff2ca.js rename assets/js/{b13723e0.d8423627.js => b13723e0.683bf322.js} (57%) delete mode 100644 assets/js/ba2ffba3.8ff5a899.js create mode 100644 assets/js/ba2ffba3.98361f12.js rename assets/js/{e8c37b9f.e823dded.js => e8c37b9f.99708cf7.js} (69%) create mode 100644 assets/js/f0844d9f.021b24b2.js delete mode 100644 assets/js/f0844d9f.288ed01a.js create mode 100644 assets/js/f7b0b541.0b5384b3.js create mode 100644 assets/js/fee3ac30.c445f0d9.js create mode 100644 assets/js/main.9f5bb88f.js rename assets/js/{main.b41d83e9.js.LICENSE.txt => main.9f5bb88f.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.b41d83e9.js create mode 100644 assets/js/runtime~main.4e8da702.js delete mode 100644 assets/js/runtime~main.59c59235.js create mode 100644 de/assets/css/styles.2c43762e.css delete mode 100644 de/assets/css/styles.5dd3a1e0.css delete mode 100644 de/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG delete mode 100644 de/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG delete mode 100644 de/assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg delete mode 100644 de/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG delete mode 100644 de/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG delete mode 100644 de/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG delete mode 100644 de/assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG create mode 100644 de/assets/js/0a1bdeaa.56c24c5c.js create mode 100644 de/assets/js/104dd0b4.4c6e2a66.js delete mode 100644 de/assets/js/104dd0b4.c30f249f.js create mode 100644 de/assets/js/10869db1.88f17a27.js rename de/assets/js/{14eb3368.3f60616a.js => 14eb3368.64ec88ed.js} (98%) rename es/assets/js/17896441.5d44835b.js => de/assets/js/17896441.63195e72.js (99%) delete mode 100644 de/assets/js/18ade0c5.053494f9.js create mode 100644 de/assets/js/18ade0c5.c8dadadd.js rename de/assets/js/{1942e1e1.b8ff7e1c.js => 1942e1e1.2eb0ca01.js} (64%) rename fr/assets/js/1be78505.010a8141.js => de/assets/js/1be78505.fe92450b.js (99%) create mode 100644 de/assets/js/1c36a847.fd007298.js delete mode 100644 de/assets/js/26113f5d.634ef45c.js create mode 100644 de/assets/js/26113f5d.e13c53a4.js create mode 100644 de/assets/js/277cf690.17346898.js create mode 100644 de/assets/js/313b9001.cdf21bf4.js delete mode 100644 de/assets/js/4caccc33.55a7fea4.js create mode 100644 de/assets/js/4caccc33.e7587a57.js delete mode 100644 de/assets/js/55054ac6.15a9a5e7.js create mode 100644 de/assets/js/55054ac6.1ee0bde6.js rename de/assets/js/{57b01c12.f203cf55.js => 57b01c12.6146938b.js} (78%) create mode 100644 de/assets/js/5f60a020.d4885282.js delete mode 100644 de/assets/js/6b42df2b.150721df.js create mode 100644 de/assets/js/6b42df2b.6c8e10cf.js rename de/assets/js/{79722de7.9922385a.js => 79722de7.3287b8ea.js} (72%) rename de/assets/js/{798531cc.01db7adb.js => 798531cc.50fb77d7.js} (99%) delete mode 100644 de/assets/js/7b378cd1.04331944.js create mode 100644 de/assets/js/7b378cd1.2086cc56.js create mode 100644 de/assets/js/7c081f1b.293f9388.js delete mode 100644 de/assets/js/7c081f1b.5b7300fe.js delete mode 100644 de/assets/js/81b28c9f.1aa3e404.js create mode 100644 de/assets/js/81b28c9f.4d5b544d.js create mode 100644 de/assets/js/8944547a.2fa0db38.js create mode 100644 de/assets/js/8a89048a.f67f006d.js delete mode 100644 de/assets/js/90126b70.6124f2a7.js create mode 100644 de/assets/js/935f2afb.133a30ef.js delete mode 100644 de/assets/js/935f2afb.464392bf.js create mode 100644 de/assets/js/9d23aec8.59a08b27.js delete mode 100644 de/assets/js/a78d85c7.6182cd19.js create mode 100644 de/assets/js/aed38285.c2df1fb8.js rename de/assets/js/{b13723e0.ea0ac449.js => b13723e0.4a95c8fd.js} (58%) rename de/assets/js/{ba2ffba3.aa6fca37.js => ba2ffba3.402517ff.js} (99%) rename de/assets/js/{e8c37b9f.4daaab11.js => e8c37b9f.3fc34400.js} (69%) delete mode 100644 de/assets/js/f0844d9f.da6a1766.js create mode 100644 de/assets/js/f0844d9f.f2d9f43d.js create mode 100644 de/assets/js/f7b0b541.aebce8e6.js create mode 100644 de/assets/js/fee3ac30.87c6d149.js delete mode 100644 de/assets/js/main.76054a9f.js create mode 100644 de/assets/js/main.85bcca4b.js rename de/assets/js/{main.76054a9f.js.LICENSE.txt => main.85bcca4b.js.LICENSE.txt} (100%) delete mode 100644 de/assets/js/runtime~main.4d0a043d.js create mode 100644 de/assets/js/runtime~main.7fb1f846.js create mode 100644 de/unraid-os/manual/security/data-encryption/index.html create mode 100644 de/unraid-os/manual/security/flash-drive/index.html create mode 100644 de/unraid-os/manual/security/good-practices/index.html create mode 100644 de/unraid-os/manual/security/secure-webgui-ssl/index.html create mode 100644 de/unraid-os/manual/security/vpn/index.html create mode 100644 de/unraid-os/manual/shares/create-a-share/index.html create mode 100644 de/unraid-os/manual/shares/delete-a-share/index.html create mode 100644 de/unraid-os/manual/shares/disk-shares/index.html create mode 100644 de/unraid-os/manual/shares/network-access/index.html create mode 100644 de/unraid-os/manual/shares/user-shares/index.html create mode 100644 es/assets/css/styles.2c43762e.css delete mode 100644 es/assets/css/styles.5dd3a1e0.css delete mode 100644 es/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG delete mode 100644 es/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG delete mode 100644 es/assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg delete mode 100644 es/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG delete mode 100644 es/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG delete mode 100644 es/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG delete mode 100644 es/assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG create mode 100644 es/assets/js/0a1bdeaa.b15b63b5.js create mode 100644 es/assets/js/104dd0b4.9393eea1.js delete mode 100644 es/assets/js/104dd0b4.dec56907.js create mode 100644 es/assets/js/10869db1.80b06e87.js rename fr/assets/js/14eb3368.3f60616a.js => es/assets/js/14eb3368.64ec88ed.js (98%) rename de/assets/js/17896441.5d44835b.js => es/assets/js/17896441.63195e72.js (99%) rename es/assets/js/{18d17e09.aacc5121.js => 18d17e09.6ec93d3c.js} (78%) rename es/assets/js/{1942e1e1.55c71b28.js => 1942e1e1.1c6bd3dd.js} (64%) rename de/assets/js/1be78505.010a8141.js => es/assets/js/1be78505.fe92450b.js (99%) create mode 100644 es/assets/js/1c36a847.97768b3e.js delete mode 100644 es/assets/js/25ec094f.9e09d3eb.js create mode 100644 es/assets/js/25ec094f.fb8cab05.js create mode 100644 es/assets/js/26113f5d.aeb54beb.js delete mode 100644 es/assets/js/26113f5d.b2fffa94.js create mode 100644 es/assets/js/277cf690.3285e9f4.js create mode 100644 es/assets/js/313b9001.b77b1e8e.js delete mode 100644 es/assets/js/4caccc33.7c1a0ec6.js create mode 100644 es/assets/js/4caccc33.ce493ad3.js create mode 100644 es/assets/js/55054ac6.4d5e11e8.js delete mode 100644 es/assets/js/55054ac6.53671d7d.js create mode 100644 es/assets/js/5f60a020.9ba72785.js delete mode 100644 es/assets/js/6b42df2b.5ce005ce.js create mode 100644 es/assets/js/6b42df2b.73043424.js rename es/assets/js/{79722de7.786e2fb3.js => 79722de7.01d9d74c.js} (72%) rename es/assets/js/{798531cc.2c20cdd9.js => 798531cc.f5810f3b.js} (99%) create mode 100644 es/assets/js/7b378cd1.a6c7e676.js delete mode 100644 es/assets/js/7b378cd1.af7c4dc7.js delete mode 100644 es/assets/js/7c081f1b.bc01a910.js create mode 100644 es/assets/js/7c081f1b.dc7dcdeb.js delete mode 100644 es/assets/js/81b28c9f.5ca9e0f7.js create mode 100644 es/assets/js/81b28c9f.dfb14a8b.js create mode 100644 es/assets/js/8944547a.341d22ef.js create mode 100644 es/assets/js/8a89048a.2bc2fffa.js delete mode 100644 es/assets/js/90126b70.9f6b92ae.js create mode 100644 es/assets/js/935f2afb.b09d5f8b.js delete mode 100644 es/assets/js/935f2afb.d9784532.js create mode 100644 es/assets/js/9d23aec8.1333bc54.js delete mode 100644 es/assets/js/a78d85c7.dfd666f5.js create mode 100644 es/assets/js/aed38285.94b00935.js rename es/assets/js/{b13723e0.f648e1ab.js => b13723e0.4f513726.js} (58%) rename es/assets/js/{ba2ffba3.580a5eca.js => ba2ffba3.5183065a.js} (99%) create mode 100644 es/assets/js/f0844d9f.1f01c257.js delete mode 100644 es/assets/js/f0844d9f.599da76c.js create mode 100644 es/assets/js/f7b0b541.7dcf9237.js create mode 100644 es/assets/js/fee3ac30.aeeafe4b.js delete mode 100644 es/assets/js/main.284febb9.js create mode 100644 es/assets/js/main.62fd37dd.js rename es/assets/js/{main.284febb9.js.LICENSE.txt => main.62fd37dd.js.LICENSE.txt} (100%) delete mode 100644 es/assets/js/runtime~main.2fc7ff6e.js create mode 100644 es/assets/js/runtime~main.d7bdb25b.js create mode 100644 es/unraid-os/manual/security/data-encryption/index.html create mode 100644 es/unraid-os/manual/security/flash-drive/index.html create mode 100644 es/unraid-os/manual/security/good-practices/index.html create mode 100644 es/unraid-os/manual/security/secure-webgui-ssl/index.html create mode 100644 es/unraid-os/manual/security/vpn/index.html create mode 100644 es/unraid-os/manual/shares/create-a-share/index.html create mode 100644 es/unraid-os/manual/shares/delete-a-share/index.html create mode 100644 es/unraid-os/manual/shares/disk-shares/index.html create mode 100644 es/unraid-os/manual/shares/network-access/index.html create mode 100644 es/unraid-os/manual/shares/user-shares/index.html create mode 100644 fr/assets/css/styles.2c43762e.css delete mode 100644 fr/assets/css/styles.5dd3a1e0.css delete mode 100644 fr/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG delete mode 100644 fr/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG delete mode 100644 fr/assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg delete mode 100644 fr/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG delete mode 100644 fr/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG delete mode 100644 fr/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG delete mode 100644 fr/assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG create mode 100644 fr/assets/js/0a1bdeaa.67c90df9.js delete mode 100644 fr/assets/js/104dd0b4.384ecc12.js create mode 100644 fr/assets/js/104dd0b4.50f572e9.js create mode 100644 fr/assets/js/10869db1.dae8600a.js rename es/assets/js/14eb3368.3f60616a.js => fr/assets/js/14eb3368.64ec88ed.js (98%) rename assets/js/17896441.5d44835b.js => fr/assets/js/17896441.63195e72.js (99%) delete mode 100644 fr/assets/js/18ade0c5.1e8e6a61.js create mode 100644 fr/assets/js/18ade0c5.d177a698.js rename fr/assets/js/{1942e1e1.5de57aa5.js => 1942e1e1.66f2d29f.js} (64%) rename assets/js/1be78505.010a8141.js => fr/assets/js/1be78505.fe92450b.js (99%) create mode 100644 fr/assets/js/1c36a847.3d007acd.js create mode 100644 fr/assets/js/26113f5d.5bf370f5.js delete mode 100644 fr/assets/js/26113f5d.e5de3f41.js create mode 100644 fr/assets/js/277cf690.163a9f3a.js create mode 100644 fr/assets/js/313b9001.ac3c6c89.js create mode 100644 fr/assets/js/4caccc33.5982ae04.js delete mode 100644 fr/assets/js/4caccc33.6ec19246.js delete mode 100644 fr/assets/js/55054ac6.9a7e37fd.js create mode 100644 fr/assets/js/55054ac6.ce6949e6.js create mode 100644 fr/assets/js/5f60a020.51573a8c.js delete mode 100644 fr/assets/js/6b42df2b.1891268c.js create mode 100644 fr/assets/js/6b42df2b.f9bdc3ba.js rename fr/assets/js/{79722de7.81e56057.js => 79722de7.47e24423.js} (72%) rename fr/assets/js/{798531cc.1cc97956.js => 798531cc.7aea1eb2.js} (99%) create mode 100644 fr/assets/js/7b378cd1.37a73256.js delete mode 100644 fr/assets/js/7b378cd1.9c8375cf.js delete mode 100644 fr/assets/js/7c081f1b.1444274b.js create mode 100644 fr/assets/js/7c081f1b.92e8a38a.js create mode 100644 fr/assets/js/81b28c9f.62e45f75.js delete mode 100644 fr/assets/js/81b28c9f.c357452f.js create mode 100644 fr/assets/js/8944547a.62c05971.js create mode 100644 fr/assets/js/8a89048a.df69773d.js delete mode 100644 fr/assets/js/90126b70.a3f6e806.js delete mode 100644 fr/assets/js/935f2afb.409d144b.js create mode 100644 fr/assets/js/935f2afb.95f515d2.js create mode 100644 fr/assets/js/9d23aec8.54184a2d.js delete mode 100644 fr/assets/js/a78d85c7.e5f7dbb4.js create mode 100644 fr/assets/js/aed38285.863e5bc8.js rename fr/assets/js/{b13723e0.86922bbf.js => b13723e0.2af37b56.js} (58%) rename fr/assets/js/{b58ca393.77647b34.js => b58ca393.428256a7.js} (78%) rename fr/assets/js/{ba2ffba3.c0c2d7db.js => ba2ffba3.d8131fc7.js} (99%) rename fr/assets/js/{e8c37b9f.e264fcc7.js => e8c37b9f.14d390cd.js} (69%) create mode 100644 fr/assets/js/f0844d9f.5c10117e.js delete mode 100644 fr/assets/js/f0844d9f.b2aa73c5.js create mode 100644 fr/assets/js/f7b0b541.dff5b32c.js create mode 100644 fr/assets/js/fee3ac30.6f487de7.js delete mode 100644 fr/assets/js/main.e6bd8ad0.js create mode 100644 fr/assets/js/main.f1d56603.js rename fr/assets/js/{main.e6bd8ad0.js.LICENSE.txt => main.f1d56603.js.LICENSE.txt} (100%) create mode 100644 fr/assets/js/runtime~main.1bad24bd.js delete mode 100644 fr/assets/js/runtime~main.a9e7a162.js create mode 100644 fr/unraid-os/manual/security/data-encryption/index.html create mode 100644 fr/unraid-os/manual/security/flash-drive/index.html create mode 100644 fr/unraid-os/manual/security/good-practices/index.html create mode 100644 fr/unraid-os/manual/security/secure-webgui-ssl/index.html create mode 100644 fr/unraid-os/manual/security/vpn/index.html create mode 100644 fr/unraid-os/manual/shares/create-a-share/index.html create mode 100644 fr/unraid-os/manual/shares/delete-a-share/index.html create mode 100644 fr/unraid-os/manual/shares/disk-shares/index.html create mode 100644 fr/unraid-os/manual/shares/network-access/index.html create mode 100644 fr/unraid-os/manual/shares/user-shares/index.html create mode 100644 unraid-os/manual/security/data-encryption/index.html create mode 100644 unraid-os/manual/security/flash-drive/index.html create mode 100644 unraid-os/manual/security/good-practices/index.html create mode 100644 unraid-os/manual/security/secure-webgui-ssl/index.html create mode 100644 unraid-os/manual/security/vpn/index.html create mode 100644 unraid-os/manual/shares/create-a-share/index.html create mode 100644 unraid-os/manual/shares/delete-a-share/index.html create mode 100644 unraid-os/manual/shares/disk-shares/index.html create mode 100644 unraid-os/manual/shares/network-access/index.html create mode 100644 unraid-os/manual/shares/user-shares/index.html create mode 100644 zh/assets/css/styles.2c43762e.css delete mode 100644 zh/assets/css/styles.5dd3a1e0.css delete mode 100644 zh/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG delete mode 100644 zh/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG delete mode 100644 zh/assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg delete mode 100644 zh/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG delete mode 100644 zh/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG delete mode 100644 zh/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG delete mode 100644 zh/assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG create mode 100644 zh/assets/js/0a1bdeaa.4351b9aa.js create mode 100644 zh/assets/js/104dd0b4.18ce3b9a.js delete mode 100644 zh/assets/js/104dd0b4.f0afbec1.js create mode 100644 zh/assets/js/10869db1.70506c93.js delete mode 100644 zh/assets/js/14eb3368.3f60616a.js create mode 100644 zh/assets/js/14eb3368.64ec88ed.js delete mode 100644 zh/assets/js/17896441.5d44835b.js create mode 100644 zh/assets/js/17896441.63195e72.js delete mode 100644 zh/assets/js/18ade0c5.6468a34d.js create mode 100644 zh/assets/js/18ade0c5.657518ee.js rename zh/assets/js/{1942e1e1.d09eaa07.js => 1942e1e1.afa4e387.js} (64%) delete mode 100644 zh/assets/js/1be78505.010a8141.js create mode 100644 zh/assets/js/1be78505.fe92450b.js create mode 100644 zh/assets/js/1c36a847.a38a32f2.js create mode 100644 zh/assets/js/26113f5d.1e37ce86.js delete mode 100644 zh/assets/js/26113f5d.fb48086a.js create mode 100644 zh/assets/js/277cf690.325851d5.js create mode 100644 zh/assets/js/313b9001.07647b6e.js rename zh/assets/js/{41ecef38.24e0c714.js => 41ecef38.5c7ba79d.js} (78%) delete mode 100644 zh/assets/js/4caccc33.80b208b9.js create mode 100644 zh/assets/js/4caccc33.893d9038.js delete mode 100644 zh/assets/js/55054ac6.84d1245d.js create mode 100644 zh/assets/js/55054ac6.d4a0c2c6.js create mode 100644 zh/assets/js/5f60a020.c559cc54.js delete mode 100644 zh/assets/js/6b42df2b.3f0e98f5.js create mode 100644 zh/assets/js/6b42df2b.84bfb8dd.js rename zh/assets/js/{79722de7.310dcd27.js => 79722de7.a9e77c89.js} (72%) rename zh/assets/js/{798531cc.2b2bda34.js => 798531cc.0ebb9bf0.js} (99%) create mode 100644 zh/assets/js/7b378cd1.40233086.js delete mode 100644 zh/assets/js/7b378cd1.ba2d30da.js delete mode 100644 zh/assets/js/7c081f1b.0e8babec.js create mode 100644 zh/assets/js/7c081f1b.53e7e977.js create mode 100644 zh/assets/js/81b28c9f.ee6abbb4.js delete mode 100644 zh/assets/js/81b28c9f.f94af7ec.js create mode 100644 zh/assets/js/8944547a.f5271396.js create mode 100644 zh/assets/js/8a89048a.8241feff.js delete mode 100644 zh/assets/js/90126b70.0b49abed.js delete mode 100644 zh/assets/js/935f2afb.7d1fb1bb.js create mode 100644 zh/assets/js/935f2afb.b7c96576.js create mode 100644 zh/assets/js/9d23aec8.8bf37886.js delete mode 100644 zh/assets/js/a78d85c7.4986ff98.js create mode 100644 zh/assets/js/aed38285.8a87c0f9.js rename zh/assets/js/{b13723e0.ec19028c.js => b13723e0.e966e613.js} (58%) rename zh/assets/js/{ba2ffba3.8cafea63.js => ba2ffba3.ae642b32.js} (99%) delete mode 100644 zh/assets/js/f0844d9f.58191536.js create mode 100644 zh/assets/js/f0844d9f.e045a212.js create mode 100644 zh/assets/js/f7b0b541.beb81f22.js create mode 100644 zh/assets/js/fee3ac30.dc3e06e8.js delete mode 100644 zh/assets/js/main.54b490a9.js create mode 100644 zh/assets/js/main.818d5412.js rename zh/assets/js/{main.54b490a9.js.LICENSE.txt => main.818d5412.js.LICENSE.txt} (100%) create mode 100644 zh/assets/js/runtime~main.0878d8ef.js delete mode 100644 zh/assets/js/runtime~main.cce2c79a.js create mode 100644 zh/unraid-os/manual/security/data-encryption/index.html create mode 100644 zh/unraid-os/manual/security/flash-drive/index.html create mode 100644 zh/unraid-os/manual/security/good-practices/index.html create mode 100644 zh/unraid-os/manual/security/secure-webgui-ssl/index.html create mode 100644 zh/unraid-os/manual/security/vpn/index.html create mode 100644 zh/unraid-os/manual/shares/create-a-share/index.html create mode 100644 zh/unraid-os/manual/shares/delete-a-share/index.html create mode 100644 zh/unraid-os/manual/shares/disk-shares/index.html create mode 100644 zh/unraid-os/manual/shares/network-access/index.html create mode 100644 zh/unraid-os/manual/shares/user-shares/index.html diff --git a/404.html b/404.html index b0cdacfb0..3f540bac3 100644 --- a/404.html +++ b/404.html @@ -9,14 +9,14 @@ - - - + + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/css/styles.2c43762e.css b/assets/css/styles.2c43762e.css new file mode 100644 index 000000000..3b34bd753 --- /dev/null +++ b/assets/css/styles.2c43762e.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.5dd3a1e0.css b/assets/css/styles.5dd3a1e0.css deleted file mode 100644 index 60ad42e6b..000000000 --- a/assets/css/styles.5dd3a1e0.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG b/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG deleted file mode 100644 index 1875d64774735d7928639130ffdb74e1b546e80a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56760 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 BeH8!z diff --git a/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG b/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG deleted file mode 100644 index 46e8f061547b2597e889a6e93c7b53c83131142c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64484 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 Xl=8V3LhS66yrnuSj!K_qzmNPc=6Yr+ diff --git a/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG b/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG deleted file mode 100644 index 22b13894a1c0223da21ccd9a40c85835b674ea54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332398 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�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
i*b2M zc}indR191tO5dPsjd>Kks}U=-D0Sgq%0V$54jV~e15*xxm3uR6SFCG zUTd8Gmdzwq%CtEaeI5b~WnI4GWmlFAwpx19t2aF6lzLT1#@OyyU?x)?8Z8ItB6yiq z4T?SO?@z0~Me*<$BsjHAe{GEJQ7$>Jb95{gWBb_gek>;_ppUF<4n87yf6i zxB>6l^KnDhC061wOQcz}V8h>hfEQar5%6M5gvsN965@yU|Jw4pwgZ9G!${~scK$ykUs*bD@m?FU z{J#cQs~rbQMExtcT8&1wDVQt#`RUXwo4YE;Q(C2v9Pf_nRU_@OE`Ds6!^+WASQkMl zuGu^EN1M<&0Ni&CsFZ5BAr+(1SF78M665_bMmD_0(&4S=O7pk|yv8pCyKn<>9+Z`e zgdFoIg*&JfO^gqH8#Fey&IjtCYoP$R!d`6jNqb;3ThxPHPyUGa*Y1@izo*!CfH^{- z(q)AmJuP^#(aLtyKWcd`9V$H)dg@@h`@oDOg3*h=eXKg3Mi@A(I8ElhtF( z;^3opZ)Ts(cn63!E{m&uLLnQ(74OZW;nhDG??DHrC~4`j6lm3ZbT z55_mpC|ug;Zne%PkFc0gCsXNkKBQ$%S$nx

@*jLk6h0=HMX!%-3|&0%?UNUV?d+ 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 KF$YM$zWxtUg1t@v diff --git a/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG b/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG deleted file mode 100644 index ce4de45d151efdf9c78b9b7420c362d7933ebead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24060 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 YJwDvhFBSj$k$}G!A^7jm|1|Ue0Z^AhUjP6A diff --git a/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG b/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG deleted file mode 100644 index 4f89d1eba8cb401075f9420d73c697b6a30d90ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25238 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 WNM=-^!>@V^#1?|F#WM!pv~*d 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.d(t,{Zo:()=>p,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=c(a),u=r,k=m["".concat(s,".").concat(u)]||m[u]||d[u]||i;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=a(7462),r=(a(7294),a(4137));const i={sidebar_position:2},l="Securing webGUI connections (SSL)",o={unversionedId:"unraid-os/manual/security/secure-webgui-ssl",id:"unraid-os/manual/security/secure-webgui-ssl",title:"Securing webGUI connections (SSL)",description:"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.",source:"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/secure-webgui-ssl",permalink:"/unraid-os/manual/security/secure-webgui-ssl",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/secure-webgui-ssl.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"Good Practices",permalink:"/unraid-os/manual/security/good-practices"},next:{title:"Data Encryption",permalink:"/unraid-os/manual/security/data-encryption"}},s={},c=[{value:"SSL parameters",id:"ssl-parameters",level:2},{value:"How to access the Unraid server webGUI on your LAN",id:"how-to-access-the-unraid-server-webgui-on-your-lan",level:2},{value:"HTTP-only",id:"http-only",level:3},{value:"HTTPS with self-signed certificate",id:"https-with-self-signed-certificate",level:3},{value:"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable",level:3},{value:"HTTPS with Myunraid.net certificate and with no fallback URL",id:"https-with-myunraidnet-certificate-and-with-no-fallback-url",level:3},{value:"Redirects",id:"redirects",level:2},{value:"Unraid Connect remote access",id:"unraid-connect-remote-access",level:2},{value:"Custom certificates",id:"custom-certificates",level:2},{value:"HTTPS with custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:3}],p={toc:c},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"securing-webgui-connections-ssl"},"Securing webGUI connections (SSL)"),(0,r.kt)("p",null,"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and ",(0,r.kt)("a",{parentName:"p",href:"/connect/remote-access"},"Unraid Connect Remote Access")," using wildcard SSL Certificates provisioned by ",(0,r.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's Encrypt"),"."),(0,r.kt)("h2",{id:"ssl-parameters"},"SSL parameters"),(0,r.kt)("p",null,"When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Parameter"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"servername")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Identification")),". The default value is ",(0,r.kt)("em",{parentName:"td"},"tower"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"localTLD")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"local"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"Use SSL/TLS")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"No"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTP port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"80"),". If you change this, add ",(0,r.kt)("inlineCode",{parentName:"td"},":[HTTP port]")," to any of the HTTP URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"http://tower.local:8080"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTPS port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),' page. It defaults to "443". If you change this, add ',(0,r.kt)("inlineCode",{parentName:"td"},":[HTTPS port]")," to any of the HTTPS URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"https://tower.local:3443"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"certificate")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Refers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"lan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"wan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"hash")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued")))),(0,r.kt)("h2",{id:"how-to-access-the-unraid-server-webgui-on-your-lan"},"How to access the Unraid server webGUI on your LAN"),(0,r.kt)("h3",{id:"http-only"},"HTTP-only"),(0,r.kt)("p",null,"With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"No"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution."),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-self-signed-certificate"},"HTTPS with self-signed certificate"),(0,r.kt)("p",null,"With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution"),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("admonition",{type:"important"},(0,r.kt)("p",{parentName:"admonition"},"When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable"},"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable"),(0,r.kt)("p",null,"You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate)."),(0,r.kt)("li",{parentName:"ol"},"Leave ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either ",(0,r.kt)("em",{parentName:"li"},"No")," or ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"No"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),". Note that these URLs use a self-signed certificate.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your alternate URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the ",(0,r.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate and with no fallback URL"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned below)."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"If DNS Rebinding is not an issue, the ",(0,r.kt)("em",{parentName:"li"},"Strict")," option for ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," will be available."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Strict")," (or ",(0,r.kt)("em",{parentName:"li"},"Auto")," in earlier versions of Unraid)."),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the optional ",(0,r.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]"),"."),(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," using a self-signed certificate (See ",(0,r.kt)("a",{parentName:"li",href:"#https-with-self-signed-certificate"},"HTTPS with a self-signed certificate")," above)."),(0,r.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," back to ",(0,r.kt)("em",{parentName:"li"},"Strict"),"."))),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"redirects"},"Redirects"),(0,r.kt)("p",null,"When you access ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]"),", the behavior will change depending on the value of the ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Strict"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under ",(0,r.kt)("a",{parentName:"li",href:"#https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate - with no fallback URL")," above."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," as that will likely work even if your Internet goes down."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"No"),", then the HTTP URL will load directly.")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"unraid-connect-remote-access"},"Unraid Connect remote access"),(0,r.kt)("p",null,"Looking for setup instructions for Unraid Connect remote access? See our ",(0,r.kt)("a",{parentName:"p",href:"/connect/remote-access"},"dedicated page"),"."),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"custom-certificates"},"Custom certificates"),(0,r.kt)("h3",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"HTTPS with custom certificate - with option to have Unraid Connect Remote Access"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Navigate to the ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access"))," page."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of the certificate.'),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS for this URL."),(0,r.kt)("li",{parentName:"ol"},"You are responsible for managing the certificate. Upload it to ",(0,r.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem"),"."),(0,r.kt)("li",{parentName:"ol"},"The certificate must be valid for ",(0,r.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be ",(0,r.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server\'s URL is not specified in the certificate.'),(0,r.kt)("li",{parentName:"ol"},"As an option, use ",(0,r.kt)("a",{parentName:"li",href:"#unraid-connect-remote-access"},"Unraid Connect Remote Access"),".")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/104dd0b4.c6688387.js b/assets/js/104dd0b4.c6688387.js deleted file mode 100644 index 6684a0a14..000000000 --- a/assets/js/104dd0b4.c6688387.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"getting-started.md"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/assets/js/104dd0b4.cb017fc4.js b/assets/js/104dd0b4.cb017fc4.js new file mode 100644 index 000000000..20879869d --- /dev/null +++ b/assets/js/104dd0b4.cb017fc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started/"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/assets/js/10869db1.891a9b7e.js b/assets/js/10869db1.891a9b7e.js new file mode 100644 index 000000000..5bba8cba4 --- /dev/null +++ b/assets/js/10869db1.891a9b7e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3563],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>f});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(a),d=n,f=p["".concat(l,".").concat(d)]||p[d]||h[d]||i;return a?r.createElement(f,o(o({ref:t},u),{},{components:a})):r.createElement(f,o({ref:t},u))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,o[1]=s;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=a(7462),n=(a(7294),a(4137));const i={sidebar_position:4},o="Flash Drive",s={unversionedId:"unraid-os/manual/security/flash-drive",id:"unraid-os/manual/security/flash-drive",title:"Flash Drive",description:"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.",source:"@site/docs/unraid-os/manual/security/flash-drive.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/flash-drive",permalink:"/unraid-os/manual/security/flash-drive",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/flash-drive.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Data Encryption",permalink:"/unraid-os/manual/security/data-encryption"},next:{title:"VPN",permalink:"/unraid-os/manual/security/vpn"}},l={},c=[{value:"Backups",id:"backups",level:2},{value:"Network Access",id:"network-access",level:2},{value:"Permissions",id:"permissions",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"flash-drive"},"Flash Drive"),(0,n.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed."),(0,n.kt)("h2",{id:"backups"},"Backups"),(0,n.kt)("p",null,"If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change."),(0,n.kt)("p",null,"You can easily achieve this from the Unraid webGUI:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Select the flash drive on the ",(0,n.kt)("strong",{parentName:"li"},"Main")," tab."),(0,n.kt)("li",{parentName:"ol"},"In the ",(0,n.kt)("strong",{parentName:"li"},"Flash Device Settings")," section select the ",(0,n.kt)("strong",{parentName:"li"},"Flash Backup")," button."),(0,n.kt)("li",{parentName:"ol"},"The system will now create a ZIP file that is a backup of the contents of the flash drive."),(0,n.kt)("li",{parentName:"ol"},"When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.")),(0,n.kt)("p",null,"If you later need to recreate your flash drive for any reason, use this backup as input to the ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Limetech USB Creator tool"),"."),(0,n.kt)("h2",{id:"network-access"},"Network Access"),(0,n.kt)("p",null,"The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"*Network visibility"),": You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any access permissions that you want applied.")),(0,n.kt)("h2",{id:"permissions"},"Permissions"),(0,n.kt)("p",null,"As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location."),(0,n.kt)("p",null,"There are a few ways to handle this:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Copy the files to a location from which they can be executed."),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"The location ",(0,n.kt)("inlineCode",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the files on the default search path."),(0,n.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding appropriate commands to the ",(0,n.kt)("inlineCode",{parentName:"li"},"config/go")," file on the flash drive."),(0,n.kt)("li",{parentName:"ul"},"Give the files execute permission after copying them."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"For scripts, prefix the script name with the command that runs the script (e.g. ",(0,n.kt)("em",{parentName:"p"},"bash path-to-script"),")."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.3f60616a.js b/assets/js/14eb3368.64ec88ed.js similarity index 98% rename from assets/js/14eb3368.3f60616a.js rename to assets/js/14eb3368.64ec88ed.js index 5de541b9c..25852f8f9 100644 --- a/assets/js/14eb3368.3f60616a.js +++ b/assets/js/14eb3368.64ec88ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(3734),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(3734),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(8259),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(8259),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file diff --git a/fr/assets/js/17896441.5d44835b.js b/assets/js/17896441.63195e72.js similarity index 99% rename from fr/assets/js/17896441.5d44835b.js rename to assets/js/17896441.63195e72.js index 4bf4e5f5e..0317e0a68 100644 --- a/fr/assets/js/17896441.5d44835b.js +++ b/assets/js/17896441.63195e72.js @@ -1 +1 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(3734),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?["'])(?.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i<r;i++)l[i]=n[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},3899:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(8259),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(P(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function z(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,S.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?<quote>["'])(?<title>.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/18ade0c5.09969b34.js b/assets/js/18ade0c5.09969b34.js new file mode 100644 index 000000000..c27fe3962 --- /dev/null +++ b/assets/js/18ade0c5.09969b34.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/unraid-os/manual/getting-started/"},next:{title:"Tools",permalink:"/unraid-os/manual/tools"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/18ade0c5.2392765b.js b/assets/js/18ade0c5.2392765b.js deleted file mode 100644 index 34faf9f97..000000000 --- a/assets/js/18ade0c5.2392765b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/unraid-os/manual/getting-started/"},next:{title:"Security",permalink:"/unraid-os/manual/security"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1942e1e1.cdd07291.js b/assets/js/1942e1e1.57591bcc.js similarity index 64% rename from assets/js/1942e1e1.cdd07291.js rename to assets/js/1942e1e1.57591bcc.js index 4be6140ca..7a5745fd8 100644 --- a/assets/js/1942e1e1.cdd07291.js +++ b/assets/js/1942e1e1.57591bcc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/security#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"security.md#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/1be78505.010a8141.js b/assets/js/1be78505.fe92450b.js similarity index 99% rename from es/assets/js/1be78505.010a8141.js rename to assets/js/1be78505.fe92450b.js index 2b4555c18..758818503 100644 --- a/es/assets/js/1be78505.010a8141.js +++ b/assets/js/1be78505.fe92450b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(3734),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(8259),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1c36a847.164c5f27.js b/assets/js/1c36a847.164c5f27.js new file mode 100644 index 000000000..f2cfa0aca --- /dev/null +++ b/assets/js/1c36a847.164c5f27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5289],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=o,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},7732:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={sidebar_position:5},i="VPN",s={unversionedId:"unraid-os/manual/security/vpn",id:"unraid-os/manual/security/vpn",title:"VPN",description:"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.",source:"@site/docs/unraid-os/manual/security/vpn.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/vpn",permalink:"/unraid-os/manual/security/vpn",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/vpn.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Flash Drive",permalink:"/unraid-os/manual/security/flash-drive"},next:{title:"Multi-Language Support",permalink:"/unraid-os/manual/multi-language"}},l={},u=[{value:"Router",id:"router",level:2},{value:"OpenVPN",id:"openvpn",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Overview",id:"overview",level:3},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:3},{value:"Implementation considerations",id:"implementation-considerations",level:4},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:4},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:4},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:4},{value:"About DNS",id:"about-dns",level:4},{value:"Complex Networks",id:"complex-networks",level:4},{value:"Configurations to avoid",id:"configurations-to-avoid",level:4},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:4},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:3},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:4},{value:"Configuring \u201cVPN tunneled access for Docker\u201d",id:"configuring-vpn-tunneled-access-for-docker",level:4},{value:"Testing the Docker tunnel",id:"testing-the-docker-tunnel",level:5},{value:"Configuring \u201cVPN tunneled access for system\u201d",id:"configuring-vpn-tunneled-access-for-system",level:4},{value:"Testing the System tunnel",id:"testing-the-system-tunnel",level:5},{value:"Support",id:"support",level:3}],c={toc:u},d="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"vpn"},"VPN"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.")),(0,o.kt)("p",null,"If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections."),(0,o.kt)("p",null,"In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki article")),(0,o.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.")),(0,o.kt)("p",null,"There are a wide variety of VPN solutions available both free and commercial."),(0,o.kt)("p",null,"Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet."),(0,o.kt)("p",null,"There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN."),(0,o.kt)("h2",{id:"router"},"Router"),(0,o.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically based on OpenVPN)."),(0,o.kt)("p",null,"Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN."),(0,o.kt)("h2",{id:"openvpn"},"OpenVPN"),(0,o.kt)("p",null,"This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet."),(0,o.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube video")," of use in setting it up."),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("h3",{id:"overview"},"Overview"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Wireguard logo",src:n(2602).Z,width:"128",height:"128"})),(0,o.kt)("p",null,"Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers."),(0,o.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid boot process."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,o.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN."),(0,o.kt)("li",{parentName:"ul"},"The interface is available under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")),".")),(0,o.kt)("p",null,"More information about WireGuard can be found on the ",(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard website"),"."),(0,o.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the connection types:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to server"),": Use your phone or computer to remotely access your Unraid server, including:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Unraid administration via the webGUI"),(0,o.kt)("li",{parentName:"ul"},"Access Docker containers, VMs, and network shares as though you were physically connected to the network"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to LAN"),': Builds on "Remote access to server", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server to server access"),": Allows two Unraid servers to connect to each other."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN to LAN access"),': Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server hub & spoke access"),': Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"VPN tunneled access"),": Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote tunneled access"),": Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.")),(0,o.kt)("p",null,"The following diagram attempts to show these different connection types in a graphical format"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Connection Types",src:n(1998).Z,width:"1000",height:"655"})),(0,o.kt)("h3",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,o.kt)("p",null,"This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network."),(0,o.kt)("h4",{id:"implementation-considerations"},"Implementation considerations"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren\'t around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.'),(0,o.kt)("li",{parentName:"ul"},"This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the ",(0,o.kt)("a",{parentName:"li",href:"#complex-networks"},"Complex Networks")," section."),(0,o.kt)("li",{parentName:"ul"},"Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this ",(0,o.kt)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from SpaceInvaderOne"),"."),(0,o.kt)("li",{parentName:"ul"},"If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port."),(0,o.kt)("li",{parentName:"ul"},"You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at ",(0,o.kt)("a",{parentName:"li",href:"https://www.wireguard.com/install/"},"WireGuard clients"),". Android or iOS make good first client systems because you can get all the details via QR code.")),(0,o.kt)("h4",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -",">",' Management Access and confirm "Use UPnP" is set to Yes'),(0,o.kt)("li",{parentName:"ul"},"On Unraid go to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Initial setup screen",src:n(5372).Z,width:"969",height:"314"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Give the ",(0,o.kt)("strong",{parentName:"li"},"VPN Tunnel")," a name, for example ",(0,o.kt)("em",{parentName:"li"},"MyHome VPN"),"."),(0,o.kt)("li",{parentName:"ul"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Generate Keypair"),". This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this)."),(0,o.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address."),(0,o.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network."),(0,o.kt)("li",{parentName:"ul"},"Select Apply."),(0,o.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP available",src:n(7098).Z,width:"1000",height:"61"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port forwarding',".",'.." you will need to login to your router and setup the port forward as directed by the note:')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP not available",src:n(4546).Z,width:"1000",height:"65"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port."),(0,o.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of your Unraid system shown in the note."),(0,o.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".'))),(0,o.kt)("li",{parentName:"ul"},"Note that after ",(0,o.kt)("strong",{parentName:"li"},"Apply"),', the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Key icon",src:n(6423).Z,width:"128",height:"128"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.'),(0,o.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Activate switch",src:n(711).Z,width:"562",height:"44"})),(0,o.kt)("h4",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Add Peer"),".\n",(0,o.kt)("img",{alt:"Add Peer",src:n(8169).Z,width:"866",height:"284"})),(0,o.kt)("li",{parentName:"ol"},"Give it a name, such as ",(0,o.kt)("em",{parentName:"li"},"MyAndroid"),"."),(0,o.kt)("li",{parentName:"ol"},"For the initial connection type, choose ",(0,o.kt)("em",{parentName:"li"},"Remote access to LAN"),". This will give your device access to Unraid and other items on your network."),(0,o.kt)("li",{parentName:"ol"},'Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)'),(0,o.kt)("li",{parentName:"ol"},'For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.'),(0,o.kt)("li",{parentName:"ol"},"Click Apply.")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.")),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},'It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.')),(0,o.kt)("h4",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer area - Eye icon",src:n(3939).Z,width:"912",height:"108"})),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer details popup",src:n(1967).Z,width:"580",height:"694"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.'),(0,o.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.")),(0,o.kt)("h4",{id:"about-dns"},"About DNS"),(0,o.kt)("p",null,"Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net."),(0,o.kt)("p",null,'Short names such as "tower" probably won\'t work, nor any DNS entries managed by the router.'),(0,o.kt)("p",null,'To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don\'t forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8'),(0,o.kt)("p",null,'This is particularly important for "Remote tunneled access" mode if the client\'s original DNS server is no longer accessible after all traffic is routed through the tunnel.'),(0,o.kt)("p",null,"Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection."),(0,o.kt)("h4",{id:"complex-networks"},"Complex Networks"),(0,o.kt)("p",null,'The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid\'s IP, and that works fine if you have a simple setup.'),(0,o.kt)("p",null,"However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'In the WireGuard tunnel config, set "Use NAT" to No'),(0,o.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)"),(0,o.kt)("li",{parentName:"ul"},"Gateway / Next Hop: IP address of your Unraid system"),(0,o.kt)("li",{parentName:"ul"},"Distance: 1 (your router may not have this option)"),(0,o.kt)("li",{parentName:"ul"},'If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"'))),(0,o.kt)("li",{parentName:"ul"},"Navigate to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > Docker Settings"))," and set ",(0,o.kt)("strong",{parentName:"li"},"Host access to custom networks")," to ",(0,o.kt)("strong",{parentName:"li"},"Enabled"))),(0,o.kt)("h4",{id:"configurations-to-avoid"},"Configurations to avoid"),(0,o.kt)("p",null,"There are some configurations you'll want to avoid, here is how a few key settings interact:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(this is the "simple network" setup assumed by the guide above)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(avoid this config)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and no static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(avoid this, if "Use NAT" = No, you really need to add a static route in your router)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = disabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(You've come this far, just set \"Host access to custom networks\" to enabled you're set)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = enabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - accessible!"),(0,o.kt)("li",{parentName:"ul"},"(woohoo! the recommended setup for complex networks)")))),(0,o.kt)("h4",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,o.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner."),(0,o.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking your work:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.'),(0,o.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config."),(0,o.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.')),(0,o.kt)("p",null,"A few other ideas:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not wifi). This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR code\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working from\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,o.kt)("li",{parentName:"ul"},"If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection."),(0,o.kt)("li",{parentName:"ul"},'Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.'),(0,o.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance."),(0,o.kt)("li",{parentName:"ul"},'If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.'),(0,o.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.'),(0,o.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|"," 192.168.0.0 to 192.168.255.255)"),(0,o.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot:\n",(0,o.kt)("inlineCode",{parentName:"li"},"/boot/config/wireguard/autostart")),(0,o.kt)("li",{parentName:"ul"},'Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.')),(0,o.kt)("h3",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,o.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum thread")," discussing making an outbound VPN connection using WireGuard"),(0,o.kt)("h4",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,o.kt)("p",null,"Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.vpnjantit.com/free-wireguard"},"VPN Jantit")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ovpn.com/en/wireguard"},"OVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://windscribe.com/"},"Windscribe"))),(0,o.kt)("p",null,"Note that any provider that requires a custom WireGuard client will not work with Unraid."),(0,o.kt)("p",null,"Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see ",(0,o.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you."),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-docker"},"Configuring \u201cVPN tunneled access for Docker\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},'On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"The \u201cPeer type of access\u201d will default to \u201cVPN tunneled access for docker\u201d. There are no settings to change, except perhaps to give it a local name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers"),(0,o.kt)("li",{parentName:"ul"},"Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a \"DNS\" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.")),(0,o.kt)("h5",{id:"testing-the-docker-tunnel"},"Testing the Docker tunnel"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},'The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.'),(0,o.kt)("p",{parentName:"admonition"},"Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel ",(0,o.kt)("em",{parentName:"p"},"before")," the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"When setting up the container, set the \u201cNetwork Type\u201d to \u201cCustom: wg2\u201d (or whatever the name of the tunnel was in the previous step)"),(0,o.kt)("li",{parentName:"ul"},'Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.:\n',(0,o.kt)("inlineCode",{parentName:"li"},"--dns=8.8.8.8"),"\n(if you don't set this, the container may leak your ISP's DNS server)"),(0,o.kt)("li",{parentName:"ul"},"The rest of the defaults should be fine, apply the changes and start the container"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider"),(0,o.kt)("li",{parentName:"ul"},"Also visit ",(0,o.kt)("a",{parentName:"li",href:"https://www.dnsleaktest.com/"},"https://www.dnsleaktest.com/")," and run a test, confirm that it only finds IPs related to the DNS provider you specified."),(0,o.kt)("li",{parentName:"ul"},"Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.")),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-system"},"Configuring \u201cVPN tunneled access for system\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN tunnel.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks."),(0,o.kt)("li",{parentName:"ul"},"Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled."),(0,o.kt)("li",{parentName:"ul"},"Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4")))),(0,o.kt)("h5",{id:"testing-the-system-tunnel"},"Testing the System tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider")),(0,o.kt)("h3",{id:"support"},"Support"),(0,o.kt)("p",null,"The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum thread")," on the original Dynamix WireGuard plugin"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum thread")," covering setting up incoming connections."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum thread")," covering setting up outgoing connections.")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}h.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/assets/js/26113f5d.00579de4.js b/assets/js/26113f5d.00579de4.js deleted file mode 100644 index 2f5348563..000000000 --- a/assets/js/26113f5d.00579de4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/category/faq"},next:{title:"OS",permalink:"/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/assets/js/26113f5d.25361a9a.js b/assets/js/26113f5d.25361a9a.js new file mode 100644 index 000000000..7a022defd --- /dev/null +++ b/assets/js/26113f5d.25361a9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/category/faq"},next:{title:"OS",permalink:"/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started/"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/assets/js/277cf690.38431556.js b/assets/js/277cf690.38431556.js new file mode 100644 index 000000000..af0d90535 --- /dev/null +++ b/assets/js/277cf690.38431556.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9821],{4137:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,y=p["".concat(c,".").concat(m)]||p[m]||d[m]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3593:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var n=r(7462),o=(r(7294),r(4137));const i={sidebar_position:7},a="Security",s={unversionedId:"unraid-os/manual/security/security",id:"unraid-os/manual/security/security",title:"Security",description:"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.",source:"@site/docs/unraid-os/manual/security/security.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/",permalink:"/unraid-os/manual/security/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/security.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/unraid-os/manual/applications"},next:{title:"Good Practices",permalink:"/unraid-os/manual/security/good-practices"}},c={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"security"},"Security"),(0,o.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely."),(0,o.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers."),(0,o.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are safe."),(0,o.kt)("p",null,"There is also a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum thread")," that discusses this topic."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/313b9001.cb5025d9.js b/assets/js/313b9001.cb5025d9.js new file mode 100644 index 000000000..eae19fb8a --- /dev/null +++ b/assets/js/313b9001.cb5025d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[559],{4137:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):n(n({},t),e)),r},c=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=l(r),y=a,h=d["".concat(u,".").concat(y)]||d[y]||p[y]||s;return r?o.createElement(h,n(n({ref:t},c),{},{components:r})):o.createElement(h,n({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,n=new Array(s);n[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,n[1]=i;for(var l=2;l<s;l++)n[l]=r[l];return o.createElement.apply(null,n)}return o.createElement.apply(null,r)}y.displayName="MDXCreateElement"},3283:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>n,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=r(7462),a=(r(7294),r(4137));const s={sidebar_position:1},n="Good Practices",i={unversionedId:"unraid-os/manual/security/good-practices",id:"unraid-os/manual/security/good-practices",title:"Good Practices",description:"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.",source:"@site/docs/unraid-os/manual/security/good-practices.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/good-practices",permalink:"/unraid-os/manual/security/good-practices",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/good-practices.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/unraid-os/manual/security/"},next:{title:"Securing webGUI connections (SSL)",permalink:"/unraid-os/manual/security/secure-webgui-ssl"}},u={},l=[{value:"#1 Set a strong root password",id:"1-set-a-strong-root-password",level:2},{value:"#2 Review port mappings on your router",id:"2-review-port-mappings-on-your-router",level:2},{value:"#3 Never put your server in your network's DMZ",id:"3-never-put-your-server-in-your-networks-dmz",level:2},{value:"#4 Set security on your shares to private",id:"4-set-security-on-your-shares-to-private",level:2},{value:"#5 Don't expose the flash share, and if you do, make it private",id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private",level:2},{value:"#6 Keep your server up-to-date",id:"6-keep-your-server-up-to-date",level:2},{value:"#7 Use a secure method for remote administration",id:"7-use-a-secure-method-for-remote-administration",level:2}],c={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"good-practices"},"Good Practices"),(0,a.kt)("p",null,"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system."),(0,a.kt)("h2",{id:"1-set-a-strong-root-password"},"#","1 Set a strong root password"),(0,a.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the ",(0,a.kt)("strong",{parentName:"p"},"Users")," tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"There is a plugin available in Community Apps called ",(0,a.kt)("strong",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in."),(0,a.kt)("p",{parentName:"admonition"},"You could also use ",(0,a.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this webpage")," to get a very quick assessment of the strength of any specific password.")),(0,a.kt)("h2",{id:"2-review-port-mappings-on-your-router"},"#","2 Review port mappings on your router"),(0,a.kt)("p",null,"Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk."),(0,a.kt)("p",null,"Here are just a few ports you should be extra careful with when forwarding:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 80"),": Used to access the webGUI without SSL - unless you've rebound access to another port on the ",(0,a.kt)("strong",{parentName:"li"},"Management Access"),' settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you\'re doing. If you want to make the webGUI remotely accessible, install the ',(0,a.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 443"),": Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the ",(0,a.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,a.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin to enable simple, safe, and secure remote access to your Unraid systems."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 445"),": Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a ",(0,a.kt)("a",{parentName:"li",href:"/unraid-os/manual/security/vpn"},"WireGuard VPN")," to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 111/2049:")," Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Ports in the 57xx range:")," These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the ",(0,a.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.")),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.")),(0,a.kt)("h2",{id:"3-never-put-your-server-in-your-networks-dmz"},"#","3 Never put your server in your network's DMZ"),(0,a.kt)("p",null,'We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.'),(0,a.kt)("p",null,"Never, ",(0,a.kt)("em",{parentName:"p"},"ever"),", do this."),(0,a.kt)("h2",{id:"4-set-security-on-your-shares-to-private"},"#","4 Set security on your shares to private"),(0,a.kt)("p",null,"The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares."),(0,a.kt)("h2",{id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private"},"#","5 Don't expose the flash share, and if you do, make it private"),(0,a.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents."),(0,a.kt)("h2",{id:"6-keep-your-server-up-to-date"},"#","6 Keep your server up-to-date"),(0,a.kt)("p",null,"Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Tools > Update OS"))," to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Settings > Notifications"))," page."),(0,a.kt)("h2",{id:"7-use-a-secure-method-for-remote-administration"},"#","7 Use a secure method for remote administration"),(0,a.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet."),(0,a.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used."),(0,a.kt)("p",null,"An alternative for making the webGUI remotely accessible is to install the ",(0,a.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4caccc33.5ac361b7.js b/assets/js/4caccc33.5ac361b7.js new file mode 100644 index 000000000..895aac216 --- /dev/null +++ b/assets/js/4caccc33.5ac361b7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/unraid-os/manual/storage-management"},next:{title:"VM Support",permalink:"/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/assets/js/4caccc33.d4b40cef.js b/assets/js/4caccc33.d4b40cef.js deleted file mode 100644 index 318f1f48f..000000000 --- a/assets/js/4caccc33.d4b40cef.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/unraid-os/manual/shares"},next:{title:"VM Support",permalink:"/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/assets/js/55054ac6.0e35be01.js b/assets/js/55054ac6.0e35be01.js deleted file mode 100644 index bd2d77ebe..000000000 --- a/assets/js/55054ac6.0e35be01.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/unraid-os/manual/what-is-unraid"},next:{title:"Shares",permalink:"/unraid-os/manual/shares"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/unraid-os/manual/security#data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/assets/js/55054ac6.d240c09c.js b/assets/js/55054ac6.d240c09c.js new file mode 100644 index 000000000..b974ea2d5 --- /dev/null +++ b/assets/js/55054ac6.d240c09c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/unraid-os/manual/what-is-unraid"},next:{title:"Docker Management",permalink:"/unraid-os/manual/docker-management"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/unraid-os/manual/security/data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/assets/js/5f60a020.0b3b8092.js b/assets/js/5f60a020.0b3b8092.js new file mode 100644 index 000000000..9d3a9befe --- /dev/null +++ b/assets/js/5f60a020.0b3b8092.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4863],{4137:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},s=Object.keys(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),h=d(r),c=n,m=h["".concat(l,".").concat(c)]||h[c]||u[c]||s;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,i=new Array(s);i[0]=c;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[h]="string"==typeof e?e:n,i[1]=o;for(var d=2;d<s;d++)i[d]=r[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},6260:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var a=r(7462),n=(r(7294),r(4137));const s={sidebar_position:2},i="Disk shares",o={unversionedId:"unraid-os/manual/shares/disk-shares",id:"unraid-os/manual/shares/disk-shares",title:"Disk shares",description:"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.",source:"@site/docs/unraid-os/manual/shares/disk-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/disk-shares",permalink:"/unraid-os/manual/shares/disk-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/disk-shares.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"User shares",permalink:"/unraid-os/manual/shares/user-shares"},next:{title:"Network access",permalink:"/unraid-os/manual/shares/network-access"}},l={},d=[{value:"Overview",id:"overview",level:2},{value:"Disk share constraints",id:"disk-share-constraints",level:2}],p={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"disk-shares"},"Disk shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable disk shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". Disk shares are disabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a ",(0,n.kt)("strong",{parentName:"p"},"Disk Shares")," section on the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. If you create a disk share, you should modify the user ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/shares/network-access#access-permissions-at-share-level"},"access permissions")," to restrict network user access."),(0,n.kt)("p",null,"When viewed at the Linux level, the physical devices or pools will appear directly under ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled."),(0,n.kt)("p",null,"Examples of such names are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/diskX:")," - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be ",(0,n.kt)("em",{parentName:"li"},"diskX"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/pool-name:")," - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be ",(0,n.kt)("inlineCode",{parentName:"li"},"pool-name"),".")),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at ",(0,n.kt)("inlineCode",{parentName:"p"},"/boot"),"."),(0,n.kt)("p",{parentName:"admonition"},"Due to the nature of the Unraid boot device, we recommend you maintain your shares in ",(0,n.kt)("em",{parentName:"p"},"Private")," mode, with read/write access given to trusted users.")),(0,n.kt)("h2",{id:"disk-share-constraints"},"Disk share constraints"),(0,n.kt)("p",null,"If you have both disk shares and user shares enabled in ",(0,n.kt)("strong",{parentName:"p"},"Global Share Settings"),", then there is an important restriction that you must observe to avoid potential data loss."),(0,n.kt)("p",null,"You must ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"never"))," copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, ",(0,n.kt)("inlineCode",{parentName:"p"},"cp /mnt/user/share/file /mnt/disk1/share/file"),"."),(0,n.kt)("p",null,"At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost."),(0,n.kt)("p",null,"There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management#unassigned-drives"},"Unassigned Disk"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6b42df2b.8ec38f25.js b/assets/js/6b42df2b.8ec38f25.js deleted file mode 100644 index 2c5a89cd0..000000000 --- a/assets/js/6b42df2b.8ec38f25.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/unraid-os/manual/applications"},next:{title:"Troubleshooting",permalink:"/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/6b42df2b.b3fc4cd9.js b/assets/js/6b42df2b.b3fc4cd9.js new file mode 100644 index 000000000..65c808ddb --- /dev/null +++ b/assets/js/6b42df2b.b3fc4cd9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"VPN",permalink:"/unraid-os/manual/security/vpn"},next:{title:"Troubleshooting",permalink:"/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/assets/js/79722de7.571cb6ba.js b/assets/js/79722de7.c6355df8.js similarity index 71% rename from assets/js/79722de7.571cb6ba.js rename to assets/js/79722de7.c6355df8.js index 5b683e559..273c15220 100644 --- a/assets/js/79722de7.571cb6ba.js +++ b/assets/js/79722de7.c6355df8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started/#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/798531cc.50b3e9dc.js b/assets/js/798531cc.50b3e9dc.js deleted file mode 100644 index 2e17592b0..000000000 --- a/assets/js/798531cc.50b3e9dc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/security#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/798531cc.d412a911.js b/assets/js/798531cc.d412a911.js new file mode 100644 index 000000000..37cab99bf --- /dev/null +++ b/assets/js/798531cc.d412a911.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares.md#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7b378cd1.0f5b93da.js b/assets/js/7b378cd1.0f5b93da.js new file mode 100644 index 000000000..c1c9b1c9a --- /dev/null +++ b/assets/js/7b378cd1.0f5b93da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/unraid-os/manual/vm-management"},next:{title:"Security",permalink:"/unraid-os/manual/security/"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/assets/js/7b378cd1.b4d3598d.js b/assets/js/7b378cd1.b4d3598d.js deleted file mode 100644 index db4e151d2..000000000 --- a/assets/js/7b378cd1.b4d3598d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/unraid-os/manual/vm-management"},next:{title:"Multi-Language Support",permalink:"/unraid-os/manual/multi-language"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/assets/js/7c081f1b.bc3f743f.js b/assets/js/7c081f1b.bc3f743f.js deleted file mode 100644 index 801c459b2..000000000 --- a/assets/js/7c081f1b.bc3f743f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/unraid-os/manual/security"},next:{title:"Upgrading Unraid",permalink:"/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c081f1b.d355be4e.js b/assets/js/7c081f1b.d355be4e.js new file mode 100644 index 000000000..7bdeed6cf --- /dev/null +++ b/assets/js/7c081f1b.d355be4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Upgrading Unraid",permalink:"/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/81b28c9f.30a79c58.js b/assets/js/81b28c9f.30a79c58.js new file mode 100644 index 000000000..433b2cac1 --- /dev/null +++ b/assets/js/81b28c9f.30a79c58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/unraid-os/faq/licensing-faq"},next:{title:"Redeem License Activation Code",permalink:"/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/troubleshooting/#lost-root-password"},"Lost Root Password")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/81b28c9f.b74c329f.js b/assets/js/81b28c9f.b74c329f.js deleted file mode 100644 index 2c258030c..000000000 --- a/assets/js/81b28c9f.b74c329f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/unraid-os/faq/licensing-faq"},next:{title:"Redeem License Activation Code",permalink:"/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"To reset your ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#connecting-to-the-unraid-webgui"},"root\npassword"),":"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Shutdown your server."),(0,n.kt)("li",{parentName:"ol"},"Plug your USB flash into a laptop or another computer."),(0,n.kt)("li",{parentName:"ol"},'Open the USB folder and delete the files "config/shadow" and\n"config/smbpasswd". ',(0,n.kt)("em",{parentName:"li"},'(DO NOT delete "config/passwd).')," This will\nreset all user passwords, including the root user to blank."),(0,n.kt)("li",{parentName:"ol"},"Now, safely eject your USB and reboot it on your Unraid server and\nyou\u2019re in. You can then set a new password in the Users tab of the\nUnraid webgui.")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8944547a.ffcf72d1.js b/assets/js/8944547a.ffcf72d1.js new file mode 100644 index 000000000..6a62ed86b --- /dev/null +++ b/assets/js/8944547a.ffcf72d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5450],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,i=function(e,t){if(null==e)return{};var a,r,i={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=r.createContext({}),h=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(a),p=i,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||n;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<n;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3135:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>I,contentTitle:()=>M,default:()=>E,frontMatter:()=>x,metadata:()=>U,toc:()=>O});var r=a(7462),i=a(7294),n=a(4137),o=a(4334),s=a(2957),l=a(6550),h=a(5238),d=a(3609),u=a(2560);function c(e){return function(e){return i.Children.map(e,(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:i}}=e;return{value:t,label:a,attributes:r,default:i}}))}function p(e){const{values:t,children:a}=e;return(0,i.useMemo)((()=>{const e=t??c(a);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const r=(0,l.k6)(),n=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,h._X)(n),(0,i.useCallback)((e=>{if(!n)return;const t=new URLSearchParams(r.location.search);t.set(n,e),r.replace({...r.location,search:t.toString()})}),[n,r])]}function y(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,n=p(e),[o,s]=(0,i.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:n}))),[l,h]=f({queryString:a,groupId:r}),[d,c]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,n]=(0,u.Nk)(a);return[r,(0,i.useCallback)((e=>{a&&n.set(e)}),[a,n])]}({groupId:r}),y=(()=>{const e=l??d;return m({value:e,tabValues:n})?e:null})();(0,i.useLayoutEffect)((()=>{y&&s(y)}),[y]);return{selectedValue:o,selectValue:(0,i.useCallback)((e=>{if(!m({value:e,tabValues:n}))throw new Error(`Can't select invalid tab value=${e}`);s(e),h(e),c(e)}),[h,c,n]),tabValues:n}}var k=a(1048);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:a,selectedValue:n,selectValue:l,tabValues:h}=e;const d=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),c=e=>{const t=e.currentTarget,a=d.indexOf(t),r=h[a].value;r!==n&&(u(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},h.map((e=>{let{value:t,label:a,attributes:s}=e;return i.createElement("li",(0,r.Z)({role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,key:t,ref:e=>d.push(e),onKeyDown:p,onClick:c},s,{className:(0,o.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":n===t})}),a??t)})))}function w(e){let{lazy:t,children:a,selectedValue:r}=e;const n=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=n.find((e=>e.props.value===r));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},n.map(((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function b(e){const t=y(e);return i.createElement("div",{className:(0,o.Z)("tabs-container",v.tabList)},i.createElement(g,(0,r.Z)({},e,t)),i.createElement(w,(0,r.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return i.createElement(b,(0,r.Z)({key:String(t)},e))}const T={tabItem:"tabItem_Ymn6"};function S(e){let{children:t,hidden:a,className:r}=e;return i.createElement("div",{role:"tabpanel",className:(0,o.Z)(T.tabItem,r),hidden:a},t)}const x={sidebar_position:0},M="User shares",U={unversionedId:"unraid-os/manual/shares/user-shares",id:"unraid-os/manual/shares/user-shares",title:"User shares",description:"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.",source:"@site/docs/unraid-os/manual/shares/user-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/user-shares",permalink:"/unraid-os/manual/shares/user-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/user-shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/unraid-os/manual/shares/"},next:{title:"Disk shares",permalink:"/unraid-os/manual/shares/disk-shares"}},I={},O=[{value:"Overview",id:"overview",level:2},{value:"Share settings",id:"share-settings",level:2},{value:"Minimum free space",id:"minimum-free-space",level:3},{value:"Primary and Secondary storage (Unraid 6.12)",id:"primary-and-secondary-storage-unraid-612",level:3},{value:"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)",id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier",level:3},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:3},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:3},{value:"Allocation method",id:"allocation-method",level:3},{value:"High-water method",id:"high-water-method",level:4},{value:"Fill-up method",id:"fill-up-method",level:4},{value:"Most-free method",id:"most-free-method",level:4},{value:"Split level",id:"split-level",level:3},{value:"Automatically split any directory as required",id:"automatically-split-any-directory-as-required",level:4},{value:"Automatically split only the top level directory as required",id:"automatically-split-only-the-top-level-directory-as-required",level:4},{value:"Automatically split only the top "N" level directories as required",id:"automatically-split-only-the-top-n-level-directories-as-required",level:4},{value:"Manual - do not automatically split directories",id:"manual---do-not-automatically-split-directories",level:4},{value:"Included or excluded disks",id:"included-or-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3}],C={toc:O},A="wrapper";function E(e){let{components:t,...a}=e;return(0,n.kt)(A,(0,r.Z)({},C,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"user-shares"},"User shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable user shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". User shares are enabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view."),(0,n.kt)("p",null,"You manage ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes."),(0,n.kt)("p",null,"When viewed at the Linux level, user shares appear under the path ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user"),". This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/shares/disk-shares"},"Disk Shares"),"."),(0,n.kt)("p",null,"Note that current releases of Unraid also include the mount point ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user0")," that shows the files in ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release."),(0,n.kt)("p",null,"The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method"),", ",(0,n.kt)("a",{parentName:"p",href:"#included-or-excluded-disks"},"included or excluded disks"),", and the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),"."),(0,n.kt)("p",null,"If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation."),(0,n.kt)("p",{parentName:"admonition"},"This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.")),(0,n.kt)("h2",{id:"share-settings"},"Share settings"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"When you configure the settings for the share, select the ",(0,n.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the Unraid webGUI for detailed information on the individual settings.")),(0,n.kt)("h3",{id:"minimum-free-space"},"Minimum free space"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting is used with the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method")," and ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),". This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk)."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.")),(0,n.kt)("p",null,"When Unraid receives a request to store a file, say for example ",(0,n.kt)("inlineCode",{parentName:"p"},"file.eg"),", it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer."),(0,n.kt)("p",null,"We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large."),(0,n.kt)("p",null,"The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter ",(0,n.kt)("em",{parentName:"p"},"50GB"),". Note that new user shares will have a default 10% minimum free space assignment."),(0,n.kt)("p",null,"Unraid will still place files on the disk if the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level")," does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is also a ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for cache pools. This is used to determine if a new file for a user share, with the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache")," setting of ",(0,n.kt)("em",{parentName:"p"},"Yes")," or ",(0,n.kt)("em",{parentName:"p"},"Prefer"),", should be written to the\ncache or, instead, bypass the cache and go directly to the array."),(0,n.kt)("p",{parentName:"admonition"},"This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.")),(0,n.kt)("h3",{id:"primary-and-secondary-storage-unraid-612"},"Primary and Secondary storage (Unraid 6.12)"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," parameter defines the location - ",(0,n.kt)("em",{parentName:"p"},"Cache"),", ",(0,n.kt)("em",{parentName:"p"},"Array"),", or any named pool - to which new files will be written for the selected share. The ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," parameter sets the location where files will be moved to if there is not enough room in primary storage."),(0,n.kt)("p",null,"When primary storage is below the ",(0,n.kt)("a",{parentName:"p",href:"#minimum-free-space"},"Minimum Free Space")," value, new files and folders are created in secondary storage."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"If you select an ",(0,n.kt)("em",{parentName:"p"},"array")," or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.")),(0,n.kt)("p",null,"Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users."),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of ",(0,n.kt)("em",{parentName:"li"},"Cache"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"any named pool can be selected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Array")," can be selected.")))),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"None"),": This means that there is no secondary storage set for this share. Note that secondary storage is optional.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"if Primary storage is a pool name, then the only options are ",(0,n.kt)("em",{parentName:"li"},"None")," and ",(0,n.kt)("em",{parentName:"li"},"Array"),"."),(0,n.kt)("li",{parentName:"ul"},"if Primary storage is ",(0,n.kt)("em",{parentName:"li"},"Array"),", then only ",(0,n.kt)("em",{parentName:"li"},"None")," appears as an option.")))),(0,n.kt)("h3",{id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier"},"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)"),(0,n.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently."),(0,n.kt)("admonition",{title:"INFO",type:"note"},(0,n.kt)("p",{parentName:"admonition"},"Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.")),(0,n.kt)("p",null,"Unraid includes an application called ",(0,n.kt)("strong",{parentName:"p"},"Mover")," that is used in conjunction with user shares. It's behavior is controlled by the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache for new files")," setting under each user share. The way these settings operate is as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value. If the free space is below that then bypass the cache and write the files directly to the main array."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation Method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space on the cache is below the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the cache then the write will fail with an out-of-space error."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the share, and if the free space falls below that value then write the files to the main array instead."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the ",(0,n.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache"),(0,n.kt)("p",{parentName:"li"},"It is the default setting for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"system")," shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations."),(0,n.kt)("p",{parentName:"li"},"This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, ",(0,n.kt)("strong",{parentName:"p"},"Mover")," will automatically try and move the files in any share set to ",(0,n.kt)("em",{parentName:"p"},"Prefer")," to the pool defined as the cache for the share. This is why ",(0,n.kt)("em",{parentName:"p"},"Prefer")," is the default for shares that are located on the cache rather than ",(0,n.kt)("em",{parentName:"p"},"Only")," as it caters to those who do not (yet) have a cache drive."))),(0,n.kt)("h3",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,n.kt)("p",null,"This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage."),(0,n.kt)("p",null,"Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Cache -> Array"),"."),(0,n.kt)("li",null,"Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the Use Cache setting for the share to ",(0,n.kt)("i",null,"Yes"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"Only")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,n.kt)("p",null,"You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," or default system shares."),(0,n.kt)("p",null,"The way to proceed to get the files belonging to a share from the main array onto a pool is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Array -> Cache"),"."),(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting for the share to ",(0,n.kt)("i",null,"Prefer"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"No")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,n.kt)("p",null,"When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user\nshare, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation."),(0,n.kt)("p",null,"The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: ",(0,n.kt)("strong",{parentName:"p"},"High-water"),", ",(0,n.kt)("strong",{parentName:"p"},"Most-free"),", or ",(0,n.kt)("strong",{parentName:"p"},"Fill-up"),"."),(0,n.kt)("h4",{id:"high-water-method"},"High-water method"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"High-water")," setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level."),(0,n.kt)("admonition",{title:"Example",type:"important"},(0,n.kt)("p",{parentName:"admonition"},"If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass."),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left."),(0,n.kt)("li",{parentName:"ul"},"When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space"),(0,n.kt)("li",{parentName:"ul"},"Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.")),(0,n.kt)("p",{parentName:"admonition"},"This pattern continues with progressively smaller high-water levels until the disks are full.")),(0,n.kt)("h4",{id:"fill-up-method"},"Fill-up method"),(0,n.kt)("p",null,"The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full."),(0,n.kt)("h4",{id:"most-free-method"},"Most-free method"),(0,n.kt)("p",null,"The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the\nmost free space."),(0,n.kt)("h3",{id:"split-level"},"Split level"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the number 1."),(0,n.kt)("h4",{id:"automatically-split-any-directory-as-required"},"Automatically split any directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"Allocation method"),". If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-level-directory-as-required"},"Automatically split only the top level directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-n-level-directories-as-required"},'Automatically split only the top "N" level directories as required'),(0,n.kt)("p",null,'Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.'),(0,n.kt)("h4",{id:"manual---do-not-automatically-split-directories"},"Manual - do not automatically split directories"),(0,n.kt)("p",null,"When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"In the event of there being conflicts between the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method")," settings in deciding which would be an appropriate drive to use, the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.")),(0,n.kt)("h3",{id:"included-or-excluded-disks"},"Included or excluded disks"),(0,n.kt)("p",null,"These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share settings"))," are allowed."),(0,n.kt)("p",null,"Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file."),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.")),(0,n.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,n.kt)("p",null,'The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.'),(0,n.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,n.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,n.kt)("h3",{id:"default-shares"},"Default Shares"),(0,n.kt)("p",null,"If ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/docker-management"},"Docker")," or ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/vm-support"},"VMs")," are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems."),(0,n.kt)("p",null,"The shares that fall into this category are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"appdata")," - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"system")," - This is the default location for storing the docker application binaries, and VM XML templates"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"domains")," - This is the default location for storing virtual disk images (vdisks) that are used by VMs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"isos")," - This is the default location for storing CD ISO images for use with VMs.")),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the ",(0,n.kt)("inlineCode",{parentName:"p"},"isos")," share that can be shared over the network so you can place new ISOs to use in virtual machines.")))}E.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8a89048a.938a4041.js b/assets/js/8a89048a.938a4041.js new file mode 100644 index 000000000..295c25bb7 --- /dev/null +++ b/assets/js/8a89048a.938a4041.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1770],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=p(a),d=n,h=m["".concat(l,".").concat(d)]||m[d]||u[d]||o;return a?r.createElement(h,i(i({ref:t},c),{},{components:a})):r.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},8829:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:5},i="Create a new share",s={unversionedId:"unraid-os/manual/shares/create-a-share",id:"unraid-os/manual/shares/create-a-share",title:"Create a new share",description:"When you create a new share, plan ahead.",source:"@site/docs/unraid-os/manual/shares/create-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/create-a-share",permalink:"/unraid-os/manual/shares/create-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/create-a-share.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Network access",permalink:"/unraid-os/manual/shares/network-access"},next:{title:"Delete a share",permalink:"/unraid-os/manual/shares/delete-a-share"}},l={},p=[],c={toc:p},m="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-new-share"},"Create a new share"),(0,n.kt)("p",null,"When you create a new share, plan ahead."),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"On the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab select ",(0,n.kt)("strong",{parentName:"p"},"Add Share"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Enter a name for your share in ",(0,n.kt)("strong",{parentName:"p"},"Share name")),(0,n.kt)("admonition",{parentName:"li",title:"Share names",type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so ",(0,n.kt)("inlineCode",{parentName:"p"},"media"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"Media"),", and ",(0,n.kt)("inlineCode",{parentName:"p"},"MEDIA")," would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," Enter a description for the share in the ",(0,n.kt)("strong",{parentName:"p"},"Comments")," field. This is visible when viewed over the network.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Set a ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value, in kilobytes, if you plan to use the setting, otherwise leave it empty.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),": high-water, fill-up, or most-free, depending on your use case. You can read about the differences ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/shares/user-shares#allocation-method"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," method for your data. You can find more information split level, ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/shares/user-shares#split-level"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," choose which disks will be available to the share. By default, all disks will be included.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks")," choose which disks will not be available to the share. Note that if you configure ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," there is no need to configure ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select a ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to ",(0,n.kt)("em",{parentName:"p"},"None"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," If you configure a primary and secondary storage, then ",(0,n.kt)("strong",{parentName:"p"},"Mover action")," option becomes active. This sets the direction of file transfers between Primary and Secondary storage.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select ",(0,n.kt)("strong",{parentName:"p"},"Add share")," to complete the creation."))),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"Note that, by default, a new share will not be shared over the network. You must configure ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/shares/network-access"},"network access")," after the share is created.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/90126b70.5b9aafb8.js b/assets/js/90126b70.5b9aafb8.js deleted file mode 100644 index 6646261a8..000000000 --- a/assets/js/90126b70.5b9aafb8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[79],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function r(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),p=h(a),u=i,m=p["".concat(l,".").concat(u)]||p[u]||c[u]||s;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=a.length,o=new Array(s);o[0]=u;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,o[1]=r;for(var h=2;h<s;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8693:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const s={sidebar_position:4},o="Shares",r={unversionedId:"unraid-os/manual/shares",id:"unraid-os/manual/shares",title:"Shares",description:"Once you have assigned some devices to Unraid and started the array, you",source:"@site/docs/unraid-os/manual/shares.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/shares",permalink:"/unraid-os/manual/shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/unraid-os/manual/storage-management"},next:{title:"Docker Management",permalink:"/unraid-os/manual/docker-management"}},l={},h=[{value:"User Shares",id:"user-shares",level:2},{value:"Allocation method",id:"allocation-method",level:3},{value:"High Water",id:"high-water",level:4},{value:"Most Free",id:"most-free",level:4},{value:"Fill-Up",id:"fill-up",level:4},{value:"Min. Free Space",id:"min-free-space",level:3},{value:"Split level",id:"split-level",level:3},{value:"Disable Split Level",id:"disable-split-level",level:4},{value:"Split Level = 1 Example",id:"split-level--1-example",level:4},{value:"Split Level 0",id:"split-level-0",level:5},{value:"Example",id:"example",level:6},{value:"Split By Character",id:"split-by-character",level:5},{value:"Included and Excluded disk(s)",id:"included-and-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3},{value:"Unraid 6.12",id:"unraid-612",level:3},{value:"Primary Storage",id:"primary-storage",level:4},{value:"Secondary Storage",id:"secondary-storage",level:4},{value:"Unraid 6.11 and earlier",id:"unraid-611-and-earlier",level:3},{value:"Use Cache (and Mover Behavior with User Shares)",id:"use-cache-and-mover-behavior-with-user-shares",level:4},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:5},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:5},{value:"Disk Shares",id:"disk-shares",level:2},{value:"Network access",id:"network-access",level:2},{value:"Access Permissions",id:"access-permissions",level:2},{value:"Windows 'Gotcha'",id:"windows-gotcha",level:3}],d={toc:h},p="wrapper";function c(e){let{components:t,...s}=e;return(0,i.kt)(p,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"shares"},"Shares"),(0,i.kt)("p",null,"Once you have assigned some devices to Unraid and started the array, you\ncan create ",(0,i.kt)("em",{parentName:"p"},"shares")," to simplify how you store data across multiple disks\nin the array. Unraid will automatically create a handful of shares for\nyou that it needs to support common plugins, containers, and virtual\nmachines, but you can also create your own shares for storing other\ntypes of data. Unraid supports 2 types of share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"User Shares"),(0,i.kt)("li",{parentName:"ul"},"Disk Shares")),(0,i.kt)("p",null,"You can control which of these types of shares are to be used under\nSettings-",">","Global Share Settings. The default on Unraid is to have User\nShares enabled but Disk Shares disabled."),(0,i.kt)("p",null,"It is sometimes important to realize that these are two different views\nof the ",(0,i.kt)("strong",{parentName:"p"},"same")," underlying file system. Every file/folder that appears\nunder a User Share will also appear under the Disk Share for the\nphysical drive that is storing the file/folder."),(0,i.kt)("h2",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"User Shares can be enabled/disabled via Settings-",">","Global Share\nSettings."),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Shares")," tab, you can either ",(0,i.kt)("em",{parentName:"p"},"create")," a new share or ",(0,i.kt)("em",{parentName:"p"},"edit"),"\nan existing share. Click the ",(0,i.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the\nUnraid webGui when configuring shares for more information on the\nsettings available._"),(0,i.kt)("p",null,"User Shares are implemented by using Linux Fuse file system support.\nWhat they do is provide an aggregated view of all top level folders of\nthe same name across the cache and the array drives. The name of this\ntop level folder is used as the share name. From a user perspective this\ngives a view that can span multiple drives when viewed at the network\nlevel. Note that no individual file will span multiple drives - it is\njust the directory level that is given a unified view."),(0,i.kt)("p",null,"When viewed at the Linux level then User Shares will appear under the\npath ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user")),". This includes the files on the main array and also\nany for the share on any pool. It is important to note that a User Share\nis just a logical view imposed on top of the underlying physical file\nsystem so you can see the same files if you look at the physical level\n(as described below for Disk Shares)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Current releases of Unraid also include the mount point\n",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user0"))," that shows the files in User Shares OMITTING any\nfiles for a share that are on any pool. This is just a different\nview of the files on your server. ",(0,i.kt)("em",{parentName:"li"},"However This mount point is now\ndeprecated and may stop being available in a future Unraid release."))),(0,i.kt)("p",null,"Normally one creates User Shares using the Shares tab. However if you\nmanually create a top level folder on any drive the system will\nautomatically consider this to be a user Share and give it default\nsettings."),(0,i.kt)("p",null,"Which physical drive in the main array is used to store a physical file\nis controlled by a number of settings for the share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Allocation method"),": This has various options:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Most Free"),": This option means that new files should go to the\ndisk with the most free space. It has the downside that one is\ncontinually switching drives which keeps the drive involved spun\nup.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Fill Up"),": This option means simply fill up drives in disk\norder until the free space falls below the Minimum Free Space\nsetting, and when that happens move onto the next disk. Many\nusers like this setting because their content is static in\nnature to they find this a simple way to manage their storage.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"High Water"),": (default) This option attempts to provide a\ncompromise between continually switching drives as is caused by\nthe ",(0,i.kt)("strong",{parentName:"p"},"Most Free")," setting and filling up disks in a sensible\nmanner, but not fill each drive to capacity before using the\nnext one. The aim is to allow related files do be kept together\non the same drive and to let unused drives be spun down."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It works with switch points based by continually halving the\nsize of the largest drive in the array."),(0,i.kt)("li",{parentName:"ul"},"Many people find this confusing (particularly in an array with\ndrives of varying size). so as an example if you had an array\nconsisting of drives of 8TB, 3Tb and 2TB",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The largest drive is 8TB so the switch points are 4TB, 2TB,\n1Tb etc."),(0,i.kt)("li",{parentName:"ul"},"The 4TB switch point is active so The 8TB Drive one would be\nfilled to 4TB free space left."),(0,i.kt)("li",{parentName:"ul"},"The 2TB switch point becomes active so the 8TB and 3TB\ndrives each gets used in disk order until it they have 2TB\nfree space"),(0,i.kt)("li",{parentName:"ul"},"The 1TB switch point becomes active so each drive now gets\nused in disk order until it only has 1TB free space."),(0,i.kt)("li",{parentName:"ul"},"etc"))))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Included")," or ",(0,i.kt)("strong",{parentName:"p"},"excluded")," drives: These settings allow you to\ncontrol which array drives can hold files for the share. Never set\nboth values, set only the one that is most convenient for you. If no\ndrives are specified under these settings then all drives allowed\nunder ",(0,i.kt)("em",{parentName:"p"},"Settings ",">",">"," Global Share settings")," are allowed.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Split level"),": This setting controls how files should be grouped."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": in the event of there being contentions between the\n",(0,i.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,i.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,i.kt)("strong",{parentName:"p"},"Allocation\nmethod")," settings in deciding which would be an appropriate drive to\nuse the ",(0,i.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can\nget an out-of-space error even though there is plenty of space on\nother array drives that the share can logically use."),(0,i.kt)("p",null,"Changing any of these settings for a share only affects where any new\nfiles are put. Any files already present in the share are left where\nthey are located when a setting is changed. It takes Manual action to\nmove existing files."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": The Linux file systems used by Unraid are case sensitive\nwhile the SMB share system is not. As an example this means that a\nfolder at the Linux level a folder called 'media' is different to one\ncalled 'Media'. However at the network level case is ignored so for\nexample 'media', Media', 'MEDIA' would all be the same share.\nHowever to take this example further you would only get the content of\none of the underlying 'media' or 'Media' folders to appear at the\nnetwork share level - and it can be non-obvious which one this would be."),(0,i.kt)("p",null,"The following sections proved more detail on how these settings work:"),(0,i.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,i.kt)("p",null,"When a new User share is created, or when any object (file or directory)\nis created within a User share, the system must determine which data\ndisk the User share or object will be created on. In general, a new User\nshare, or object within a User share, will be created on the data disk\nwith the most free space. However there are a set of share configuration\nparameters available to fine tune disk allocation."),(0,i.kt)("p",null,"The basic allocation strategy for a share is defined by the Allocation\nmethod configuration parameter. You may select one of three allocation\nmethods for the system to use."),(0,i.kt)("h4",{id:"high-water"},"High Water"),(0,i.kt)("p",null,"The high water allocation method attempts to step fill each disk so at\nthe end of each step there is an equal free space left on each disk. The\nidea is to progressively fill each disk but not constantly go back and\nforth between disks each time new data is written to the array. Most\ntimes, only a single disk will be needed when writing a series of files\nto the array so the array will only spin-up the needed disk. The high\nwater level is initially set equal to one-half of the size of the\nlargest disk. A new high water level is again set to one-half of the\nprevious high level once all the disks have less free space than the\ncurrent high water level."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8272).Z,width:"836",height:"505"})),(0,i.kt)("p",null,"The above example shows what will occur when there is a mix of 4 disks\nvarying is size from 500gig to 2T in size."),(0,i.kt)("p",null,"First Pass - The high water level is set to one-half of the size of the\n2T drive or 1T. Each disk will be filled until it has <1T of free space\nremaining. This means no data is stored on disk1 or disk2 since both\nalready have <1T of free space. 500gig of data will be stored on disk3\nfollowed by 1T of data being stored on disk4."),(0,i.kt)("p",null,"Second Pass - The high water level is reset to one-half of the previous\nlevel or 500gig. Each disk will be filled until it has <500gig of free\nspace remaining. This means no data is stored on disk1 since it already\nhas <500gig of free space. 500gig of data will be stored on disk2 and\nthen 500gig of data will be stored on disk3 and finally 500gig of data\nwill be stored on disk4."),(0,i.kt)("p",null,"Third Pass - The high water level is again reset to one-half of the\nprevious level or 250gig. Each disk will be filled until it has <250gig\nof free space remaining. 250gig of data will be stored on disk1 and then\n250gig of data will be stored on disk2 and then 250gig of data will be\nstored on disk3 and finally 250gig of data will be stored on disk4. An\ninteresting note is that the 500gig disk does not get used at all until\nthe third pass. Don't be concerned if the smaller sized disks don't\nimmediately get used with this method."),(0,i.kt)("p",null,"This pattern will continue with progressively smaller high water levels\nuntil the disks are full."),(0,i.kt)("h4",{id:"most-free"},"Most Free"),(0,i.kt)("p",null,"The most free allocation method simply picks the disk with the most free\nspace and writes the data to that disk. Each time a file is written\nUnraid will check the free space on the disks and pick the one with the\nmost free space."),(0,i.kt)("h4",{id:"fill-up"},"Fill-Up"),(0,i.kt)("p",null,"The fill-up allocation method simply attempts to fill each disk in order\nfrom the lowest numbered disk to the highest numbered disk. The fill-up\nallocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and\nnot allow any more transfers once the first disk gets close to being\nfull."),(0,i.kt)("h3",{id:"min-free-space"},"Min. Free Space"),(0,i.kt)("p",null,"The minimum free space setting is used with the allocation method and\nsplit level. The Minimum Free space setting doesn't control how much\nspace is kept free, but instead it controls how much space must be free\nfor a drive to be chosen for a new file. The minimum free space setting\ntherefore tells Unraid to stop putting new content onto the disk when\nthe free space falls below the level you set (as long as the Split Level\nsetting indicates it can be split to a new disk). This must be used with\nthe fill-up allocation method or disk full errors will occur when there\nis not enough space to fit a file you are trying to write to the array."),(0,i.kt)("p",null,'First a brief explanation of how Unraid will typically receive a file.\nUnraid typically receives data in this manner. First, Unraid receives\nthe request to store a file, named for example "file.eg". At this\ntime, Unraid has no idea how big "file.eg" is so Unraid will pick a\nspot to place "file.eg" and begin to store the file data as the data\nis transferred over the network. Now, this is important because Unraid\nmay pick a storage disk that does not have enough space to store the\ncomplete "file.eg". Unraid doesn\'t know there is not enough space\nwhen it first places the file so Unraid will only find out the disk\ndoesn\'t have enough space when the disk is full. At this point, the\ntransfer will fail with a disk full error.'),(0,i.kt)("p",null,"So, Unraid will write to a different disk if the minimum free space is\nset to a value larger than the biggest file size you will ever transfer.\nThe recommended setting is 2 times the largest file size you will ever\ntransfer. For example, if the largest file you have is 8gig in size then\nset the minimum free space to 16gig. This allows you to transfer files\nthat may vary in size somewhat and not accidentally transfer one too\nlarge. The minimum free space is set in kilo-bytes."),(0,i.kt)("p",null,"Here are some examples of the minimum free space setting;"),(0,i.kt)("hr",null),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Free Space"),(0,i.kt)("th",{parentName:"tr",align:null},"Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"500 meg"),(0,i.kt)("td",{parentName:"tr",align:null},"500000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"20 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"20000000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"40 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"40000000")))),(0,i.kt)("hr",null),(0,i.kt)("p",null,"Note that unRAID will still place files on the disk if the split level\ndoes not allow the files to be placed on another disk with more free\nspace."),(0,i.kt)("p",null,"Also note that Unraid will typically not move a file onto a new disk if\nyou're over-writing or updating it. For example, a backup file that\ngrows in size over time could end up filling a disk and causing a disk\nfull error."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": There is also a Minimum Free Space setting for cache pools.\nThis is used to determine when a new file for a User Share with the Use\nCache setting having a value of Yes or Prefer should be written to the\ncache or instead bypass the cache and go directly to the array. This\nneeds to be set if you want to avoid filling a cache pool which can\ncause problems. As for this value when used with a User Share it\nshould be larger than the largest file you intend to write, and some\npeople like to make it significantly larger. You get to this setting by\nclicking on a pool on the Main tab."),(0,i.kt)("h3",{id:"split-level"},"Split level"),(0,i.kt)("p",null,"The split level setting tells Unraid how many folder levels are allowed\nto be created on multiple disks. The split level can be used to ensure\nthat the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the\nnumber 1."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": in the event of there being contention between the\nvarious settings for a share over which array drive to select for a file\nthe Split Level setting always takes precedence. This means the\nAllocation Method and Minimum Free Space settings end up being\nover-ridden. This can mean Unraid chooses a drive which does not have\nenough space for the file so that an out-of-space error subsequently\noccurs for the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"The Split level setting is one that many users find confusing to here\nis a more detailed description of how it works."))),(0,i.kt)("p",null,'Here is an example showing a possible directory structure for a user\nshare called "Media".'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," I (the original author of this section) consider combining\nmedia types into a single large share a poor way to store media. I use a\nshare for each media type. Movies is a share and TV shows is a share. I\ncombined the movies and TV shows to show the pitfalls in the split\nlevels when doing this as explained after the figure."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1298).Z,width:"700",height:"255"})),(0,i.kt)("p",null,"Here is an explanation of the different split levels, referenced to the\nfolder structure above;"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Level 1",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select the\n"Automatically split only the top level directory as required"\noption.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Every other folder under the Media share must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting does not allow the SD Movies, HD Movies, Kids\nMovies or TV Shows folders to spread to multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too low for all the media."))),(0,i.kt)("li",{parentName:"ol"},"Level 2",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'this is what you have if in the GUI you select the\n"Automatically split only the top two directory levels as\nrequired" option.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting may work well. It will keep each movie and each TV\nseries together on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting may give issues because it keeps each TV series on\na single disk. So, a disk may fill as new TV seasons are added\nto a TV show which is on a disk which is close to full."))),(0,i.kt)("li",{parentName:"ol"},"Level 3",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top three directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder must remain on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting will allow the contents stored in each Movie Folder\nto be spread out onto multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high for the different movie types."))),(0,i.kt)("li",{parentName:"ol"},"Level 4",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top four directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high because it will allow the contents of\nevery folder to be spread out onto multiple disks. The split\nlevel is not being used to keep similar content together.")))),(0,i.kt)("p",null,"The only valid split level for the above example is 2. This causes a\nsplit level limitation which forces each complete TV series to a single\ndisk. This can force a new TV season to be placed on a disk which is\nalmost full and result in out of space errors once new episodes\ncompletely fill the disk. The split level can't be increased to 3\nbecause each individual movie would not be contained to a single disk."),(0,i.kt)("p",null,"The first way to fix this split level mismatch issue is to create\nseparate shares for the movies and the TV shows. This way, the movies\ncan be set to use a split level of 2 and the TV shows can use a split\nlevel of 3."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3865).Z,width:"726",height:"237"})),(0,i.kt)("p",null,'For Movies use a split level = 2. This allows the "SD Movies", "HD\nMovies" and "Kids Movies" folders to be placed on every disk and it\nkeeps each individual movie folder on a single disk. This way, any\nsingle movie folder and the contents of the movie folder will remain on\na single disk.'),(0,i.kt)("p",null,"For TV_Shows use a split level of either 1 or 2. A split level of 1 will\nkeep each TV series on a single disk and split level of 2 will keep each\nseason on a single disk. The split level of 2 means that the complete TV\nseries can be stored on multiple disks, however each individual season\nof that TV series will be on a single disk."),(0,i.kt)("p",null,"The second way to fix the issue is to add another folder level to the\nmovies, starting first with a Movies folder in the Media share and then\nplacing the different movie types below this."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(2778).Z,width:"644",height:"291"})),(0,i.kt)("p",null,"This user share structure must use split level = 3. SD Movies, HD\nMovies, Kids Movies and each TV series can exist on multiple disks. This\nstructure means each TV season can be on a different disk. This has the\nopposite issue compared to the first example. You can not use split\nlevel 2 to force each complete TV series to remain on a single disk\nwithout messing up the ability of the movies to split to every disk."),(0,i.kt)("p",null,"Some things to keep in mind."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'The above examples are to demonstrate the use of the split level. It\nis not necessary to store your media sorted in the same format as\nthe above example illustrates. You may want to use a Movies share\nand then just place a "Movie Name" folder for each movie directly\ninto the share without sorting the movies by type.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"It is completely valid to force each complete TV series to stay on a\nsingle disk. Just understand that a continuing TV series will keep\nfilling the disk where it is first placed. This may require manual\nintervention to shift some TV series from an almost full disk to an\nempty disk. Using the Most Free allocation method can help eliminate\nthe issue since a completely new TV series would be placed on the\ndisk with the most free space.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The above TV example applies to any similar share. It could apply to\na Pictures share where you store the pictures in folders based on\nthe year (2010, 2011, 2012 etc) or it could apply to a Music share\nwhere you store the music in a folder for each artist. In these\ncases, a split level of 1 would keep a whole year of pictures on a\nsingle disk or it would keep all the music by an artist on a single\ndisk."))),(0,i.kt)("h4",{id:"disable-split-level"},"Disable Split Level"),(0,i.kt)("p",null,"It is also possible to disable the split level by setting a high split\nlevel. A file copy or move will fail if a folder is locked to a full\ndisk and an attempt is made to add more files into that folder. Setting\na high split level will ensure each file will get written to the server\nas long as a disk has space for it."),(0,i.kt)("h4",{id:"split-level--1-example"},"Split Level = 1 Example"),(0,i.kt)("p",null,"The following example demonstrates how the share behaves when the split\nlevel is set to 1. The Share name is New_Movies. Each movie stored in\nthis share has its own folder. Inside the movie folder is the movie file\nas well as some metadata files used by MediaBrowser."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(5154).Z,width:"565",height:"626"})),(0,i.kt)("p",null,"The above Windows Explorer screen shot shows the file structure of the\nNew_Movies share on the left and the contents of the A History of\nViolence movie folder on the right. The levels for this share are\nlabeled on the example. This is what split level = 1 means:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"A New_Movies folder can be created on each disk allowed by the\ninclude and exclude disk settings. A new New_Movies folder will be\ncreated on the next disk in line when the allocation method calls\nfor Unraid to begin filling the next disk. Note that the New_Movies\nfolder will only be created on the next disk in line when it is\nnecessary and not when the share is created.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The A History of Violence folder can only\nexist on one disk. Once it is created on the disk, all of the\ncontents will remain on the same disk. Any changes or additions to\nthis folder will remain on the same disk. For example, a new file\ncalled movie.nfo for the XBMC metadata might be created in this\nfolder in the future. The movie.nfo file will be created in the\nexisting A History of Violence folder. A duplicate A History of\nViolence folder will not be created on another disk to store this new\nfile."))),(0,i.kt)("p",null,"You will notice that the movie folders (500) Days of Summer (2009) and\n2 Fast 2 Furious (2003) both appear in the New_Movies share. The next\nscreen shot will show how each of these files is stored on a separate\ndisk."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8362).Z,width:"1208",height:"705"})),(0,i.kt)("p",null,"The above screen shot shows side by side Window Explorer views of the\nfile structure stored on disk1 and disk2. On the left is disk1 and on\nthe right is disk2. The left Explorer window shows the contents of\ndisk1. The New_Movies share is a folder stored at the top level or the\nroot of disk1 with the individual movie directories stored in this\ndirectory. The right Explorer window shows the contents of disk2. The\nNew_Movies share is a folder stored at the top level or the root of\ndisk2 with the individual movie folders stored in this directory. As\nfiles were being moved into the New_Movies share, Unraid created the\nNew_Movies folder on both disk1 and disk2 to store these files."),(0,i.kt)("p",null,"The windows side by side can be used to examine the contents of the\nNew_Movies share on a disk by disk basis. You will notice that the movie\nfolder (500) Days of Summer (2009) is stored on disk1 and the movie\nfolder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted,\nUnraid combines the movies stored on disk1 and disk2 into one network\nshare called New_Movies and both movies appear in the New_Movies network\nshare."),(0,i.kt)("p",null,"Take note that a share called Movies is also visible on disk2."),(0,i.kt)("h5",{id:"split-level-0"},"Split Level 0"),(0,i.kt)("p",null,'This is what you have if in the GUI you select "Manual: do not\nAutomatically split directories".'),(0,i.kt)("p",null,"Split level 0 is a special case. Split level 0 requires you to create\nthe desired top level or parent folder structure. Unraid will\nunconditionally create an object on the disk that contains the parent\nfolders. Unraid will choose which disk to use according to the\nallocation method if the parent folders exist on multiple disks."),(0,i.kt)("p",null,"If you set the Split level to 0, then all directories/files created\nunder that share will be on the same disk where the directory within\nthat share share was originally created. In other words, use level 0 to\nnot allow the share to split automatically across disks"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")," If you create the same folder structure on multiple disks then\nUnraid will apply the other share settings to decide which disk to use."),(0,i.kt)("h6",{id:"example"},"Example"),(0,i.kt)("p",null,"The server has 4 disks. A user share called Media is desired. Different\ntypes of media will be stored in this share. The desired structure is;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"disk1 - will hold the DVD movies."),(0,i.kt)("li",{parentName:"ul"},"disk2 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk3 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk4 - will hold the TV series.")),(0,i.kt)("p",null,"The desired structure is illustrated below."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3610).Z,width:"1369",height:"388"})),(0,i.kt)("p",null,"On the left side is how the user share will appear and on the right side\nis the folder structure on each disk. The user will go to each disk and\ncreate the folders shown in red to create the storage as listed above.\nThen, the Media folder as well as the DVD Movies, BluRay Movies and TV\nShows folders become the parent folders for everything stored in the\nMedia share. The media will be sorted by disk as follows;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Movies placed in the DVD Movies folder will go to disk1."),(0,i.kt)("li",{parentName:"ul"},"Movies placed in the BluRay Movies folder will go to disk2 or disk3.\nThe disk is selected by the allocation method."),(0,i.kt)("li",{parentName:"ul"},"TV shows placed in the TV Shows folder will go to disk4.")),(0,i.kt)("p",null,"Say one day that disk1 is full and disk5 is added to the server to hold\nnew DVD Movies. The same folders on disk1 must be created on the new\ndisk5. In other words, the folder Media and sub-folder DVD Movies must\nbe created on disk5. Then, Unraid can use either disk1 or disk5 to store\nDVD Movies."),(0,i.kt)("h5",{id:"split-by-character"},"Split By Character"),(0,i.kt)("p",null,"Specify a character in the split level box to use this method. Then,\nUnraid will not allow any folder name containing the character to split.\nFor example, set the split level to an opening square bracket ( [ )\ninstead of a number. Then, create each movie folder with the year\nencased in square brackets after the title in this manner - Iron Man 2\n","[2010]",". Unraid will see the opening square bracket ( [ ) and it will\nnot split this folder or any content stored inside this folder."),(0,i.kt)("p",null,"This type of split level can allow different levels of sub-folders to be\nspecified as not splitting simply by inserting the character into the\nfolder name which should not split. This can overcome the limitation of\nhaving a fixed split level for a share."),(0,i.kt)("h3",{id:"included-and-excluded-disks"},"Included and Excluded disk(s)"),(0,i.kt)("p",null,'The included disk(s) and excluded disk(s) parameters control which disks\nare allowed to be used by each user share. These parameters can be used\nseparately or together to define the group of disks allowed for writing\nfiles to each user share. The disks are entered by disk number with a\ncomma separating each disk, for example "disk2,disk5".'),(0,i.kt)("p",null,"Unraid will first check the included disks(s) set and then the Excluded\ndisk(s) set when deciding which disk to place a file on. Then, Unraid\nwill use the split level and allocation method to pick a disk which is\nallowed to hold the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," The Include/Exclude settings at the individual share level\nonly control which disks new files can be written to. Files on other\ndisks that are in a folder corresponding to the share name will still\nshow up under that share for read purposes."),(0,i.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,i.kt)("p",null,'The included disks(s) parameter defines the set of disks which are\ncandidates for allocation to that share. All disks may be used by the\nuser share when the Included disk(s) parameter is left blank. Specify\nthe disks to include here. For example, set the included disk(s) to\n"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and\ndisk3.'),(0,i.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,i.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are\nexcluded from use by the user share. No disks are excluded from use by\nthe user share when the excluded disk(s) parameter is left blank.\nSpecify the disks to exclude here. For example, set the excluded disk(s)\nto "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,i.kt)("h3",{id:"default-shares"},"Default Shares"),(0,i.kt)("p",null,"If you have Docker or VMs enabled then a number of default shares are\nset up to support their use. It is not mandated that you use these\nshares (and the system will let you remove them if you do not want to\nuse them for their standard purpose) but it is recommended as it tends\nto make it easier to support users who encounter problems."),(0,i.kt)("p",null,"The shares that fall into this category are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"appdata"),": this is the default location for storing working files\nassociated with docker containers. Typically there will be a\nsub-folder for each docker container."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": this is the default location for storing the docker\napplication binaries, and VM XML templates"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": this is the default location for storing virtual disk\nimages (vdisks) that are used by VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": this is the default location for storing CD iso images for\nuse with VMs.")),(0,i.kt)("h3",{id:"unraid-612"},"Unraid 6.12"),(0,i.kt)("p",null,"The Unraid 6.12 release has introduced some new terminology to make it\nclearer to new users where files are initially placed and where they\nwill end up. The same functionality is present in earlier releases, but\nhas often been misunderstood by new users."),(0,i.kt)("h4",{id:"primary-storage"},"Primary Storage"),(0,i.kt)("p",null,"This is the location to which ",(0,i.kt)("strong",{parentName:"p"},"new")," files will be written."),(0,i.kt)("p",null,"If Primary storage is below the Minimum Free Space setting then new\nfiles and folders will be created in Secondary storage, if configured"),(0,i.kt)("p",null,"For the Primary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"this option is mandatory. ie, Primary storage must be selected"),(0,i.kt)("li",{parentName:"ul"},"any named pool can be selected"),(0,i.kt)("li",{parentName:"ul"},'"Array" can be selected (meaning the Unraid array)')),(0,i.kt)("h4",{id:"secondary-storage"},"Secondary Storage"),(0,i.kt)("p",null,"This is the location where files will be moved to if appropriate."),(0,i.kt)("p",null,"For the Secondary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"None: This means that there is no secondary storage set for this\nshare i.e Secondary storage is optional"),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is a pool name, then the only options are\n"none" and "Array"'),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is "Array", then only "none" appears as an\noption')),(0,i.kt)("h3",{id:"unraid-611-and-earlier"},"Unraid 6.11 and earlier"),(0,i.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They\nachieve the same functionality as the settings available in 6.12 but are\npresented differently."),(0,i.kt)("h4",{id:"use-cache-and-mover-behavior-with-user-shares"},"Use Cache (and Mover Behavior with User Shares)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": Starting with Unraid 6.9.0 multiple pools can exist and they\ncan have any name the user chooses. Any of these pools can act act as a\ncache in the way Unraid uses the term. The word cache therefore is\nreferring to this functionality and not necessarily to the pool name."),(0,i.kt)("p",null,"Unraid includes an application called ",(0,i.kt)("strong",{parentName:"p"},"mover"),' that is used in\nconjunction with User Shares. It\'s behavior is controlled by the "Use\nCache for new files" setting under each User Share. The way these\ndifferent settings operate is as follows'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on\nthe cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," value. If the free space\nis below that then by-pass the cache and write the files directly to\nthe main array."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move files to the main array as\nlong as they are not currently open. Which array drive will get the\nfile is controlled by the combination of the ",(0,i.kt)("em",{parentName:"p"},"Allocation method"),",\n",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting for the share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive\nwill get the file is controlled by the combination of the\n",(0,i.kt)("em",{parentName:"p"},"Allocation method"),", ",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting\nfor the share."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the cache that logically belong to this\nshare.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space\non the cache is below the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache\nthen the write will fail with an out-of-space error."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the main array that logically belong to\nthis share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the\ncache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the share, and\nif the free space falls below that value then write the files to the\nmain array instead."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move any files for this share\nthat are on the main array back to the cache as long as the free\nspace on the cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the\ncache"),(0,i.kt)("p",{parentName:"li"}," It is the default setting for the ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"System")," Shares that\nare used to support the Docker and VM sub-systems. In typical use\nyou want the files/folders belonging to these shares to reside on\nthe cache as you get much better performance from Docker containers\nand VMs if their files are not on the main array (due to the cost of\nmaintaining parity on the main array significantly slowing down\nwrite operations)."),(0,i.kt)("p",{parentName:"li"}," This setting works for a share even if you do not have (yet) a\nphysical cache drive(s) as then files will simply be written\ndirectly to the array. If at a later date you add a cache drive\nmover will now automatically try and move the files in any share set\nto Prefer to the pool defined as the cache for the share to improve\nperformance. This is why it is the default for shares that are\ntypically located on the cache rather than ",(0,i.kt)("em",{parentName:"p"},"Only")," as it caters for\nthose who do not (yet) have a cache drive."))),(0,i.kt)("h5",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,i.kt)("p",null,"This is the more traditional usage of a pool for caching where one wants\nthe files for a particular share initially written to a pool acting as a\ncache to maximise write speed, but later you want it to be moved to the\nmain array for long term storage. Most of the time all that is required\nis to set the Use Cache setting for the share to Yes and the default\nbehaviour handles the rest with no further user interaction."),(0,i.kt)("p",null,"Sometimes for one reason or another users find that the files seem to be\n'stuck' on a pool. The way to proceed in such a case to get the files\nbelonging to a share from a pool onto the main array is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)."),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Yes")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move ",(0,i.kt)("em",{parentName:"li"},"Yes"),"\ntype shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use if you disabled them earlier."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"Only")," to say files\nfor this share can never be written to the array.")),(0,i.kt)("h5",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,i.kt)("p",null,"One typically wants files associated with running Docker containers or\nVMs on a pool to maximise performance. It is not unusual for one reason\nor another to find that one has files on the main array which you really\nwant to be on a pool. In particular this is likely to happen for the\nappdata or system shares"),(0,i.kt)("p",null,"The way to proceed to get the files belonging to a share from the main\narray onto a pool is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)"),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Prefer")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move\n",(0,i.kt)("em",{parentName:"li"},"Prefer")," type shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"No")," to say files for\nthis share can never be cached on a pool.")),(0,i.kt)("h2",{id:"disk-shares"},"Disk Shares"),(0,i.kt)("p",null,"These are shares that relate to individual array drives or pools within\nthe Unraid system and that are visible over the network. By default if\nUser Shares are enabled then Disk Shares are not enabled (see the\nIMPORTANT section below for the reason why this is the case). If you\nwant the Disk Shares to be enabled then this is done under\nSettings-",">","Global Share Settings. The Disk Shares will then appear in\nthe Unraid GUI under a Disk Shares section on the Shares tab. You will\nwant to modify the user permissions to restrict network user access if\ndesired, just like User Shares."),(0,i.kt)("p",null,"When viewed at the Linux level the physical devices or pools will appear\ndirectly under ",(0,i.kt)("em",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or\npool. (This happens regardless of whether Disk Shares are enabled) .\nExamples of such names are:"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/diskX:")," these are array drives where X corresponds to the disk\nnumber that shows in the Unraid GUI. The corresponding Disk Share at the\nnetwork level would be ",(0,i.kt)("em",{parentName:"p"},"diskX")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/pool-name:")," These are pools. A single pool can actually consist of\nmultiple drives but Unraid treats them as if they were one drive. The\ncommonest example of a pool-name is ",(0,i.kt)("em",{parentName:"p"},"'cache'")," but it can be any name\ndefined by the user. The corresponding Disk Share at the network level\nwould be ",(0,i.kt)("em",{parentName:"p"},"pool-name.")),(0,i.kt)("p",null,"The Unraid flash device that is used to boot Unraid and store all user\nsettings is also a physical device, but is not normally considered to be\na Disk Share. If you want it visible on the network then you can click\non it in the Main tab and set it to appear at the network level as the\n'",(0,i.kt)("em",{parentName:"p"},"flash"),"' share. At the Linux level it is mounted at /",(0,i.kt)("em",{parentName:"p"},"boot")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),"\nIf you have both ",(0,i.kt)("em",{parentName:"p"},"Disk Shares")," and ",(0,i.kt)("em",{parentName:"p"},"User Shares")," enabled then there\nis an important restriction that you must observe if you want to\navoid potential data loss. What you must ",(0,i.kt)("strong",{parentName:"p"},"NEVER")," do is copy\nbetween a ",(0,i.kt)("strong",{parentName:"p"},"User Share")," and a ",(0,i.kt)("strong",{parentName:"p"},"Disk Share")," in the same copy\noperation where the folder name on the Disk Share corresponds to the\nUser Share name. This is because at the base system level Linux does\nnot understand ",(0,i.kt)("em",{parentName:"p"},"User Shares")," and therefore that a file on a ",(0,i.kt)("em",{parentName:"p"},"Disk\nShare")," and a ",(0,i.kt)("em",{parentName:"p"},"User Share")," can be different views of the ",(0,i.kt)("strong",{parentName:"p"},"same"),"\nfile. If you mix the share types in the same copy command you can\nend up trying to copy the file to itself which results in the file\nbeing truncated to zero length and its content thus being lost."),(0,i.kt)("p",null,"There is no problem if the copy is between shares of the same type,\nor copying to/from a disk mounted as an Unassigned Device."),(0,i.kt)("p",null,"There is another quirk of the interaction between Linux and the Unraid\nUser Share system that users can encounter if they are working at the\nDisk Share level. The Linux command for Move is implemented by first\ntrying a rename on the file (which is fast) and only if that fails does\nit do a copy then delete operation. This can mean that under some\ncircumstances when working locally on the server (e.g. from the command\nline when you try to move files from one user share to another, Linux\nwill often simply rename the files so they have a different path on the\nsame disk, in violation of any user share settings such as included\ndisks. The workaround for this is to instead explicitly copy from source\nto destination so that new files get created following the user share\nsettings, then deleting from the source."),(0,i.kt)("h2",{id:"network-access"},"Network access"),(0,i.kt)("p",null,"You can control what protocols should be supported for accessing the\nUnraid server across the network. Click on Settings-",">","Network Services\nto see the various options available.. These options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"SMB"),": This the standard protocol used by Windows systems. It is\nwidely implemented on other systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"NFS"),": ",(0,i.kt)("strong",{parentName:"li"},"N"),"etwork ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"S"),"ystem. This is a protocol widely\nused on Unix compatible systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"AFP"),": ",(0,i.kt)("strong",{parentName:"li"},"A"),"pple ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol. This is the protocol that\nhas historically been used on Apple Mac systems. It is now a\ndeprecated option as the latest versions of MacOS now use SMB as the\ntransferred protocol for accessing files and folders over the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"FTP"),": ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"T"),"ransfer ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol.")),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the visibility of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes"),": With this setting the share will be visible across the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes (Hidden)"),": With this setting the share can be accessed across\nthe network but will not be listed when browsing the shares on the\nserver. Users can still access the share as long as they know the\nname and the user is prepared to enter in manually."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"No"),": With this option selected then it is not possible to access\nthe share across the network.")),(0,i.kt)("h2",{id:"access-permissions"},"Access Permissions"),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the access rights of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Security")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Public"),": All users have both read and write access to the\ncontents of the share"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Secure"),": All users including guests have read access, you select\nwhich of your users have write access"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Private"),": You select which of your users have access and for each\nuser whether that user has read/write or read-only access.")),(0,i.kt)("h3",{id:"windows-gotcha"},"Windows 'Gotcha'"),(0,i.kt)("p",null,"There is an issue with the way Windows handles network shares that many\nusers fall foul of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"This is the fact that Windows only allows a ",(0,i.kt)("strong",{parentName:"li"},"single")," username to\nbe used to connect to a specific server at any given time. All\nattempts to then connect to a different share on the same server\nthat are not public shares put up a Username/Password prompt and\nthis fails as though you have entered an incorrect password for this\nusername. If you have any shares on the server set to ",(0,i.kt)("strong",{parentName:"li"},"Private")," or\n",(0,i.kt)("strong",{parentName:"li"},"Secure")," access it can therefore be important that you connect to\nsuch a share first before any shares set for ",(0,i.kt)("strong",{parentName:"li"},"Public")," access which\nmay connect as a guest user and make subsequent attempts to connect\nwith a specific user fail."),(0,i.kt)("li",{parentName:"ul"},"A workaround that can help with avoiding this issue is the fact that\nif you access a server both by it's network name and via it's IP\naddress then Windows will treat it a two separate servers as far as\nauthentication is concerned.")))}c.isMDXComponent=!0},8272:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG"},3610:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG"},5154:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg"},8362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG"},1298:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG"},3865:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG"},2778:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG"}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.52175e15.js b/assets/js/935f2afb.52175e15.js new file mode 100644 index 000000000..2873a1925 --- /dev/null +++ b/assets/js/935f2afb.52175e15.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"Redeem License Activation Code","href":"/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Shares","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User shares","href":"/unraid-os/manual/shares/user-shares","docId":"unraid-os/manual/shares/user-shares"},{"type":"link","label":"Disk shares","href":"/unraid-os/manual/shares/disk-shares","docId":"unraid-os/manual/shares/disk-shares"},{"type":"link","label":"Network access","href":"/unraid-os/manual/shares/network-access","docId":"unraid-os/manual/shares/network-access"},{"type":"link","label":"Create a new share","href":"/unraid-os/manual/shares/create-a-share","docId":"unraid-os/manual/shares/create-a-share"},{"type":"link","label":"Delete a share","href":"/unraid-os/manual/shares/delete-a-share","docId":"unraid-os/manual/shares/delete-a-share"}],"href":"/unraid-os/manual/shares/"},{"type":"link","label":"Overview","href":"/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Docker Management","href":"/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Good Practices","href":"/unraid-os/manual/security/good-practices","docId":"unraid-os/manual/security/good-practices"},{"type":"link","label":"Securing webGUI connections (SSL)","href":"/unraid-os/manual/security/secure-webgui-ssl","docId":"unraid-os/manual/security/secure-webgui-ssl"},{"type":"link","label":"Data Encryption","href":"/unraid-os/manual/security/data-encryption","docId":"unraid-os/manual/security/data-encryption"},{"type":"link","label":"Flash Drive","href":"/unraid-os/manual/security/flash-drive","docId":"unraid-os/manual/security/flash-drive"},{"type":"link","label":"VPN","href":"/unraid-os/manual/security/vpn","docId":"unraid-os/manual/security/vpn"}],"href":"/unraid-os/manual/security/"},{"type":"link","label":"Multi-Language Support","href":"/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/category/getting-started"},{"type":"link","label":"Tools","href":"/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/category/zfs"}],"href":"/category/manual"}],"href":"/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/connect/remote-access","docId":"connect/remote-access"}],"href":"/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/category/tutorial---extras"}],"href":"/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"Redeem License Activation Code","description":"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security/data-encryption":{"id":"unraid-os/manual/security/data-encryption","title":"Data Encryption","description":"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.","sidebar":"unraidSidebar"},"unraid-os/manual/security/flash-drive":{"id":"unraid-os/manual/security/flash-drive","title":"Flash Drive","description":"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.","sidebar":"unraidSidebar"},"unraid-os/manual/security/good-practices":{"id":"unraid-os/manual/security/good-practices","title":"Good Practices","description":"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.","sidebar":"unraidSidebar"},"unraid-os/manual/security/secure-webgui-ssl":{"id":"unraid-os/manual/security/secure-webgui-ssl","title":"Securing webGUI connections (SSL)","description":"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let\'s Encrypt.","sidebar":"unraidSidebar"},"unraid-os/manual/security/security":{"id":"unraid-os/manual/security/security","title":"Security","description":"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.","sidebar":"unraidSidebar"},"unraid-os/manual/security/vpn":{"id":"unraid-os/manual/security/vpn","title":"VPN","description":"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/create-a-share":{"id":"unraid-os/manual/shares/create-a-share","title":"Create a new share","description":"When you create a new share, plan ahead.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/delete-a-share":{"id":"unraid-os/manual/shares/delete-a-share","title":"Delete a share","description":"To delete a share on your Unraid server the share must contain no data.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/disk-shares":{"id":"unraid-os/manual/shares/disk-shares","title":"Disk shares","description":"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/network-access":{"id":"unraid-os/manual/shares/network-access","title":"Network access","description":"Communication protocols","sidebar":"unraidSidebar"},"unraid-os/manual/shares/shares":{"id":"unraid-os/manual/shares/shares","title":"Shares","description":"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/user-shares":{"id":"unraid-os/manual/shares/user-shares","title":"User shares","description":"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.5bd72703.js b/assets/js/935f2afb.5bd72703.js deleted file mode 100644 index a8f6714ba..000000000 --- a/assets/js/935f2afb.5bd72703.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"Redeem License Activation Code","href":"/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Shares","href":"/unraid-os/manual/shares","docId":"unraid-os/manual/shares"},{"type":"link","label":"Docker Management","href":"/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"link","label":"Multi-Language Support","href":"/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/category/getting-started"},{"type":"link","label":"Security","href":"/unraid-os/manual/security","docId":"unraid-os/manual/security"},{"type":"link","label":"Tools","href":"/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/category/zfs"}],"href":"/category/manual"}],"href":"/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/connect/remote-access","docId":"connect/remote-access"}],"href":"/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/category/tutorial---extras"}],"href":"/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"Redeem License Activation Code","description":"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security":{"id":"unraid-os/manual/security","title":"Security","description":"This section covers various security-related aspects of Unraid","sidebar":"unraidSidebar"},"unraid-os/manual/shares":{"id":"unraid-os/manual/shares","title":"Shares","description":"Once you have assigned some devices to Unraid and started the array, you","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/989b789d.5f6c0f67.js b/assets/js/989b789d.f7c7fa37.js similarity index 80% rename from assets/js/989b789d.5f6c0f67.js rename to assets/js/989b789d.f7c7fa37.js index c9b177650..7bf6fdc34 100644 --- a/assets/js/989b789d.5f6c0f67.js +++ b/assets/js/989b789d.f7c7fa37.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9846],{7591:a=>{a.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Overview","permalink":"/unraid-os/manual/what-is-unraid"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9846],{7591:a=>{a.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Shares","permalink":"/unraid-os/manual/shares/"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9d23aec8.0cef40c3.js b/assets/js/9d23aec8.0cef40c3.js new file mode 100644 index 000000000..e62e12427 --- /dev/null +++ b/assets/js/9d23aec8.0cef40c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1754],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>d});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),h=p(a),u=n,d=h["".concat(s,".").concat(u)]||h[u]||m[u]||o;return a?r.createElement(d,l(l({ref:t},c),{},{components:a})):r.createElement(d,l({ref:t},c))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[h]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},6419:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:6},l="Delete a share",i={unversionedId:"unraid-os/manual/shares/delete-a-share",id:"unraid-os/manual/shares/delete-a-share",title:"Delete a share",description:"To delete a share on your Unraid server the share must contain no data.",source:"@site/docs/unraid-os/manual/shares/delete-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/delete-a-share",permalink:"/unraid-os/manual/shares/delete-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/delete-a-share.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"unraidSidebar",previous:{title:"Create a new share",permalink:"/unraid-os/manual/shares/create-a-share"},next:{title:"Overview",permalink:"/unraid-os/manual/what-is-unraid"}},s={},p=[{value:"Delete an empty share",id:"delete-an-empty-share",level:2},{value:"Delete a share that contains data",id:"delete-a-share-that-contains-data",level:2}],c={toc:p},h="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"delete-a-share"},"Delete a share"),(0,n.kt)("p",null,"To delete a share on your Unraid server the share must contain no data."),(0,n.kt)("h2",{id:"delete-an-empty-share"},"Delete an empty share"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted. Select ",(0,n.kt)("strong",{parentName:"li"},"Done"),".")),(0,n.kt)("h2",{id:"delete-a-share-that-contains-data"},"Delete a share that contains data"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Apps"),"."),(0,n.kt)("li",{parentName:"ol"},"Install a file management plugin from Community, such as Dynamix File Manager."),(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive."),(0,n.kt)("li",{parentName:"ol"},"If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion."),(0,n.kt)("li",{parentName:"ol"},"Delete the data or move it to another share on the server."),(0,n.kt)("li",{parentName:"ol"},"Return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete. This will open the share settings. If no data is left in the share, a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox is available."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted."),(0,n.kt)("li",{parentName:"ol"},"Select ",(0,n.kt)("strong",{parentName:"li"},"Done")," to return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"))),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a78d85c7.1bc9f9a4.js b/assets/js/a78d85c7.1bc9f9a4.js deleted file mode 100644 index d80559170..000000000 --- a/assets/js/a78d85c7.1bc9f9a4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=i,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var u=2;u<r;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},5536:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),i=(n(7294),n(4137));const r={},o="Security",s={unversionedId:"unraid-os/manual/security",id:"unraid-os/manual/security",title:"Security",description:"This section covers various security-related aspects of Unraid",source:"@site/docs/unraid-os/manual/security.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/security",permalink:"/unraid-os/manual/security",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Tools",permalink:"/unraid-os/manual/tools"}},l={},u=[{value:"Good Practices",id:"good-practices",level:2},{value:"Set a strong root password",id:"set-a-strong-root-password",level:3},{value:"Review port mappings on your router",id:"review-port-mappings-on-your-router",level:3},{value:"Never ever ever put your server in the DMZ",id:"never-ever-ever-put-your-server-in-the-dmz",level:3},{value:"Consider setting shares to private with users and passwords",id:"consider-setting-shares-to-private-with-users-and-passwords",level:3},{value:"Don't expose the Flash share, and if you do, make it private",id:"dont-expose-the-flash-share-and-if-you-do-make-it-private",level:3},{value:"Keep your server up-to-date",id:"keep-your-server-up-to-date",level:3},{value:"Use a secure method for remote administration",id:"use-a-secure-method-for-remote-administration",level:3},{value:"Securing webGui connections (SSL)",id:"securing-webgui-connections-ssl",level:2},{value:"A few details before we begin",id:"a-few-details-before-we-begin",level:3},{value:"How would you like to access the Unraid webGui while on your LAN?",id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan",level:3},{value:"Http only",id:"http-only",level:4},{value:"Https with Self-signed certificate",id:"https-with-self-signed-certificate",level:4},{value:"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable",level:4},{value:"Https with Myunraid.net certificate - with no fallback URL",id:"https-with-myunraidnet-certificate---with-no-fallback-url",level:4},{value:"Redirects",id:"redirects",level:3},{value:"Unraid Connect Remote Access",id:"unraid-connect-remote-access",level:3},{value:"Custom Certificates",id:"custom-certificates",level:3},{value:"Https with Custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:4},{value:"Data Encryption",id:"data-encryption",level:2},{value:"Flash Drive",id:"flash-drive",level:2},{value:"Backups",id:"backups",level:3},{value:"Network Access",id:"network-access",level:3},{value:"Permissions",id:"permissions",level:3},{value:"VPN",id:"vpn",level:2},{value:"Router",id:"router",level:3},{value:"OpenVPN",id:"openvpn",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Overview",id:"overview",level:4},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:4},{value:"Prerequisites",id:"prerequisites",level:5},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:5},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:5},{value:"Caution",id:"caution",level:6},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:5},{value:"About DNS",id:"about-dns",level:5},{value:"Complex Networks",id:"complex-networks",level:5},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:5},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:4},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:5},{value:"Configuring VPN tunneled access",id:"configuring-vpn-tunneled-access",level:5},{value:"Testing the tunnel",id:"testing-the-tunnel",level:5},{value:"Support",id:"support",level:4}],c={toc:u},h="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"security"},"Security"),(0,i.kt)("p",null,"This section covers various security-related aspects of Unraid"),(0,i.kt)("h2",{id:"good-practices"},"Good Practices"),(0,i.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that a\nuser would hate to lose. Since most users will have their home network\nconnected to the internet then precautions should be taken to avoid an\nUnraid server being compromised by malicious actors trying to access\nthem remotely."),(0,i.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls\nthat some user encounter regarding the security of their Unraid servers."),(0,i.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are\nsafe."),(0,i.kt)("p",null,"There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum\nthread"),"\nthat discusses this topic."),(0,i.kt)("h3",{id:"set-a-strong-root-password"},"Set a strong root password"),(0,i.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by\ndefault. This is to ensure you can quickly and easily access the\nmanagement console immediately after initial installation. However, this\ndoesn't mean you shouldn't set one. Doing this is simple. Just\nnavigate to the Users tab and click on root. Now set a password. From\nthen on, you will be required to authenticate anytime you attempt to\nlogin to the webGui."),(0,i.kt)("p",null,"In addition, there is a plugin available in Community Apps called\n",(0,i.kt)("em",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how\nstrong of a password you're creating based on complexity rules (how\nmany capital vs. lowercase letters, numbers, symbols, and overall\npassword length are used to judge this). Consider installing this for\nextra guidance on password strength. Once installed it is available in\nthe settings for any user to give guidance on the strength of any\npassword you type in."),(0,i.kt)("p",null,"You could also use ",(0,i.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this web\npage")," to get a very quick\nassessment of the strength of any specific password."),(0,i.kt)("h3",{id:"review-port-mappings-on-your-router"},"Review port mappings on your router"),(0,i.kt)("p",null,"Forwarding ports to your server is required for specific services that\nyou want to be Internet-accessible such as Plex, FTP servers, game\nservers, VoIP servers, etc. But forwarding the wrong ports can expose\nyour server to significant security risk. Here are just a few ports you\nshould be extra careful with when forwarding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 80"),": Used to access the webGui without SSL (unless you've\nrebound access to another port on the Management Access settings\npage). Forwarding this port by default will allow you to access the\nwebGui remotely, but without SSL securing the connection, devices in\nbetween your browser and the server could \"sniff\" the packets to\nsee what you're doing. If you want to make the webGui remotely\naccessible, install the ",(0,i.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," plugin, which can provide a\nsecure remote access solution that utilizes SSL to ensure your\nconnection is fully encrypted.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 443"),": Used to access the webGui with SSL. This is only\nbetter than port 80 if you have a root password set. If no root\npassword is set and you forward this port, unauthorized users can\nconnect to your webGui and have full access to your server. In\naddition, if you forward this port without using the ",(0,i.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect"),"\nplugin, attempts to connect to the webGui through a browser will\npresent a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,i.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect"),"\nplugin to enable simple, safe, and secure remote access to your\nUnraid systems.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 445"),": Used for SMB (shares). If you forward this port to\nyour server, any public shares can be connected to by any user over\nthe internet. Generally speaking, it is never advisable to expose\nSMB shares directly over the internet. If you need the ability to\naccess your shares remotely, we suggest utilizing a WireGuard VPN to\ncreate a secure tunnel between your device and the server. In\naddition, if the flash device itself is exported using SMB and this\nport is forwarded, its contents can easily be deleted and your paid\nkey could easily be stolen. Just don't do this.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 111/2049:")," Used for NFS (shares). While NFS is disabled by\ndefault, if you are making use of this protocol, just make sure you\naren't forwarding these ports through your router. Similar to SMB,\njust utilize WireGuard to create a secure tunnel from any remote\ndevices that need to connect to the server over NFS.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all,\nbut rather, suggest users leverage a WireGuard VPN connection for\nthe purposes of connecting using either of these protocols.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Ports in the 57xx range:")," These ports are generally used by VMs\nfor VNC access. While you can forward these ports to enable VNC\naccess remotely for your VMs, the better and easier way to do this\nis through installing the ",(0,i.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections\nare secure via SSL and does not require individual ports to be\nforwarded for each VM."))),(0,i.kt)("p",null,"Generally speaking, you really shouldn't need to forward many ports to\nyour server. If you see a forwarding rule you don't understand,\nconsider removing it, see if anyone complains, and if so, you can always\nput it back."),(0,i.kt)("h3",{id:"never-ever-ever-put-your-server-in-the-dmz"},"Never ever ever put your server in the DMZ"),(0,i.kt)("p",null,'No matter how locked down you think you have your server, it is never\nadvisable to place it in the DMZ on your network. By doing so, you are\nessentially forwarding every port on your public IP address to your\nserver directly, allowing all locally accessible services to be remotely\naccessible as well. Regardless of how "locked down" you think you\nactually have the server, placing it in the DMZ exposes it to\nunnecessary risks. Never ever do this.'),(0,i.kt)("h3",{id:"consider-setting-shares-to-private-with-users-and-passwords"},"Consider setting shares to private with users and passwords"),(0,i.kt)("p",null,"The convenience of password-less share access is pretty great. We know\nthat and its why we don't require you to set passwords for your shares.\nHowever, there is a security risk posed to your data when you do this,\neven if you don't forward any ports to your server and have a strong\nroot password. If another device on your network such as a PC, Mac,\nphone, tablet, IoT device, etc. were to have its security breached, it\ncould be used to make a local connection to your server's shares. By\ndefault, shares are set to be publicly readable/writeable, which means\nthose rogue devices can be used to steal, delete, or encrypt the data\nwithin them. In addition, malicious users could also use this method to\nput data on your server that you don't want. It is for these reasons\nthat if you are going to create public shares, we highly recommend\nsetting access to read-only. Only authorized users with a strong\npassword should be able to write data to your shares."),(0,i.kt)("h3",{id:"dont-expose-the-flash-share-and-if-you-do-make-it-private"},"Don't expose the Flash share, and if you do, make it private"),(0,i.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if\nyou need to make advanced changes to your system such as modifying the\ngo file in the config directory. However, the flash device itself\ncontains the files needed to boot Unraid as well as your configuration\ndata (disk assignments, shares, etc). Exposing this share publicly can\nbe extremely dangerous, so we advise against doing so unless you\nabsolutely have to, and when you do, it is advised to do so privately,\nrequiring a username and password to see and modify the contents."),(0,i.kt)("h3",{id:"keep-your-server-up-to-date"},"Keep your server up-to-date"),(0,i.kt)("p",null,"Regardless of what other measures you take, keeping your server current\nwith the latest release(s) is vital to ensuring security. There are\nconstant security notices (CVEs) published for the various components\nused in Unraid OS. We here at Lime Technology do our best to ensure all\nvulnerabilities are addressed in a timely manner with software updates.\nHowever, these updates are useless to you if you don't apply them in a\ntimely manner as well. Keeping your OS up-to-date is easy. Just navigate\nto Tools -",">"," Update OS to check for and apply any updates. You can\nconfigure notifications to prompt you when a new update is available\nfrom the Settings -",">"," Notifications page."),(0,i.kt)("h3",{id:"use-a-secure-method-for-remote-administration"},"Use a secure method for remote administration"),(0,i.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be\nadministered remotely but this should never be done by simply exposing\nexposing the Unraid webGui to the internet."),(0,i.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology.\nUnraid includes as standard the WireGuard VPN and an OpenVPN plugin and\nDocker container is also available. In addition many routers have built\nin VPN support which can be used."),(0,i.kt)("p",null,"An alternative for making the webGui remotely accessible is to install\nthe ",(0,i.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution\nthat utilizes SSL to ensure your connection is fully encrypted."),(0,i.kt)("h2",{id:"securing-webgui-connections-ssl"},"Securing webGui connections (SSL)"),(0,i.kt)("p",null,"Using wildcard SSL Certificates provisioned by ",(0,i.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's\nEncrypt"),", Unraid OS 6.10 improves the security\nof the SSL implementation for both local access and ",(0,i.kt)("a",{parentName:"p",href:"/connect/remote-access"},"Unraid Connect Remote Access"),"."),(0,i.kt)("h3",{id:"a-few-details-before-we-begin"},"A few details before we begin"),(0,i.kt)("p",null,"Some terms:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"servername")," can be changed on the Settings -",">",' Identification\npage. It defaults to "tower".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"localTLD")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "local".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "No".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTP port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "80". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTP port]")," to any of the http URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local:8080"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "443". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTPS port]")," to any of the https URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local:3443"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"certificate")," refers to either a self-signed SSL Certificate, or a\nSSL certificate issued by a Certificate Authority (Let's Encrypt)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"lan-ip")," is your server's LAN IP address with dots changed to\ndashes (example 192-168-100-1)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"wan-ip")," is your internet-facing IP address with dots changed to\ndashes (example 136-26-144-139)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"hash")," is a random 40 character hex string (160 bits) uniquely\nassigned to your server when a certificate is first issued")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Caveats of using a self-signed certificate"),": Note that browsers will\nshow a certificate error because they cannot verify the authenticity of\nself-signed certificates. All traffic will be encrypted once users\nacknowledge the browser warning."),(0,i.kt)("h3",{id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan"},"How would you like to access the Unraid webGui while on your LAN?"),(0,i.kt)("h4",{id:"http-only"},"Http only"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to No"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Traffic between the browser and the server will not be encrypted")),(0,i.kt)("h4",{id:"https-with-self-signed-certificate"},"Https with Self-signed certificate"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},'Unraid will manage the certificate for you. See "Caveats of using a\nself-signed certificate" above.')),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable"},"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate)'),(0,i.kt)("li",{parentName:"ul"},"Leave ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either No or Yes"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to No:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' set to Yes. Note that these\nURLs use a self-signed certificate (See "Caveats of using a\nself-signed certificate" above)',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your alternate URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This personal link\nis shown in the Certificate subject field on the Management Access\npage. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted if using https."),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"If at any point DNS resolution becomes unavailable, the alternate\nURL may not resolve. In this case use the primary URL as a fallback.")),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-no-fallback-url"},"Https with Myunraid.net certificate - with no fallback URL"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate if you run the ',(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned\nbelow)"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},'If DNS Rebinding is not an issue, the "Strict" option for ',(0,i.kt)("strong",{parentName:"li"},"Use\nSSL/TLS")," will be available."),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' to Strict (this was previously called "Auto",\nbut "Strict" is more descriptive)'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),") This\npersonal link is shown in the Certificate subject field on the\nManagement Access page. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"Note: If at any point DNS resolution becomes unavailable (e.g., your\nInternet goes down), use telnet, SSH or local keyboard/monitor to\nlogin. Then:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")),(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]"),'\nusing a self-signed certificate (See\n"Caveats of using a self-signed certificate" above)'),(0,i.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),"\nback to Strict")))),(0,i.kt)("h3",{id:"redirects"},"Redirects"),(0,i.kt)("p",null,"When accessing ",(0,i.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or\n",(0,i.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]")," , the behavior will change\ndepending on the value of the ",(0,i.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Strict, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior\nmakes it more difficult to access your server when DNS is\nunavailable (i.e. your Internet goes down). If that happens see the\nnote under ",(0,i.kt)("inlineCode",{parentName:"li"},"HTTPS with Myunraid.net certificate - with no fallback\nURL")," above."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Yes, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]"),"\nas that will likely work even if your Internet goes down."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to No, then the http url will load\ndirectly.")),(0,i.kt)("p",null,"Note: for the redirects to work, you must start from http urls not https\nurls."),(0,i.kt)("h3",{id:"unraid-connect-remote-access"},"Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect")," plugin"),(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Provision")," if you haven't already"),(0,i.kt)("li",{parentName:"ul"},"Regardless of the value of ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),", you will have the option\nto access the server using\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),")."),(0,i.kt)("li",{parentName:"ul"},"Navigate to Settings -",">"," Management Access -",">"," Unraid Connect page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Allow Remote Access")," to yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you want to use. For added security we\nrecommend you choose a random port over 1000 rather than using the\ndefault of 443. i.e. something like 13856, 48653, etc"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Apply")),(0,i.kt)("li",{parentName:"ul"},"Setup your router to port forward the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe LAN IP address and ",(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a\nnote on the screen telling you the exact port and IP to use."),(0,i.kt)("li",{parentName:"ul"},"Press the ",(0,i.kt)("strong",{parentName:"li"},"Check"),' button. If the port is forwarded correctly you\nwill see a message saying "Your Unraid Server is reachable from the\nInternet"'),(0,i.kt)("li",{parentName:"ul"},"To access your server using Remote Access, login to the Unraid Connect\nDashboard and click the Remote Access link. The URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[wan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856"),").")),(0,i.kt)("h3",{id:"custom-certificates"},"Custom Certificates"),(0,i.kt)("h4",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"Https with Custom certificate - with option to have Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of\nthe certificate.'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS\nfor this URL."),(0,i.kt)("li",{parentName:"ul"},"You are responsible for managing the certificate. Upload it to\n",(0,i.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem")),(0,i.kt)("li",{parentName:"ul"},"The certificate must be valid for ",(0,i.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be\n",(0,i.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be\nspecified in either the "Subject" of the certificate or one of the\n"Subject Alternative Name" fields (prior to 6.10.3, only the\n"Subject" field was used). If you find that Unraid deletes your\ncertificate, it is because the server\'s url is not specified in the\ncertificate.'),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"(optional) If desired, see the Unraid Connect Remote Access section\nabove")),(0,i.kt)("h2",{id:"data-encryption"},"Data Encryption"),(0,i.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the\narray. It does this using the Linux LUKS (Linux Unified Key System)\nencryption modules."),(0,i.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a\nstandard on-disk-format, it does not only facilitate compatibility among\ndistributions but also provides secure management of multiple user\npasswords. In contrast to an existing solution, LUKS stores all\nnecessary setup information in the partition header, enabling the user\nto transport or migrate their data seamlessly."),(0,i.kt)("p",null,"The home page for LUKS can be found\n",(0,i.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,i.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can\nbe read on any standard Linux system even when removed from Unraid as\nlong as one has the key phrase/file needed to unlock the drive."),(0,i.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting\nall drives being used by Unraid. The key for the encryption can be\neither a pass phrase, or provided via a key file. When using a key file\nit is a good idea to use something like an image as there is no chance\nof that ever being guessed. You must make sure that you do not lose the\nencryption key as without it you will not be able to access the data on\nencrypted drives."),(0,i.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the\ndrive)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Click on the drive on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"change the file system to the encrypted type that you want to use"),(0,i.kt)("li",{parentName:"ul"},"click Apply to commit the change"),(0,i.kt)("li",{parentName:"ul"},"click Done to return to the Main tab"),(0,i.kt)("li",{parentName:"ul"},"the drive will now show as unmountable and the option to format\nunmountable drives will be present. Check that the drive is the one\nyou are expecting to be encrypted and if it is correct go ahead and\nformat it.")),(0,i.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the\nencryption key when starting the array. Once this has been done and the\narray successfully started then you can access the data without being\naware of the fact that any drive is encrypted."),(0,i.kt)("p",null,"CAUTION: Encrypting data is good from a security perspective, but users\nshould be aware of the fact that it can complicate recovering from\ncertain types of hardware failure without data loss. On that basis only\nuse encryption if you feel you have a real need for it, and ideally make\nsure you have a good system for backing up any important data."),(0,i.kt)("h2",{id:"flash-drive"},"Flash Drive"),(0,i.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains\nall the configuration information relating to an Unraid server. You\ntherefore want to consider the security of the information it contains\nand how it is accessed."),(0,i.kt)("h3",{id:"backups"},"Backups"),(0,i.kt)("p",null,"If a flash drive ever fails for any reason then as long as you have a\nbackup getting the Unraid server back into normal operation is an easy\nprocess. It is recommended that you make a backup whenever you make a\nsignificant configuration change."),(0,i.kt)("p",null,"You easily achieve this from the Unraid GUI by:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Click on the flash drive on the Main tab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"In the ",(0,i.kt)("em",{parentName:"li"},"Flash Device Settings")," section click on the ",(0,i.kt)("strong",{parentName:"li"},"Flash Backup"),"\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The system will now start creating a zip file that is a backup of\nthe contents of the flash drive"),(0,i.kt)("li",{parentName:"ol"},"When the zip file has been created your browser should prompt you to\nprovide the location where you want the backup saved to. It is\nrecommended that this is a location off the Unraid server so that it\nis available even when the Unraid server is not operational.")),(0,i.kt)("p",null,"If you later need to recreate your flash drive for any reason this\nbackup can be used as input to the Limetech USB Creator tool."),(0,i.kt)("h3",{id:"network-access"},"Network Access"),(0,i.kt)("p",null,"The flash drive can have similar settings applied to it to control\naccess over the network as is the case for other shares on an Unraid\nsystem. The difference is that you set this up by clicking on the\n",(0,i.kt)("strong",{parentName:"p"},"flash")," device on the ",(0,i.kt)("em",{parentName:"p"},"Main")," tab in the GUI rather than doing it via\nthe Shares tab."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network visibility"),": You can specify whether the flash drive\nshould even be accessible via the network, and if it is accessible\nwhether it should be hidden or visible to everyone."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any\naccess permissions that you want applied.")),(0,i.kt)("h3",{id:"permissions"},"Permissions"),(0,i.kt)("p",null,"As part of improving the security of Unraid systems, starting with\nUnraid 6.8 files on the flash drive can no longer be given execute\npermission."),(0,i.kt)("p",null,"The implication of this is that if a user has their own custom scripts\n(or programs) stored on the flash drive they can no longer be executed\nfrom that location. There are a number of ways to handle this:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Copy the files to a location from which they can be executed",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The location ",(0,i.kt)("em",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the\nfiles on the default search path."),(0,i.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding\nappropriate commands to the config/go file on the flash drive."),(0,i.kt)("li",{parentName:"ul"},"Remember to give the files execute permission after copying\nthem."))),(0,i.kt)("li",{parentName:"ul"},"For scripts precede the script name with the command that runs the\nscript (e.g. ",(0,i.kt)("em",{parentName:"li"},"bash path-to-script"),")")),(0,i.kt)("h2",{id:"vpn"},"VPN"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Unraid servers are not hardened against attack via the network so\nshould ",(0,i.kt)("em",{parentName:"strong"},"NEVER")," be exposed directly to the internet.")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"One exception is the WireGuard VPN service introduced in Unraid 6.8\nexplicitly to address secure access to/from the internet."),(0,i.kt)("li",{parentName:"ul"},"If running Docker containers are exposed to the internet then the\nsecurity of these needs to be assessed on a case-by-case basis.")),(0,i.kt)("p",null,"You may need to contact the developer of the container to determine\nhow safe it is to expose it to the internet."),(0,i.kt)("p",null,"There is a level of protection as a docker container runs in a\n'sandboxed' environment so the level of access to the content of\nyour disks is constrained to what you allow in the path mapping\nsettings for the container."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If running VMs that are exposed to the internet then you need to\napply the same security to these that you would apply to a physical\nPC attached to the local LAN.")),(0,i.kt)("p",null,"If you want to make secure connections between an Unraid server and the\nInternet then you want to use a technology known as VPN (Virtual Private\nNetwork). VPN works on a client/server model where you have a server\nthat accepts incoming connections and a client that initiates such\nconnections."),(0,i.kt)("p",null,"In simplistic terms, the idea behind VPN connections is to set up an\nencrypted 'tunnel' between the client and server ends so that no\nmalicious players can intercept or eavesdrop on your interactions. Such\ntunnels are set up so that only authorized users are able to make such\nconnections. More information on VPN as a technology can be found in\n",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki\narticle")),(0,i.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the\ncommonest use case and many users want to be able to safely access\ntheir Unraid servers (and potentially their whole home LAN) when\naway from home. When running in this mode the server end of the VPN\nlink will either be running on the user's router (if it supports\nsuch a feature) or will be hosted on the Unraid server."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you\nwant applications running on Unraid to access the internet. This\ncould be to access generic internet content or to access another\nserver located remotely to the Unraid server. If in is generic\naccess to the internet then it is highly likely that the server end\nof such connection will be via a commercial VPN provider. When\nrunning in this mode Unraid will be acting as the client end of any\nVPN link.")),(0,i.kt)("p",null,"There are a wide variety of VPN solutions available both free and\ncommercial."),(0,i.kt)("h3",{id:"router"},"Router"),(0,i.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically\nbased on OpenVPN)."),(0,i.kt)("p",null,"Using your router to provide the VPN support has the great advantage of\nnot needing any other component on your home LAN to be operational for\nthe VPN to function. Once setup it should allow you to access all\ndevices on your home LAN in a similar manner to when you are directly\nconnected to the LAN."),(0,i.kt)("h3",{id:"openvpn"},"OpenVPN"),(0,i.kt)("p",null,"This has been the way that has historically been advocated to allow\nconnections to be made between an Unraid server and the internet."),(0,i.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN\nthen you can search Community Applications for a plugin or docker\ncontainer that meets your requirements. You may also find the\n",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube\nvideo")," of use in setting it\nup."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is expected that with the introduction of WireGuard support in\nUnraid 6.8 that WireGuard will become the favored way of setting up a\nVPN connection to an Unraid server"),"."),(0,i.kt)("h3",{id:"wireguard"},"WireGuard"),(0,i.kt)("h4",{id:"overview"},"Overview"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2602).Z,width:"128",height:"128"})),(0,i.kt)("p",null,"Unraid 6.8 introduces built-in support for WireGuard VPN connections. The\nintention is to make it as easy as possible for Unraid users to set up\nVPN connections to/from their Unraid servers."),(0,i.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to\nadd 3rd party software to achieve a VPN connection."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid\nboot process."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,i.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be\nbetter than OpenVPN.")),(0,i.kt)("p",null,"More information about WireGuard can be found on the ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard web\nsite"),". It should be noted that WireGuard is\nstill labeled as ''experimental'' by its developers but many users are\nalready finding that it appears to be robust enough for real-world use.\nA number of the commercial VPN services are working on adding WireGuard\nsupport so they must deem it to be mature enough for this to make sense\nto them."),(0,i.kt)("p",null,"The initial Unraid implementation includes adding the WireGuard kernel\nmodules to the standard Unraid distribution and starting the WireGuard\nservices as part of the Unraid boot process, but does not yet have the\nmanagement of WireGuard built-in. At the moment the GUI part is offered\nas a separate plugin, but it is intended that it will be integrated into\nUnraid in the future. This approach allows for quick updates and\nenhancements without dependency on Unraid version releases. The Unraid\nWireGuard GUI plugin can be installed via Community Applications, and\nwhen it is installed you will find that an entry called ",(0,i.kt)("strong",{parentName:"p"},"VPN Manager"),"\nis added to the GUI under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Network Services")),(0,i.kt)("p",null,"Note that the Unraid WireGuard plugin is still evolving so in the event\nof a discrepancy between what is described here and the following forum\nthreads then it is likely that the thread is correct and this wiki needs\nupdating to bring it inline. These threads are also the appropriate\nplace to ask questions regarding Unraid's WireGuard implementation."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the\nconnection types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to server"),": Use your phone or computer to remotely\naccess your Unraid server, including:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid administration via the webgui"),(0,i.kt)("li",{parentName:"ul"},"Access dockers, VMs, and network shares as though you were\nphysically connected to the network"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to LAN"),': Builds on "Remote access to server",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server to server access"),": Allows two Unraid servers to connect to\neach other.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN to LAN access"),': Builds on "Server to server access",\nallowing two entire networks to communicate. May require additional\nsettings, TBD.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server hub & spoke access"),': Builds on "Remote access to\nserver", except that all of the VPN clients can connect to each\nother as well. Note that all traffic passes through the server.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VPN tunneled access"),": Route traffic for specific Dockers and VMs\nthrough a commercial WireGuard VPN provider (see this guide)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote tunneled access"),": Securely access the Internet from\nuntrusted networks by routing all of your traffic through the VPN\nand out Unraid's Internet connection"))),(0,i.kt)("p",null,"The following diagram attempts to show these different connection types\nin a graphical format"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1998).Z,width:"1000",height:"655"})),(0,i.kt)("h4",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,i.kt)("p",null,"This section will walk through how to setup WireGuard so that your\ntrusted devices can VPN into your home network to access Unraid and the\nother systems on your network."),(0,i.kt)("h5",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You must be running Unraid 6.8 with the Dynamix WireGuard plugin\ninstalled via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab (Community Applications).")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Be aware that WireGuard is technically classified as experimental.\nIt has not gone through a full security audit yet and has not\nreached 1.0 status. But it is the first open-source VPN solution\nthat is extremely simple to install, fast, and designed from the\nground up to be secure.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'Understand that giving someone VPN access to your LAN is just like\ngiving them physical access to your LAN, except they have it 24x7\nwhen you aren\'t around to supervise. Only give access to people and\ndevices that you trust, and make certain that the configuration\ndetails (particularly the private keys) are not passed around\ninsecurely. Regardless of the "connection type" you choose, assume\nthat anyone who gets access to this configuration information will\nbe able to get full access to your network.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'This guide works great for simple networks. But if you have Dockers\nwith custom IPs or VMs with strict networking requirements, please\nsee the "Complex Networks" section below.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unraid will automatically configure your WireGuard clients to\nconnect to Unraid using your current public IP address, which will\nwork until that IP address changes. To future-proof the setup, you\ncan use Dynamic DNS instead. There are many ways to do this,\nprobably the easiest is described in this ",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from\nSpaceInvaderOne"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If your router has UPnP enabled, Unraid will be able to\nautomatically forward the port for you. If not, you will need to\nknow how to configure your router to forward a port.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You will need to install WireGuard on a client system. It is\navailable for many operating systems as mentioned at ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/install/"},"WireGuard\nclients"),". Android or iOS make\ngood first client systems because you can get all the details via QR\ncode."))),(0,i.kt)("h5",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"First, go to Settings -",">"," Network Settings -",">",' Interface eth0. If\n"Enable bridging" is "Yes", then WireGuard will work as\ndescribed below. If bridging is disabled, then none of the "Peer\ntype of connections" that involve the local LAN will work properly.\nAs a general rule, bridging should be enabled in Unraid.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7079).Z,width:"739",height:"55"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid,\ngo to Settings -",">",' Management Access and confirm "Use UPnP" is set\nto Yes'),(0,i.kt)("li",{parentName:"ul"},"On Unraid go to Settings -",">"," VPN Manager")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5372).Z,width:"969",height:"314"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give the VPN Tunnel a name, such as "MyHome VPN"'),(0,i.kt)("li",{parentName:"ul"},'Press "Generate Keypair". This will generate a set of public and\nprivate keys for Unraid. Take care not to inadvertently share the\nprivate key with anyone (such as in a screenshot like this)'),(0,i.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current\npublic IP address. If you chose to setup DDNS earlier, change the IP\naddress to the DDNS address."),(0,i.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to\nchange this unless you already have WireGuard running elsewhere on\nyour network."),(0,i.kt)("li",{parentName:"ul"},"Hit Apply"),(0,i.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will\nautomatically setup port forwarding for you:")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7098).Z,width:"1000",height:"61"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port\nforwarding',".",'.." you will need to login to your router and setup the\nport forward as directed by the note:')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(4546).Z,width:"1000",height:"65"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports\nshould be set to the value Unraid provides. If your router\ninterface asks you to put in a range, use the same port for both\nthe starting and ending values. Be sure to specify that it is a\nUDP port and not a TCP port."),(0,i.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of\nyour Unraid system shown in the note."),(0,i.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router,\ni.e. "how to port forward Asus RT-AC68U"'))),(0,i.kt)("li",{parentName:"ul"},'Note that after hitting Apply, the public and private keys are\nremoved from view. If you ever need to access them, click the\n"key" icon on the right-hand side.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(6423).Z,width:"128",height:"128"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the\n"down chevron" on the right-hand side. They are beyond the scope\nof this guide, but you can turn on help to see what they do.'),(0,i.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to\nActive to start WireGuard. You can optionally set the tunnel to\nAutostart when Unraid boots.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(711).Z,width:"562",height:"44"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There have been cases where this step has been omitted and users\nend up wondering why the WireGuard VPN link is not working!")),(0,i.kt)("h5",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click "Add Peer"')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(8169).Z,width:"866",height:"284"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give it a name, such as "MyAndroid"'),(0,i.kt)("li",{parentName:"ul"},'For the initial connection type, choose "Remote access to LAN".\nThis will give your device access to Unraid and other items on your\nnetwork.'),(0,i.kt)("li",{parentName:"ul"},'Click "Generate Keypair" to generate public and private keys for\nthe client. The private key will be given to the client/peer, but\ntake care not to share it with anyone else (such as in a screenshot\nlike this)'),(0,i.kt)("li",{parentName:"ul"},'For an additional layer of security, click "Generate Key" to\ngenerate a preshared key. Again, this should only be shared with\nthis client/peer.'),(0,i.kt)("li",{parentName:"ul"},"Click Apply."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Note:")," Technically, the peer should generate these keys and not\ngive the private key to Unraid. You are welcome to do that, but it\nis less convenient as the config files Unraid generates will not be\ncomplete and you will have to finish configuring the client\nmanually.")),(0,i.kt)("h6",{id:"caution"},"Caution"),(0,i.kt)("p",null,'It can be a little risky to add a new client ("peer") to WireGuard if\nyou are already connected remotely using WireGuard as adding a new peer\n',(0,i.kt)("em",{parentName:"p"},"sometimes")," toggles the WireGuard tunnel off which will render you\nunable to reconnect. This is because a configuration change is made\neffective by inactivating the tunnel with the current (old)\nconfiguration and next activating it with the updated (new)\nconfiguration. If there is any sort of configuration conflict at this\npoint the tunnel stays inactive, and you can no longer connect to the\nUnraid server"),(0,i.kt)("h5",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click the "eye" icon to view the peer configuration. If the button\nis not clickable, you need to apply or reset your unsaved changes\nfirst.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(3939).Z,width:"912",height:"108"})),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1967).Z,width:"580",height:"694"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR\ncode" option in the mobile app and take a picture of the QR code.\nGive it a name and make the connection. The VPN tunnel starts almost\ninstantaneously, once it is up you can open a browser and connect to\nUnraid or another system on your network. Be careful not to share\nscreenshots of the QR code with anyone, or they will be able to use\nit to access your VPN.'),(0,i.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and\ntransfer it to the remote computer via trusted email or dropbox,\netc. Then unzip it and load the configuration into the client.\nProtect this file, anyone who has access to it will be able to\naccess your VPN.")),(0,i.kt)("h5",{id:"about-dns"},"About DNS"),(0,i.kt)("p",null,'The Dynamix WireGuard plugin includes a "Peer DNS Server" option'),(0,i.kt)("p",null,'If you are having trouble with DNS resolution on the WireGuard client,\nreturn to the VPN Manager page in Unraid and switch from Basic to\nAdvanced mode, add the IP address of your desired DNS server into the\n"Peer DNS Server" field, then install the updated config file on the\nclient. You may want to use the IP address of the router on the LAN you\nare connecting to, or you could use a globally available IP like 8.8.8.8'),(0,i.kt)("p",null,'This is required for "Remote tunneled access" mode if the client\'s\noriginal DNS server is no longer accessible after all traffic is routed\nthrough the tunnel.'),(0,i.kt)("p",null,"If you are using any of the split tunneling modes, adding a DNS server\nmay provide name resolution on the remote network, although you will\nlose name resolution on the client's local network in the process. The\nsimplest solution is to add a hosts file on the client that provides\nname resolution for both networks."),(0,i.kt)("h5",{id:"complex-networks"},"Complex Networks"),(0,i.kt)("p",null,'The instructions above should work out of the box for simple networks.\nWith "Use NAT" defaulted to Yes, all network traffic on Unraid uses\nUnraid\'s IP, and that works fine if you have a simple setup.'),(0,i.kt)("p",null,"However, if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, things may not work right (I know, kind of\nvague, but feel free to read the two WireGuard threads for examples)"),(0,i.kt)("p",null,"A partial solution is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'In the WireGuard config, set "Use NAT" to No'),(0,i.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the\nWireGuard "Local tunnel network pool" through the IP address of\nyour Unraid system. For instance, for the default pool of\n10.253.0.0/24 you should add this static route:',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)"),(0,i.kt)("li",{parentName:"ul"},"Gateway: ",(0,i.kt)("inlineCode",{parentName:"li"},"<IP address of your Unraid system>")))),(0,i.kt)("li",{parentName:"ul"},"Note that this covers the entire class B 10.253.x.x network, so you\ncan add other WireGuard tunnels without having to modify your router\nsetup again.")),(0,i.kt)("p",null,"With these changes, your network should work normally. However, your\nWireGuard clients still may not be able to access Dockers on custom IPs\nor VMs. If you find a solution to this, please ask questions in the\nforum threads mentioned earlier."),(0,i.kt)("h5",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,i.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be\ninvisible! There aren't really any error messages if things aren't\nworking, it either works or it doesn't. It cannot be detected by a port\nscanner."),(0,i.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking\nyour work:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Confirm that the tunnel is active (!)"),(0,i.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address,\nand is assigned to your "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router\nto Unraid, and assigned that same port to the "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your\nclients, you will need to set the clients up again so they have the\nlatest config."),(0,i.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config",\notherwise your QR codes/files will not have the latest data.')),(0,i.kt)("p",null,"A few other ideas:"),(0,i.kt)("p",null,"-\xa0For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not\nwifi).\xa0This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR\ncode\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working\nfrom\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Disable any energy-saving features on the client, phones in particular\nmay not use VPNs properly when in low power mode. Also, you may need to\ndisable any "Data Saver" features on the phone so that VPN is not\nthrottled. See this post.\n-\xa0If\xa0your\xa0"Peer\xa0type\xa0of\xa0connection"\xa0includes\xa0one\xa0of\xa0the\xa0LAN\xa0options\xa0but\nyou\xa0can\xa0only\xa0access\xa0Unraid,\xa0go\xa0to\xa0Settings\xa0->\xa0Network\xa0Settings\xa0and\xa0see\nwhether\xa0"Enable\xa0bridging"\xa0is\xa0yes.\xa0\xa0If\xa0bridging\xa0is\xa0disabled,\xa0you\xa0will\xa0not\nbe\xa0able\xa0to\xa0access\xa0your\xa0LAN\xa0over\xa0WireGuard.'),(0,i.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be\nsure that the networks on both sides use different subnets. You\ncan't connect two networks that both use 192.168.1.0/24, for\ninstance."),(0,i.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind\nthat the "broken" remote locations may have a firewall that blocks\nUDP traffic. Hopefully, WireGuard will support TCP in the future,\nbut currently, there is no workaround for this.'),(0,i.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm\nthat the "Local tunnel network pool" is not already in use on your\nnetwork or on one of the networks you are connecting to. If there is\na conflict you will need to change it to a different private network\n(10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|","\n192.168.0.0 to 192.168.255.255)"),(0,i.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webgui for some reason and you need\nto prevent a WireGuard tunnel from automatically starting, delete\nthis file from your flash drive and reboot:")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"/boot/config/wireguard/autostart")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note that if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, you will likely have issues. Please see the\n"Complex Networks" section above.')),(0,i.kt)("h4",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,i.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection\nfrom an Unraid server to a commercial VPN provider. If you are trying to\naccess your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ndiscussing making an outbound VPN connection using WireGuard"),(0,i.kt)("h5",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,i.kt)("p",null,"Several commercial VPN providers now support WireGuard. A few are listed\nbelow but this is not intended to be an exhaustive list. No endorsement\nis implied, you need to research and determine which one meets your\nneeds."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tunsafe.com/vpn"},"TunSafe")," (currently free)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://torguard.net/blog/what-is-wireguard-vpn/"},"TorGuard VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://nordvpn.com/blog/nordlynx-protocol-wireguard/"},"NordVPN")," Not\nsure this works without using the NordLynx client so may not be\ncompatible with the Unraid implementation.")),(0,i.kt)("p",null,"Note that with the current state of WireGuard, VPN providers cannot\nguarantee the same amount of privacy as they can with OpenVPN. See\n",(0,i.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for more detail.\nTypically the objections are not around security, but around the fact\nthat it is harder for them to guarantee that they cannot track you."),(0,i.kt)("h5",{id:"configuring-vpn-tunneled-access"},"Configuring VPN tunneled access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,i.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config"\nbutton and select the file on your hard drive. This will create a\nnew tunnel specific to this provider.'),(0,i.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name.\nClick Apply."),(0,i.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for\nthis type of connection"),(0,i.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,i.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN\ntunnel.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"In the future it may be possible to restrict it so that only\nspecific Dockers use the VPN tunnel. Until then, you may need to\ndisable the tunnel in order to check for plugin updates or\nperform other Unraid administrative tasks."),(0,i.kt)("li",{parentName:"ul"},"Note that currently, Unraid will ignore any DNS server that is\nspecified in the downloaded config file. Unraid's DNS should be\nset to something that will work whether the tunnel is up or\ndown, such as 8.8.8.8 and 8.8.4.4")))),(0,i.kt)("h5",{id:"testing-the-tunnel"},"Testing the tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using Community Applications, install a browser such as the\njlesage/Firefox Docker container"),(0,i.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,i.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,i.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should\nsee that your IP address is in the country you selected when you\nsigned up with the provider")),(0,i.kt)("h4",{id:"support"},"Support"),(0,i.kt)("p",null,"WireGuard is a new feature in Unraid so the forum is the place to\nask questions and get the most up-to-date information on using\nWireGuard with Unraid. The threads most likely to be of interest are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},7079:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/assets/js/aed38285.fb0ff2ca.js b/assets/js/aed38285.fb0ff2ca.js new file mode 100644 index 000000000..4c5e1c7b6 --- /dev/null +++ b/assets/js/aed38285.fb0ff2ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1932],{4137:(e,r,a)=>{a.d(r,{Zo:()=>d,kt:()=>m});var t=a(7294);function n(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}function s(e,r){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),a.push.apply(a,t)}return a}function o(e){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?s(Object(a),!0).forEach((function(r){n(e,r,a[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(a,r))}))}return e}function i(e,r){if(null==e)return{};var a,t,n=function(e,r){if(null==e)return{};var a,t,n={},s=Object.keys(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||(n[a]=e[a]);return n}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=t.createContext({}),u=function(e){var r=t.useContext(l),a=r;return e&&(a="function"==typeof e?e(r):o(o({},r),e)),a},d=function(e){var r=u(e.components);return t.createElement(l.Provider,{value:r},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},p=t.forwardRef((function(e,r){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),h=u(a),p=n,m=h["".concat(l,".").concat(p)]||h[p]||c[p]||s;return a?t.createElement(m,o(o({ref:r},d),{},{components:a})):t.createElement(m,o({ref:r},d))}));function m(e,r){var a=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=p;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<s;u++)o[u]=a[u];return t.createElement.apply(null,o)}return t.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3976:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var t=a(7462),n=(a(7294),a(4137));const s={sidebar_position:0},o="Shares",i={unversionedId:"unraid-os/manual/shares/shares",id:"unraid-os/manual/shares/shares",title:"Shares",description:"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.",source:"@site/docs/unraid-os/manual/shares/shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/",permalink:"/unraid-os/manual/shares/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/category/manual"},next:{title:"User shares",permalink:"/unraid-os/manual/shares/user-shares"}},l={},u=[],d={toc:u},h="wrapper";function c(e){let{components:r,...a}=e;return(0,n.kt)(h,(0,t.Z)({},d,a,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"shares"},"Shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.")),(0,n.kt)("p",null,"One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives."),(0,n.kt)("p",null,"There are two types of shares in Unraid:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares/user-shares"},"User Shares")," that rely on Linux FUSE and represent folders in the overall file system."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares/disk-shares"},"Disk Shares")," that rely on the drives' ",(0,n.kt)("a",{parentName:"li",href:"https://docs.unraid.net/unraid-os/manual/storage-management#creating-a-file-system-format"},"file system")," to share the disk as a whole.")),(0,n.kt)("p",null,"It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder."),(0,n.kt)("p",null,"When you first initialize your array, Unraid automatically creates a ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/shares/user-shares#default-shares"},"handful of user shares"),". These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data."),(0,n.kt)("p",null,"You manage shares from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab in Unraid. You enable or disable shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),", with user shares being enabled by default."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b13723e0.d8423627.js b/assets/js/b13723e0.683bf322.js similarity index 57% rename from assets/js/b13723e0.d8423627.js rename to assets/js/b13723e0.683bf322.js index ed8e9cc22..ceb48833e 100644 --- a/assets/js/b13723e0.d8423627.js +++ b/assets/js/b13723e0.683bf322.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/category/getting-started"},next:{title:"Manual Install Method",permalink:"/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/security"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/category/getting-started"},next:{title:"Manual Install Method",permalink:"/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"../security.md"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file diff --git a/assets/js/ba2ffba3.8ff5a899.js b/assets/js/ba2ffba3.8ff5a899.js deleted file mode 100644 index 0c9d75e47..000000000 --- a/assets/js/ba2ffba3.8ff5a899.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/connect/help"},next:{title:"Legacy Documentation",permalink:"/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/security#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file diff --git a/assets/js/ba2ffba3.98361f12.js b/assets/js/ba2ffba3.98361f12.js new file mode 100644 index 000000000..918f92e39 --- /dev/null +++ b/assets/js/ba2ffba3.98361f12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/connect/help"},next:{title:"Legacy Documentation",permalink:"/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file diff --git a/assets/js/e8c37b9f.e823dded.js b/assets/js/e8c37b9f.99708cf7.js similarity index 69% rename from assets/js/e8c37b9f.e823dded.js rename to assets/js/e8c37b9f.99708cf7.js index 2f7477579..c1a93c25d 100644 --- a/assets/js/e8c37b9f.e823dded.js +++ b/assets/js/e8c37b9f.99708cf7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7436],{4137:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},1779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(4137));const a={},i="Redeem License Activation Code",c={unversionedId:"unraid-os/faq/redeem-license-activation-code",id:"unraid-os/faq/redeem-license-activation-code",title:"Redeem License Activation Code",description:"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.",source:"@site/docs/unraid-os/faq/redeem-license-activation-code.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/redeem-license-activation-code",permalink:"/unraid-os/faq/redeem-license-activation-code",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"OS",permalink:"/unraid-os/faq/os-faq"},next:{title:"Unraid Account",permalink:"/unraid-os/faq/unraid-account"}},u={},l=[],s={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"redeem-license-activation-code"},"Redeem License Activation Code"),(0,o.kt)("p",null,"First, buy an activation code via ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website"),". Your unique activation code will be on your purchase receipt."),(0,o.kt)("p",null,"Next, follow our ",(0,o.kt)("a",{parentName:"p",href:"../manual/getting-started.md"},"Getting Started")," guide to set up an Unraid server."),(0,o.kt)("p",null,"Once your server is up and running:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Login to your Unraid server's webgui. (",(0,o.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac by default)"),(0,o.kt)("li",{parentName:"ol"},"For Unraid 6.10 and newer, Sign in to your Unraid.net account (or\n",(0,o.kt)("a",{parentName:"li",href:"https://account.unraid.net/"},"create one"),') from the\ntop-right of the webgui and select "Redeem Activation Code" and enter the activation code to\nactivate your license. For Unraid 6.9 and older, navigate to the\nTools -',">",' Registration page in the webGui and click "Purchase Key."'),(0,o.kt)("li",{parentName:"ol"},'Select the corresponding license you purchased via activation code\nand enter the activation code in the "Your Activation Code" box to\ncomplete the activation process. Your registration key will be\nemailed to you with instructions for installation! ',(0,o.kt)("em",{parentName:"li"},"Note: Activation\nCodes are one-time use for generating your Unraid license keyfile."))),(0,o.kt)("p",null,"If you have any issues or questions with the above, there is also a walk\nthrough video: ",(0,o.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional\nVideo")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7436],{4137:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},1779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(4137));const a={},i="Redeem License Activation Code",c={unversionedId:"unraid-os/faq/redeem-license-activation-code",id:"unraid-os/faq/redeem-license-activation-code",title:"Redeem License Activation Code",description:"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.",source:"@site/docs/unraid-os/faq/redeem-license-activation-code.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/redeem-license-activation-code",permalink:"/unraid-os/faq/redeem-license-activation-code",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"OS",permalink:"/unraid-os/faq/os-faq"},next:{title:"Unraid Account",permalink:"/unraid-os/faq/unraid-account"}},u={},l=[],s={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"redeem-license-activation-code"},"Redeem License Activation Code"),(0,o.kt)("p",null,"First, buy an activation code via ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website"),". Your unique activation code will be on your purchase receipt."),(0,o.kt)("p",null,"Next, follow our ",(0,o.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started/"},"Getting Started")," guide to set up an Unraid server."),(0,o.kt)("p",null,"Once your server is up and running:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Login to your Unraid server's webgui. (",(0,o.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac by default)"),(0,o.kt)("li",{parentName:"ol"},"For Unraid 6.10 and newer, Sign in to your Unraid.net account (or\n",(0,o.kt)("a",{parentName:"li",href:"https://account.unraid.net/"},"create one"),') from the\ntop-right of the webgui and select "Redeem Activation Code" and enter the activation code to\nactivate your license. For Unraid 6.9 and older, navigate to the\nTools -',">",' Registration page in the webGui and click "Purchase Key."'),(0,o.kt)("li",{parentName:"ol"},'Select the corresponding license you purchased via activation code\nand enter the activation code in the "Your Activation Code" box to\ncomplete the activation process. Your registration key will be\nemailed to you with instructions for installation! ',(0,o.kt)("em",{parentName:"li"},"Note: Activation\nCodes are one-time use for generating your Unraid license keyfile."))),(0,o.kt)("p",null,"If you have any issues or questions with the above, there is also a walk\nthrough video: ",(0,o.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional\nVideo")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f0844d9f.021b24b2.js b/assets/js/f0844d9f.021b24b2.js new file mode 100644 index 000000000..e92a76097 --- /dev/null +++ b/assets/js/f0844d9f.021b24b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=d(a),p=i,m=c["".concat(l,".").concat(p)]||c[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Delete a share",permalink:"/unraid-os/manual/shares/delete-a-share"},next:{title:"Storage Management",permalink:"/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],h={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/assets/js/f0844d9f.288ed01a.js b/assets/js/f0844d9f.288ed01a.js deleted file mode 100644 index 12ba06f4a..000000000 --- a/assets/js/f0844d9f.288ed01a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=d(a),p=i,m=h["".concat(l,".").concat(p)]||h[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},c),{},{components:a})):n.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/category/manual"},next:{title:"Storage Management",permalink:"/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],c={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/assets/js/f7b0b541.0b5384b3.js b/assets/js/f7b0b541.0b5384b3.js new file mode 100644 index 000000000..549b535e4 --- /dev/null +++ b/assets/js/f7b0b541.0b5384b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2454],{4137:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(7294);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,s=function(e,t){if(null==e)return{};var r,a,s={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,s=e.mdxType,n=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),d=s,m=p["".concat(l,".").concat(d)]||p[d]||h[d]||n;return r?a.createElement(m,o(o({ref:t},u),{},{components:r})):a.createElement(m,o({ref:t},u))}));function m(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=r.length,o=new Array(n);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:s,o[1]=i;for(var c=2;c<n;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7088:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var a=r(7462),s=(r(7294),r(4137));const n={sidebar_position:4},o="Network access",i={unversionedId:"unraid-os/manual/shares/network-access",id:"unraid-os/manual/shares/network-access",title:"Network access",description:"Communication protocols",source:"@site/docs/unraid-os/manual/shares/network-access.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/network-access",permalink:"/unraid-os/manual/shares/network-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/network-access.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Disk shares",permalink:"/unraid-os/manual/shares/disk-shares"},next:{title:"Create a new share",permalink:"/unraid-os/manual/shares/create-a-share"}},l={},c=[{value:"Communication protocols",id:"communication-protocols",level:2},{value:"Protocol selection",id:"protocol-selection",level:2},{value:"Access permissions at share level",id:"access-permissions-at-share-level",level:2},{value:"Share security",id:"share-security",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...r}=e;return(0,s.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"network-access"},"Network access"),(0,s.kt)("h2",{id:"communication-protocols"},"Communication protocols"),(0,s.kt)("p",null,"For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"SMB"),", or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"NFS"),", or Network File System, is a widely-used protocol on Unix-compatible systems."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"FTP"),", or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.")),(0,s.kt)("admonition",{type:"important"},(0,s.kt)("p",{parentName:"admonition"},"As of Unraid 6.9, ",(0,s.kt)("strong",{parentName:"p"},"AFP")," support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in ",(0,s.kt)("strong",{parentName:"p"},(0,s.kt)("em",{parentName:"strong"},"Settings > SMB"))," set the ",(0,s.kt)("strong",{parentName:"p"},"Enhanced macOS interoperability")," parameter to ",(0,s.kt)("em",{parentName:"p"},"Yes"),".")),(0,s.kt)("h2",{id:"protocol-selection"},"Protocol selection"),(0,s.kt)("p",null,"Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases."),(0,s.kt)("p",null,"For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer."),(0,s.kt)("h2",{id:"access-permissions-at-share-level"},"Access permissions at share level"),(0,s.kt)("p",null,"Each protocol can be configured at the share level. On the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled ",(0,s.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes")," - The share will be visible across the network."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes (Hidden)")," - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"No")," - This will disable network access through that protocol, for that share.")),(0,s.kt)("h2",{id:"share-security"},"Share security"),(0,s.kt)("p",null,"Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available."),(0,s.kt)("p",null,"For example, you may configure a ",(0,s.kt)("inlineCode",{parentName:"p"},"movies")," share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials."),(0,s.kt)("p",null,"When you select an existing share on the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols ",(0,s.kt)("a",{parentName:"p",href:"#access-permissions-at-share-level"},"you have enabled"),"."),(0,s.kt)("p",null,"The ",(0,s.kt)("strong",{parentName:"p"},"Security")," setting has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Public")," - The share is unsecured and all users have both read and write access to the contents of the share."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Secure")," - The share is secured and all users, including guests, have read access. You can select which of your users have write access."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Private")," - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.")),(0,s.kt)("admonition",{title:"Windows 'Gotcha'",type:"caution"},(0,s.kt)("p",{parentName:"admonition"},"There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails."),(0,s.kt)("p",{parentName:"admonition"},"If you have any shares on the server set to ",(0,s.kt)("em",{parentName:"p"},"Private")," or ",(0,s.kt)("em",{parentName:"p"},"Secure")," access, it is important that you connect to that share first, before any shares set for ",(0,s.kt)("em",{parentName:"p"},"Public")," access."),(0,s.kt)("p",{parentName:"admonition"},"As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fee3ac30.c445f0d9.js b/assets/js/fee3ac30.c445f0d9.js new file mode 100644 index 000000000..24f6ee3a3 --- /dev/null +++ b/assets/js/fee3ac30.c445f0d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,h=p["".concat(c,".").concat(y)]||p[y]||d[y]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var l=2;l<i;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},8330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(4137));const i={sidebar_position:3},o="Data Encryption",s={unversionedId:"unraid-os/manual/security/data-encryption",id:"unraid-os/manual/security/data-encryption",title:"Data Encryption",description:"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.",source:"@site/docs/unraid-os/manual/security/data-encryption.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/data-encryption",permalink:"/unraid-os/manual/security/data-encryption",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/data-encryption.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Securing webGUI connections (SSL)",permalink:"/unraid-os/manual/security/secure-webgui-ssl"},next:{title:"Flash Drive",permalink:"/unraid-os/manual/security/flash-drive"}},c={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"data-encryption"},"Data Encryption"),(0,a.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup"},"Linux Unified Key System"),") encryption modules."),(0,a.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly."),(0,a.kt)("p",null,"The home page for LUKS can be found ",(0,a.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,a.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive."),(0,a.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives."),(0,a.kt)("hr",null),(0,a.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the drive)."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Go to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab."),(0,a.kt)("li",{parentName:"ol"},"Stop the array."),(0,a.kt)("li",{parentName:"ol"},"Select the drive."),(0,a.kt)("li",{parentName:"ol"},"In ",(0,a.kt)("strong",{parentName:"li"},"File system type")," change the file system to the encrypted type that you want."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Apply")," to commit the change."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Done")," to return to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab. The drive will now show as unmountable and the option to format unmountable drives will be present."),(0,a.kt)("li",{parentName:"ol"},"Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.")),(0,a.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.9f5bb88f.js b/assets/js/main.9f5bb88f.js new file mode 100644 index 000000000..66ed0eeef --- /dev/null +++ b/assets/js/main.9f5bb88f.js @@ -0,0 +1,2 @@ +/*! For license information please see main.9f5bb88f.js.LICENSE.txt */ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0a1bdeaa":[()=>n.e(967).then(n.bind(n,3940)),"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",3940],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"0d582783":[()=>n.e(2410).then(n.t.bind(n,5752,19)),"~docs/default/category-unraidsidebar-category-getting-started-a72.json",5752],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"10869db1":[()=>n.e(3563).then(n.bind(n,2127)),"@site/docs/unraid-os/manual/security/flash-drive.md",2127],"14087e5e":[()=>n.e(2263).then(n.t.bind(n,183,19)),"~docs/default/category-unraidsidebar-category-faq-290.json",183],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"1c36a847":[()=>n.e(5289).then(n.bind(n,7732)),"@site/docs/unraid-os/manual/security/vpn.md",7732],"216240fb":[()=>n.e(3444).then(n.t.bind(n,171,19)),"~docs/default/category-unraidsidebar-category-zfs-f45.json",171],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"277cf690":[()=>n.e(9821).then(n.bind(n,3593)),"@site/docs/unraid-os/manual/security/security.md",3593],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"313b9001":[()=>n.e(559).then(n.bind(n,3283)),"@site/docs/unraid-os/manual/security/good-practices.md",3283],"38a408e2":[()=>n.e(6594).then(n.t.bind(n,9586,19)),"~docs/default/category-unraidsidebar-category-tutorial-extras-da0.json",9586],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"5f60a020":[()=>n.e(4863).then(n.bind(n,6260)),"@site/docs/unraid-os/manual/shares/disk-shares.md",6260],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6ab841ae":[()=>n.e(3009).then(n.t.bind(n,6466,19)),"~docs/default/category-unraidsidebar-category-legacy-documentation-79f.json",6466],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"71791e0b":[()=>n.e(2338).then(n.t.bind(n,8773,19)),"~docs/default/category-unraidsidebar-category-release-notes-e00.json",8773],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"81e75708":[()=>n.e(3229).then(n.t.bind(n,7963,19)),"~docs/default/category-unraidsidebar-category-tutorial-basics-86a.json",7963],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"8944547a":[()=>Promise.all([n.e(532),n.e(5450)]).then(n.bind(n,3135)),"@site/docs/unraid-os/manual/shares/user-shares.md",3135],"8a89048a":[()=>n.e(1770).then(n.bind(n,8829)),"@site/docs/unraid-os/manual/shares/create-a-share.md",8829],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"989b789d":[()=>n.e(9846).then(n.t.bind(n,7591,19)),"~docs/default/category-unraidsidebar-category-manual-456.json",7591],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9aea375b":[()=>n.e(3838).then(n.t.bind(n,8952,19)),"~docs/default/category-unraidsidebar-category-contribute-3d7.json",8952],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],"9d23aec8":[()=>n.e(1754).then(n.bind(n,6419)),"@site/docs/unraid-os/manual/shares/delete-a-share.md",6419],"9fa2d074":[()=>n.e(7645).then(n.t.bind(n,7726,19)),"~docs/default/category-unraidsidebar-category-guides-a9f.json",7726],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],a2cf01cc:[()=>n.e(6014).then(n.t.bind(n,5212,19)),"~docs/default/category-unraidsidebar-category-unraid-os-e8f.json",5212],a3ef1cf6:[()=>n.e(1868).then(n.t.bind(n,6318,19)),"~docs/default/category-unraidsidebar-category-unraid-connect-93f.json",6318],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],aed38285:[()=>n.e(1932).then(n.bind(n,3976)),"@site/docs/unraid-os/manual/shares/shares.md",3976],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],e8c37b9f:[()=>n.e(7436).then(n.bind(n,1779)),"@site/docs/unraid-os/faq/redeem-license-activation-code.md",1779],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f7b0b541:[()=>n.e(2454).then(n.bind(n,7088)),"@site/docs/unraid-os/manual/shares/network-access.md",7088],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219],fee3ac30:[()=>n.e(7328).then(n.bind(n,8330)),"@site/docs/unraid-os/manual/security/data-encryption.md",8330]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/search/",component:f("/search/","db4"),exact:!0},{path:"/",component:f("/","6a1"),routes:[{path:"/",component:f("/","3fb"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/contribute/",component:f("/category/contribute/","92d"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/faq/",component:f("/category/faq/","7e2"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/getting-started/",component:f("/category/getting-started/","d9e"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/guides/",component:f("/category/guides/","d00"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/legacy-documentation/",component:f("/category/legacy-documentation/","012"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/manual/",component:f("/category/manual/","93f"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/release-notes/",component:f("/category/release-notes/","eed"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/tutorial---basics/",component:f("/category/tutorial---basics/","734"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/tutorial---extras/",component:f("/category/tutorial---extras/","0c6"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/unraid-connect/",component:f("/category/unraid-connect/","f8e"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/unraid-os/",component:f("/category/unraid-os/","268"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/zfs/",component:f("/category/zfs/","ebc"),exact:!0,sidebar:"unraidSidebar"},{path:"/connect/about/",component:f("/connect/about/","060"),exact:!0,sidebar:"unraidSidebar"},{path:"/connect/help/",component:f("/connect/help/","741"),exact:!0,sidebar:"unraidSidebar"},{path:"/connect/remote-access/",component:f("/connect/remote-access/","eb4"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/intro/",component:f("/contribute-to-docs/intro/","7ef"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/congratulations/",component:f("/contribute-to-docs/tutorial-basics/congratulations/","0da"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:f("/contribute-to-docs/tutorial-basics/create-a-blog-post/","cab"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/create-a-document/",component:f("/contribute-to-docs/tutorial-basics/create-a-document/","461"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/create-a-page/",component:f("/contribute-to-docs/tutorial-basics/create-a-page/","415"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/markdown-features/",component:f("/contribute-to-docs/tutorial-basics/markdown-features/","053"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:f("/contribute-to-docs/tutorial-extras/manage-docs-versions/","72f"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-extras/translate-your-site/",component:f("/contribute-to-docs/tutorial-extras/translate-your-site/","200"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/Articles/dual-boot-unraid-and-windows/",component:f("/legacy/Articles/dual-boot-unraid-and-windows/","69c"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:f("/legacy/Articles/expanding-windows-vm-vdisk-partitions/","84f"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/Articles/upgrading-to-unraid-6/",component:f("/legacy/Articles/upgrading-to-unraid-6/","376"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/cache-disk/",component:f("/legacy/FAQ/cache-disk/","739"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/check-disk-filesystems/",component:f("/legacy/FAQ/check-disk-filesystems/","087"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/check-harddrive-speed/",component:f("/legacy/FAQ/check-harddrive-speed/","448"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/console/",component:f("/legacy/FAQ/console/","7e8"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/parity-swap-procedure/",component:f("/legacy/FAQ/parity-swap-procedure/","e1a"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/Parity/",component:f("/legacy/FAQ/Parity/","168"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/replacing-a-data-drive/",component:f("/legacy/FAQ/replacing-a-data-drive/","e1c"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/replacing-multiple-data-drives/",component:f("/legacy/FAQ/replacing-multiple-data-drives/","117"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:f("/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","824"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:f("/legacy/FAQ/setup-sleep-and-wake-on-lan/","39b"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/shrink-array/",component:f("/legacy/FAQ/shrink-array/","514"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/terminal-access/",component:f("/legacy/FAQ/terminal-access/","365"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:f("/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","998"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/transferring-files-within-the-unraid-server/",component:f("/legacy/FAQ/transferring-files-within-the-unraid-server/","e0a"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/understanding-smart-reports/",component:f("/legacy/FAQ/understanding-smart-reports/","f98"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/usb-flash-drive-preparation/",component:f("/legacy/FAQ/usb-flash-drive-preparation/","d87"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/licensing-faq/",component:f("/unraid-os/faq/licensing-faq/","5d9"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/os-faq/",component:f("/unraid-os/faq/os-faq/","d5d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/redeem-license-activation-code/",component:f("/unraid-os/faq/redeem-license-activation-code/","115"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/unraid-account/",component:f("/unraid-os/faq/unraid-account/","24e"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/guides/configuring-time-machine/",component:f("/unraid-os/guides/configuring-time-machine/","241"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/guides/wol-setup-for-unraid/",component:f("/unraid-os/guides/wol-setup-for-unraid/","9c0"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/additional-settings/",component:f("/unraid-os/manual/additional-settings/","4d7"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/applications/",component:f("/unraid-os/manual/applications/","e0e"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/changing-the-flash-device/",component:f("/unraid-os/manual/changing-the-flash-device/","296"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/docker-management/",component:f("/unraid-os/manual/docker-management/","b83"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/getting-started/",component:f("/unraid-os/manual/getting-started/","852"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/getting-started/manual-install-method/",component:f("/unraid-os/manual/getting-started/manual-install-method/","dba"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/multi-language/",component:f("/unraid-os/manual/multi-language/","cd3"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/security/",component:f("/unraid-os/manual/security/","1d0"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/security/data-encryption/",component:f("/unraid-os/manual/security/data-encryption/","519"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/security/flash-drive/",component:f("/unraid-os/manual/security/flash-drive/","f44"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/security/good-practices/",component:f("/unraid-os/manual/security/good-practices/","788"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/security/secure-webgui-ssl/",component:f("/unraid-os/manual/security/secure-webgui-ssl/","779"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/security/vpn/",component:f("/unraid-os/manual/security/vpn/","dc3"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/shares/",component:f("/unraid-os/manual/shares/","e82"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/shares/create-a-share/",component:f("/unraid-os/manual/shares/create-a-share/","04f"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/shares/delete-a-share/",component:f("/unraid-os/manual/shares/delete-a-share/","c94"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/shares/disk-shares/",component:f("/unraid-os/manual/shares/disk-shares/","46f"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/shares/network-access/",component:f("/unraid-os/manual/shares/network-access/","495"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/shares/user-shares/",component:f("/unraid-os/manual/shares/user-shares/","3da"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/storage-management/",component:f("/unraid-os/manual/storage-management/","1f3"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/tools/",component:f("/unraid-os/manual/tools/","e57"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/troubleshooting/",component:f("/unraid-os/manual/troubleshooting/","247"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/upgrade-instructions/",component:f("/unraid-os/manual/upgrade-instructions/","956"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/users/",component:f("/unraid-os/manual/users/","98d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/vm-management/",component:f("/unraid-os/manual/vm-management/","72a"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/vm-support/",component:f("/unraid-os/manual/vm-support/","61d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/what-is-unraid/",component:f("/unraid-os/manual/what-is-unraid/","3e1"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/zfs/placeholder/",component:f("/unraid-os/manual/zfs/placeholder/","0c3"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.0/",component:f("/unraid-os/release-notes/6.10.0/","a8f"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.1/",component:f("/unraid-os/release-notes/6.10.1/","ef4"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.2/",component:f("/unraid-os/release-notes/6.10.2/","e30"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.3/",component:f("/unraid-os/release-notes/6.10.3/","dec"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.0/",component:f("/unraid-os/release-notes/6.11.0/","64c"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.1/",component:f("/unraid-os/release-notes/6.11.1/","230"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.2/",component:f("/unraid-os/release-notes/6.11.2/","66e"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.3/",component:f("/unraid-os/release-notes/6.11.3/","284"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.4/",component:f("/unraid-os/release-notes/6.11.4/","498"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.5/",component:f("/unraid-os/release-notes/6.11.5/","be7"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.0/",component:f("/unraid-os/release-notes/6.12.0/","361"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.1/",component:f("/unraid-os/release-notes/6.12.1/","2e4"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.2/",component:f("/unraid-os/release-notes/6.12.2/","53a"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.3/",component:f("/unraid-os/release-notes/6.12.3/","fdf"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.9.0/",component:f("/unraid-os/release-notes/6.9.0/","2fd"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.9.1/",component:f("/unraid-os/release-notes/6.9.1/","a8d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.9.2/",component:f("/unraid-os/release-notes/6.9.2/","bc2"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:f("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/data-encryption","path":"/unraid-os/manual/security/data-encryption","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/flash-drive","path":"/unraid-os/manual/security/flash-drive","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/good-practices","path":"/unraid-os/manual/security/good-practices","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/secure-webgui-ssl","path":"/unraid-os/manual/security/secure-webgui-ssl","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/security","path":"/unraid-os/manual/security/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/vpn","path":"/unraid-os/manual/security/vpn","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/create-a-share","path":"/unraid-os/manual/shares/create-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/delete-a-share","path":"/unraid-os/manual/shares/delete-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/disk-shares","path":"/unraid-os/manual/shares/disk-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/network-access","path":"/unraid-os/manual/shares/network-access","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/shares","path":"/unraid-os/manual/shares/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/user-shares","path":"/unraid-os/manual/shares/user-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(8259);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function pt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(8259),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8259:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>f,hI:()=>x,jA:()=>h,lO:()=>k,oz:()=>S,s1:()=>w,vY:()=>E,xz:()=>p});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432),c=n(3609),d=n(9003);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l,_X:()=>s});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},3609:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d,o5:()=>f});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+f(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),p(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===f(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(f(t));-1===n&&(n=0);var r=D.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[f(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(f(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(f(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),v=f;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=f(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var P=_[0],N=x.slice(0,T),O=x.slice(T+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),u(t,D,C),S=s(t,D,new a(f,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),C>1){var M={cause:f+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in p(b))if(v in c){f[b]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(f.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),C=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Te&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),mn=ln(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Pt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Pn;break;case Tt:case At:case Lt:s=yn;break;case Rt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==f&&(null!=(h=je(m,f))&&c.push(Dr(m,h,p)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",f="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",f="onPointerEnter",m="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=p,h=null,ta(a)===r&&((c=new c(f,m+"enter",u,n,a)).target=p,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(f=u,m=0,p=c=s;p;p=Fr(p))m++;for(p=0,h=f;h;h=Fr(h))p++;for(;0<m-p;)c=Fr(c),m--;for(;0<p-m;)f=Fr(f),p--;for(;m--;){if(c===f||null!==f&&c===f.alternate)break e;c=Fr(c),f=Fr(f)}c=null}else c=null;null!==s&&Br(i,l,s,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=je(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=je(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(pa),ua(fa)}function va(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=fa.current,ca(fa,e),ca(pa,pa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ca(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,s);break e}f=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(p,f,s):m))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=f}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:fa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:fa.current,a.context=ha(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=p(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=f(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),Po=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=pe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,m=p.getSnapshot,h=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return pi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:fa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var m=t.memoizedState;l!==d||f!==m||pa.current||io?("function"==typeof p&&(go(t,n,p,r),m=t.memoizedState),(u=io||vo(t,n,u,r,f,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(pa),ua(fa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(pa),ua(fa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=jt(12,ss):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Bl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=ys.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Cs();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=jl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Ft(e,t)))}else n=Ts(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=jl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ua(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(pa),ua(fa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Pl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),f=i;do{var p;if(p=13===f.tag){var m=f.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=f.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var b=new Set;b.add(u),f.updateQueue=b}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var k=f.type,S=f.stateNode;if(0==(64&f.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ps(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Pi,null===e?Pi:e}function Ts(e,t){var n=Nl;Nl|=16;var r=Cs();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Rl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Ta();)Rs(Il)}function Rs(e){var t=Ql(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ps(e):Il=t,Pl.current=null}function Ps(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,zr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(f=d),b===u&&++h===c&&(p=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Is()}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=pr(y,S),o=pr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Wl=Wl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function js(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gs(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Ws(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,Pe,Ds,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,f,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var f={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,l.Z)({},P,p));var N=(0,l.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),f=(n(9864),n(3366)),p=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(p(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=f((function(){e(t.unstable_now())}),n)},a=function(){p(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/search/-db4":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/-6a1":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/-3fb":{"__comp":"17896441","content":"6e7e0dfd"},"/category/contribute/-92d":{"__comp":"14eb3368","categoryGeneratedIndex":"9aea375b"},"/category/faq/-7e2":{"__comp":"14eb3368","categoryGeneratedIndex":"14087e5e"},"/category/getting-started/-d9e":{"__comp":"14eb3368","categoryGeneratedIndex":"0d582783"},"/category/guides/-d00":{"__comp":"14eb3368","categoryGeneratedIndex":"9fa2d074"},"/category/legacy-documentation/-012":{"__comp":"14eb3368","categoryGeneratedIndex":"6ab841ae"},"/category/manual/-93f":{"__comp":"14eb3368","categoryGeneratedIndex":"989b789d"},"/category/release-notes/-eed":{"__comp":"14eb3368","categoryGeneratedIndex":"71791e0b"},"/category/tutorial---basics/-734":{"__comp":"14eb3368","categoryGeneratedIndex":"81e75708"},"/category/tutorial---extras/-0c6":{"__comp":"14eb3368","categoryGeneratedIndex":"38a408e2"},"/category/unraid-connect/-f8e":{"__comp":"14eb3368","categoryGeneratedIndex":"a3ef1cf6"},"/category/unraid-os/-268":{"__comp":"14eb3368","categoryGeneratedIndex":"a2cf01cc"},"/category/zfs/-ebc":{"__comp":"14eb3368","categoryGeneratedIndex":"216240fb"},"/connect/about/-060":{"__comp":"17896441","content":"bd5544b1"},"/connect/help/-741":{"__comp":"17896441","content":"54fe4512"},"/connect/remote-access/-eb4":{"__comp":"17896441","content":"ba2ffba3"},"/contribute-to-docs/intro/-7ef":{"__comp":"17896441","content":"9c8e01a5"},"/contribute-to-docs/tutorial-basics/congratulations/-0da":{"__comp":"17896441","content":"06cd2fd6"},"/contribute-to-docs/tutorial-basics/create-a-blog-post/-cab":{"__comp":"17896441","content":"e62fd64a"},"/contribute-to-docs/tutorial-basics/create-a-document/-461":{"__comp":"17896441","content":"73c1707a"},"/contribute-to-docs/tutorial-basics/create-a-page/-415":{"__comp":"17896441","content":"6937eda1"},"/contribute-to-docs/tutorial-basics/markdown-features/-053":{"__comp":"17896441","content":"fd47d4b7"},"/contribute-to-docs/tutorial-extras/manage-docs-versions/-72f":{"__comp":"17896441","content":"0993abe5"},"/contribute-to-docs/tutorial-extras/translate-your-site/-200":{"__comp":"17896441","content":"f568d666"},"/legacy/Articles/dual-boot-unraid-and-windows/-69c":{"__comp":"17896441","content":"c5b893f4"},"/legacy/Articles/expanding-windows-vm-vdisk-partitions/-84f":{"__comp":"17896441","content":"69f90a2c"},"/legacy/Articles/upgrading-to-unraid-6/-376":{"__comp":"17896441","content":"39304afb"},"/legacy/FAQ/cache-disk/-739":{"__comp":"17896441","content":"88a1b883"},"/legacy/FAQ/check-disk-filesystems/-087":{"__comp":"17896441","content":"5034631f"},"/legacy/FAQ/check-harddrive-speed/-448":{"__comp":"17896441","content":"039cd775"},"/legacy/FAQ/console/-7e8":{"__comp":"17896441","content":"2dd62328"},"/legacy/FAQ/parity-swap-procedure/-e1a":{"__comp":"17896441","content":"f2577e9f"},"/legacy/FAQ/Parity/-168":{"__comp":"17896441","content":"54f4a7b0"},"/legacy/FAQ/replacing-a-data-drive/-e1c":{"__comp":"17896441","content":"74287a25"},"/legacy/FAQ/replacing-multiple-data-drives/-117":{"__comp":"17896441","content":"d441ea6d"},"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-824":{"__comp":"17896441","content":"6618ba01"},"/legacy/FAQ/setup-sleep-and-wake-on-lan/-39b":{"__comp":"17896441","content":"036bad42"},"/legacy/FAQ/shrink-array/-514":{"__comp":"17896441","content":"9d093beb"},"/legacy/FAQ/terminal-access/-365":{"__comp":"17896441","content":"e624f8a6"},"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-998":{"__comp":"17896441","content":"67a4e8b6"},"/legacy/FAQ/transferring-files-within-the-unraid-server/-e0a":{"__comp":"17896441","content":"38c3fa26"},"/legacy/FAQ/understanding-smart-reports/-f98":{"__comp":"17896441","content":"dec1eefe"},"/legacy/FAQ/usb-flash-drive-preparation/-d87":{"__comp":"17896441","content":"79722de7"},"/unraid-os/faq/licensing-faq/-5d9":{"__comp":"17896441","content":"26113f5d"},"/unraid-os/faq/os-faq/-d5d":{"__comp":"17896441","content":"81b28c9f"},"/unraid-os/faq/redeem-license-activation-code/-115":{"__comp":"17896441","content":"e8c37b9f"},"/unraid-os/faq/unraid-account/-24e":{"__comp":"17896441","content":"5565d3f9"},"/unraid-os/guides/configuring-time-machine/-241":{"__comp":"17896441","content":"f9ab548b"},"/unraid-os/guides/wol-setup-for-unraid/-9c0":{"__comp":"17896441","content":"0a18b2d8"},"/unraid-os/manual/additional-settings/-4d7":{"__comp":"17896441","content":"1942e1e1"},"/unraid-os/manual/applications/-e0e":{"__comp":"17896441","content":"7b378cd1"},"/unraid-os/manual/changing-the-flash-device/-296":{"__comp":"17896441","content":"0ca4c500"},"/unraid-os/manual/docker-management/-b83":{"__comp":"17896441","content":"4caccc33"},"/unraid-os/manual/getting-started/-852":{"__comp":"17896441","content":"b13723e0"},"/unraid-os/manual/getting-started/manual-install-method/-dba":{"__comp":"17896441","content":"18ade0c5"},"/unraid-os/manual/multi-language/-cd3":{"__comp":"17896441","content":"6b42df2b"},"/unraid-os/manual/security/-1d0":{"__comp":"17896441","content":"277cf690"},"/unraid-os/manual/security/data-encryption/-519":{"__comp":"17896441","content":"fee3ac30"},"/unraid-os/manual/security/flash-drive/-f44":{"__comp":"17896441","content":"10869db1"},"/unraid-os/manual/security/good-practices/-788":{"__comp":"17896441","content":"313b9001"},"/unraid-os/manual/security/secure-webgui-ssl/-779":{"__comp":"17896441","content":"0a1bdeaa"},"/unraid-os/manual/security/vpn/-dc3":{"__comp":"17896441","content":"1c36a847"},"/unraid-os/manual/shares/-e82":{"__comp":"17896441","content":"aed38285"},"/unraid-os/manual/shares/create-a-share/-04f":{"__comp":"17896441","content":"8a89048a"},"/unraid-os/manual/shares/delete-a-share/-c94":{"__comp":"17896441","content":"9d23aec8"},"/unraid-os/manual/shares/disk-shares/-46f":{"__comp":"17896441","content":"5f60a020"},"/unraid-os/manual/shares/network-access/-495":{"__comp":"17896441","content":"f7b0b541"},"/unraid-os/manual/shares/user-shares/-3da":{"__comp":"17896441","content":"8944547a"},"/unraid-os/manual/storage-management/-1f3":{"__comp":"17896441","content":"55054ac6"},"/unraid-os/manual/tools/-e57":{"__comp":"17896441","content":"7c081f1b"},"/unraid-os/manual/troubleshooting/-247":{"__comp":"17896441","content":"104dd0b4"},"/unraid-os/manual/upgrade-instructions/-956":{"__comp":"17896441","content":"7436a388"},"/unraid-os/manual/users/-98d":{"__comp":"17896441","content":"40147886"},"/unraid-os/manual/vm-management/-72a":{"__comp":"17896441","content":"3d3d1f9d"},"/unraid-os/manual/vm-support/-61d":{"__comp":"17896441","content":"88941ca4"},"/unraid-os/manual/what-is-unraid/-3e1":{"__comp":"17896441","content":"f0844d9f"},"/unraid-os/manual/zfs/placeholder/-0c3":{"__comp":"17896441","content":"5df36282"},"/unraid-os/release-notes/6.10.0/-a8f":{"__comp":"17896441","content":"798531cc"},"/unraid-os/release-notes/6.10.1/-ef4":{"__comp":"17896441","content":"b3a9d7ab"},"/unraid-os/release-notes/6.10.2/-e30":{"__comp":"17896441","content":"caa9baff"},"/unraid-os/release-notes/6.10.3/-dec":{"__comp":"17896441","content":"54219b20"},"/unraid-os/release-notes/6.11.0/-64c":{"__comp":"17896441","content":"096fb135"},"/unraid-os/release-notes/6.11.1/-230":{"__comp":"17896441","content":"6b97f0f9"},"/unraid-os/release-notes/6.11.2/-66e":{"__comp":"17896441","content":"a0c90937"},"/unraid-os/release-notes/6.11.3/-284":{"__comp":"17896441","content":"d31ea43a"},"/unraid-os/release-notes/6.11.4/-498":{"__comp":"17896441","content":"c8335b6e"},"/unraid-os/release-notes/6.11.5/-be7":{"__comp":"17896441","content":"ae93aaeb"},"/unraid-os/release-notes/6.12.0/-361":{"__comp":"17896441","content":"e1256ee6"},"/unraid-os/release-notes/6.12.1/-2e4":{"__comp":"17896441","content":"98a2ad9f"},"/unraid-os/release-notes/6.12.2/-53a":{"__comp":"17896441","content":"0ba4e87b"},"/unraid-os/release-notes/6.12.3/-fdf":{"__comp":"17896441","content":"7a2d53ea"},"/unraid-os/release-notes/6.9.0/-2fd":{"__comp":"17896441","content":"06988216"},"/unraid-os/release-notes/6.9.1/-a8d":{"__comp":"17896441","content":"49332cbb"},"/unraid-os/release-notes/6.9.2/-bc2":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.b41d83e9.js.LICENSE.txt b/assets/js/main.9f5bb88f.js.LICENSE.txt similarity index 100% rename from assets/js/main.b41d83e9.js.LICENSE.txt rename to assets/js/main.9f5bb88f.js.LICENSE.txt diff --git a/assets/js/main.b41d83e9.js b/assets/js/main.b41d83e9.js deleted file mode 100644 index 2efa48da5..000000000 --- a/assets/js/main.b41d83e9.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.b41d83e9.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"0d582783":[()=>n.e(2410).then(n.t.bind(n,5752,19)),"~docs/default/category-unraidsidebar-category-getting-started-a72.json",5752],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"14087e5e":[()=>n.e(2263).then(n.t.bind(n,183,19)),"~docs/default/category-unraidsidebar-category-faq-290.json",183],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"216240fb":[()=>n.e(3444).then(n.t.bind(n,171,19)),"~docs/default/category-unraidsidebar-category-zfs-f45.json",171],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"38a408e2":[()=>n.e(6594).then(n.t.bind(n,9586,19)),"~docs/default/category-unraidsidebar-category-tutorial-extras-da0.json",9586],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6ab841ae":[()=>n.e(3009).then(n.t.bind(n,6466,19)),"~docs/default/category-unraidsidebar-category-legacy-documentation-79f.json",6466],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"71791e0b":[()=>n.e(2338).then(n.t.bind(n,8773,19)),"~docs/default/category-unraidsidebar-category-release-notes-e00.json",8773],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"81e75708":[()=>n.e(3229).then(n.t.bind(n,7963,19)),"~docs/default/category-unraidsidebar-category-tutorial-basics-86a.json",7963],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"90126b70":[()=>n.e(79).then(n.bind(n,8693)),"@site/docs/unraid-os/manual/shares.md",8693],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"989b789d":[()=>n.e(9846).then(n.t.bind(n,7591,19)),"~docs/default/category-unraidsidebar-category-manual-456.json",7591],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9aea375b":[()=>n.e(3838).then(n.t.bind(n,8952,19)),"~docs/default/category-unraidsidebar-category-contribute-3d7.json",8952],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],"9fa2d074":[()=>n.e(7645).then(n.t.bind(n,7726,19)),"~docs/default/category-unraidsidebar-category-guides-a9f.json",7726],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],a2cf01cc:[()=>n.e(6014).then(n.t.bind(n,5212,19)),"~docs/default/category-unraidsidebar-category-unraid-os-e8f.json",5212],a3ef1cf6:[()=>n.e(1868).then(n.t.bind(n,6318,19)),"~docs/default/category-unraidsidebar-category-unraid-connect-93f.json",6318],a78d85c7:[()=>n.e(7328).then(n.bind(n,5536)),"@site/docs/unraid-os/manual/security.md",5536],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],e8c37b9f:[()=>n.e(7436).then(n.bind(n,1779)),"@site/docs/unraid-os/faq/redeem-license-activation-code.md",1779],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/search/",component:f("/search/","db4"),exact:!0},{path:"/",component:f("/","a13"),routes:[{path:"/",component:f("/","3fb"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/contribute/",component:f("/category/contribute/","92d"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/faq/",component:f("/category/faq/","7e2"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/getting-started/",component:f("/category/getting-started/","d9e"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/guides/",component:f("/category/guides/","d00"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/legacy-documentation/",component:f("/category/legacy-documentation/","012"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/manual/",component:f("/category/manual/","93f"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/release-notes/",component:f("/category/release-notes/","eed"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/tutorial---basics/",component:f("/category/tutorial---basics/","734"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/tutorial---extras/",component:f("/category/tutorial---extras/","0c6"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/unraid-connect/",component:f("/category/unraid-connect/","f8e"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/unraid-os/",component:f("/category/unraid-os/","268"),exact:!0,sidebar:"unraidSidebar"},{path:"/category/zfs/",component:f("/category/zfs/","ebc"),exact:!0,sidebar:"unraidSidebar"},{path:"/connect/about/",component:f("/connect/about/","060"),exact:!0,sidebar:"unraidSidebar"},{path:"/connect/help/",component:f("/connect/help/","741"),exact:!0,sidebar:"unraidSidebar"},{path:"/connect/remote-access/",component:f("/connect/remote-access/","eb4"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/intro/",component:f("/contribute-to-docs/intro/","7ef"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/congratulations/",component:f("/contribute-to-docs/tutorial-basics/congratulations/","0da"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:f("/contribute-to-docs/tutorial-basics/create-a-blog-post/","cab"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/create-a-document/",component:f("/contribute-to-docs/tutorial-basics/create-a-document/","461"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/create-a-page/",component:f("/contribute-to-docs/tutorial-basics/create-a-page/","415"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-basics/markdown-features/",component:f("/contribute-to-docs/tutorial-basics/markdown-features/","053"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:f("/contribute-to-docs/tutorial-extras/manage-docs-versions/","72f"),exact:!0,sidebar:"unraidSidebar"},{path:"/contribute-to-docs/tutorial-extras/translate-your-site/",component:f("/contribute-to-docs/tutorial-extras/translate-your-site/","200"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/Articles/dual-boot-unraid-and-windows/",component:f("/legacy/Articles/dual-boot-unraid-and-windows/","69c"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:f("/legacy/Articles/expanding-windows-vm-vdisk-partitions/","84f"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/Articles/upgrading-to-unraid-6/",component:f("/legacy/Articles/upgrading-to-unraid-6/","376"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/cache-disk/",component:f("/legacy/FAQ/cache-disk/","739"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/check-disk-filesystems/",component:f("/legacy/FAQ/check-disk-filesystems/","087"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/check-harddrive-speed/",component:f("/legacy/FAQ/check-harddrive-speed/","448"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/console/",component:f("/legacy/FAQ/console/","7e8"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/parity-swap-procedure/",component:f("/legacy/FAQ/parity-swap-procedure/","e1a"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/Parity/",component:f("/legacy/FAQ/Parity/","168"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/replacing-a-data-drive/",component:f("/legacy/FAQ/replacing-a-data-drive/","e1c"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/replacing-multiple-data-drives/",component:f("/legacy/FAQ/replacing-multiple-data-drives/","117"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:f("/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","824"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:f("/legacy/FAQ/setup-sleep-and-wake-on-lan/","39b"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/shrink-array/",component:f("/legacy/FAQ/shrink-array/","514"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/terminal-access/",component:f("/legacy/FAQ/terminal-access/","365"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:f("/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","998"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/transferring-files-within-the-unraid-server/",component:f("/legacy/FAQ/transferring-files-within-the-unraid-server/","e0a"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/understanding-smart-reports/",component:f("/legacy/FAQ/understanding-smart-reports/","f98"),exact:!0,sidebar:"unraidSidebar"},{path:"/legacy/FAQ/usb-flash-drive-preparation/",component:f("/legacy/FAQ/usb-flash-drive-preparation/","d87"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/licensing-faq/",component:f("/unraid-os/faq/licensing-faq/","5d9"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/os-faq/",component:f("/unraid-os/faq/os-faq/","d5d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/redeem-license-activation-code/",component:f("/unraid-os/faq/redeem-license-activation-code/","115"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/faq/unraid-account/",component:f("/unraid-os/faq/unraid-account/","24e"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/guides/configuring-time-machine/",component:f("/unraid-os/guides/configuring-time-machine/","241"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/guides/wol-setup-for-unraid/",component:f("/unraid-os/guides/wol-setup-for-unraid/","9c0"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/additional-settings/",component:f("/unraid-os/manual/additional-settings/","4d7"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/applications/",component:f("/unraid-os/manual/applications/","e0e"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/changing-the-flash-device/",component:f("/unraid-os/manual/changing-the-flash-device/","296"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/docker-management/",component:f("/unraid-os/manual/docker-management/","b83"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/getting-started/",component:f("/unraid-os/manual/getting-started/","852"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/getting-started/manual-install-method/",component:f("/unraid-os/manual/getting-started/manual-install-method/","dba"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/multi-language/",component:f("/unraid-os/manual/multi-language/","cd3"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/security/",component:f("/unraid-os/manual/security/","551"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/shares/",component:f("/unraid-os/manual/shares/","644"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/storage-management/",component:f("/unraid-os/manual/storage-management/","1f3"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/tools/",component:f("/unraid-os/manual/tools/","e57"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/troubleshooting/",component:f("/unraid-os/manual/troubleshooting/","247"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/upgrade-instructions/",component:f("/unraid-os/manual/upgrade-instructions/","956"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/users/",component:f("/unraid-os/manual/users/","98d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/vm-management/",component:f("/unraid-os/manual/vm-management/","72a"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/vm-support/",component:f("/unraid-os/manual/vm-support/","61d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/what-is-unraid/",component:f("/unraid-os/manual/what-is-unraid/","3e1"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/manual/zfs/placeholder/",component:f("/unraid-os/manual/zfs/placeholder/","0c3"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.0/",component:f("/unraid-os/release-notes/6.10.0/","a8f"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.1/",component:f("/unraid-os/release-notes/6.10.1/","ef4"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.2/",component:f("/unraid-os/release-notes/6.10.2/","e30"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.10.3/",component:f("/unraid-os/release-notes/6.10.3/","dec"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.0/",component:f("/unraid-os/release-notes/6.11.0/","64c"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.1/",component:f("/unraid-os/release-notes/6.11.1/","230"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.2/",component:f("/unraid-os/release-notes/6.11.2/","66e"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.3/",component:f("/unraid-os/release-notes/6.11.3/","284"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.4/",component:f("/unraid-os/release-notes/6.11.4/","498"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.11.5/",component:f("/unraid-os/release-notes/6.11.5/","be7"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.0/",component:f("/unraid-os/release-notes/6.12.0/","361"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.1/",component:f("/unraid-os/release-notes/6.12.1/","2e4"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.2/",component:f("/unraid-os/release-notes/6.12.2/","53a"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.12.3/",component:f("/unraid-os/release-notes/6.12.3/","fdf"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.9.0/",component:f("/unraid-os/release-notes/6.9.0/","2fd"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.9.1/",component:f("/unraid-os/release-notes/6.9.1/","a8d"),exact:!0,sidebar:"unraidSidebar"},{path:"/unraid-os/release-notes/6.9.2/",component:f("/unraid-os/release-notes/6.9.2/","bc2"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:f("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security","path":"/unraid-os/manual/security","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares","path":"/unraid-os/manual/shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(3734);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function pt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(3734),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3734:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>f,jA:()=>h,xz:()=>p,hI:()=>x,lO:()=>k,vY:()=>E,oz:()=>S,s1:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432);function c(e){return Array.from(new Set(e))}var d=n(9003);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+f(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),p(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===f(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(f(t));-1===n&&(n=0);var r=D.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[f(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(f(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(f(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),v=f;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=f(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var P=_[0],N=x.slice(0,T),O=x.slice(T+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),u(t,D,C),S=s(t,D,new a(f,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),C>1){var M={cause:f+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in p(b))if(v in c){f[b]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(f.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),C=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Te&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),mn=ln(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Pt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Pn;break;case Tt:case At:case Lt:s=yn;break;case Rt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==f&&(null!=(h=je(m,f))&&c.push(Dr(m,h,p)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",f="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",f="onPointerEnter",m="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=p,h=null,ta(a)===r&&((c=new c(f,m+"enter",u,n,a)).target=p,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(f=u,m=0,p=c=s;p;p=Fr(p))m++;for(p=0,h=f;h;h=Fr(h))p++;for(;0<m-p;)c=Fr(c),m--;for(;0<p-m;)f=Fr(f),p--;for(;m--;){if(c===f||null!==f&&c===f.alternate)break e;c=Fr(c),f=Fr(f)}c=null}else c=null;null!==s&&Br(i,l,s,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=je(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=je(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(pa),ua(fa)}function va(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=fa.current,ca(fa,e),ca(pa,pa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ca(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,s);break e}f=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(p,f,s):m))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=f}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:fa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:fa.current,a.context=ha(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=p(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=f(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),Po=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=pe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,m=p.getSnapshot,h=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return pi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:fa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var m=t.memoizedState;l!==d||f!==m||pa.current||io?("function"==typeof p&&(go(t,n,p,r),m=t.memoizedState),(u=io||vo(t,n,u,r,f,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(pa),ua(fa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(pa),ua(fa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=jt(12,ss):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Bl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=ys.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Cs();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=jl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Ft(e,t)))}else n=Ts(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=jl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ua(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(pa),ua(fa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Pl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),f=i;do{var p;if(p=13===f.tag){var m=f.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=f.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var b=new Set;b.add(u),f.updateQueue=b}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var k=f.type,S=f.stateNode;if(0==(64&f.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ps(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Pi,null===e?Pi:e}function Ts(e,t){var n=Nl;Nl|=16;var r=Cs();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Rl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Ta();)Rs(Il)}function Rs(e){var t=Ql(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ps(e):Il=t,Pl.current=null}function Ps(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,zr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(f=d),b===u&&++h===c&&(p=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Is()}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=pr(y,S),o=pr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Wl=Wl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function js(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gs(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Ws(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,Pe,Ds,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,f,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var f={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,l.Z)({},P,p));var N=(0,l.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),f=(n(9864),n(3366)),p=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(p(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=f((function(){e(t.unstable_now())}),n)},a=function(){p(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/search/-db4":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/-a13":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/-3fb":{"__comp":"17896441","content":"6e7e0dfd"},"/category/contribute/-92d":{"__comp":"14eb3368","categoryGeneratedIndex":"9aea375b"},"/category/faq/-7e2":{"__comp":"14eb3368","categoryGeneratedIndex":"14087e5e"},"/category/getting-started/-d9e":{"__comp":"14eb3368","categoryGeneratedIndex":"0d582783"},"/category/guides/-d00":{"__comp":"14eb3368","categoryGeneratedIndex":"9fa2d074"},"/category/legacy-documentation/-012":{"__comp":"14eb3368","categoryGeneratedIndex":"6ab841ae"},"/category/manual/-93f":{"__comp":"14eb3368","categoryGeneratedIndex":"989b789d"},"/category/release-notes/-eed":{"__comp":"14eb3368","categoryGeneratedIndex":"71791e0b"},"/category/tutorial---basics/-734":{"__comp":"14eb3368","categoryGeneratedIndex":"81e75708"},"/category/tutorial---extras/-0c6":{"__comp":"14eb3368","categoryGeneratedIndex":"38a408e2"},"/category/unraid-connect/-f8e":{"__comp":"14eb3368","categoryGeneratedIndex":"a3ef1cf6"},"/category/unraid-os/-268":{"__comp":"14eb3368","categoryGeneratedIndex":"a2cf01cc"},"/category/zfs/-ebc":{"__comp":"14eb3368","categoryGeneratedIndex":"216240fb"},"/connect/about/-060":{"__comp":"17896441","content":"bd5544b1"},"/connect/help/-741":{"__comp":"17896441","content":"54fe4512"},"/connect/remote-access/-eb4":{"__comp":"17896441","content":"ba2ffba3"},"/contribute-to-docs/intro/-7ef":{"__comp":"17896441","content":"9c8e01a5"},"/contribute-to-docs/tutorial-basics/congratulations/-0da":{"__comp":"17896441","content":"06cd2fd6"},"/contribute-to-docs/tutorial-basics/create-a-blog-post/-cab":{"__comp":"17896441","content":"e62fd64a"},"/contribute-to-docs/tutorial-basics/create-a-document/-461":{"__comp":"17896441","content":"73c1707a"},"/contribute-to-docs/tutorial-basics/create-a-page/-415":{"__comp":"17896441","content":"6937eda1"},"/contribute-to-docs/tutorial-basics/markdown-features/-053":{"__comp":"17896441","content":"fd47d4b7"},"/contribute-to-docs/tutorial-extras/manage-docs-versions/-72f":{"__comp":"17896441","content":"0993abe5"},"/contribute-to-docs/tutorial-extras/translate-your-site/-200":{"__comp":"17896441","content":"f568d666"},"/legacy/Articles/dual-boot-unraid-and-windows/-69c":{"__comp":"17896441","content":"c5b893f4"},"/legacy/Articles/expanding-windows-vm-vdisk-partitions/-84f":{"__comp":"17896441","content":"69f90a2c"},"/legacy/Articles/upgrading-to-unraid-6/-376":{"__comp":"17896441","content":"39304afb"},"/legacy/FAQ/cache-disk/-739":{"__comp":"17896441","content":"88a1b883"},"/legacy/FAQ/check-disk-filesystems/-087":{"__comp":"17896441","content":"5034631f"},"/legacy/FAQ/check-harddrive-speed/-448":{"__comp":"17896441","content":"039cd775"},"/legacy/FAQ/console/-7e8":{"__comp":"17896441","content":"2dd62328"},"/legacy/FAQ/parity-swap-procedure/-e1a":{"__comp":"17896441","content":"f2577e9f"},"/legacy/FAQ/Parity/-168":{"__comp":"17896441","content":"54f4a7b0"},"/legacy/FAQ/replacing-a-data-drive/-e1c":{"__comp":"17896441","content":"74287a25"},"/legacy/FAQ/replacing-multiple-data-drives/-117":{"__comp":"17896441","content":"d441ea6d"},"/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-824":{"__comp":"17896441","content":"6618ba01"},"/legacy/FAQ/setup-sleep-and-wake-on-lan/-39b":{"__comp":"17896441","content":"036bad42"},"/legacy/FAQ/shrink-array/-514":{"__comp":"17896441","content":"9d093beb"},"/legacy/FAQ/terminal-access/-365":{"__comp":"17896441","content":"e624f8a6"},"/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-998":{"__comp":"17896441","content":"67a4e8b6"},"/legacy/FAQ/transferring-files-within-the-unraid-server/-e0a":{"__comp":"17896441","content":"38c3fa26"},"/legacy/FAQ/understanding-smart-reports/-f98":{"__comp":"17896441","content":"dec1eefe"},"/legacy/FAQ/usb-flash-drive-preparation/-d87":{"__comp":"17896441","content":"79722de7"},"/unraid-os/faq/licensing-faq/-5d9":{"__comp":"17896441","content":"26113f5d"},"/unraid-os/faq/os-faq/-d5d":{"__comp":"17896441","content":"81b28c9f"},"/unraid-os/faq/redeem-license-activation-code/-115":{"__comp":"17896441","content":"e8c37b9f"},"/unraid-os/faq/unraid-account/-24e":{"__comp":"17896441","content":"5565d3f9"},"/unraid-os/guides/configuring-time-machine/-241":{"__comp":"17896441","content":"f9ab548b"},"/unraid-os/guides/wol-setup-for-unraid/-9c0":{"__comp":"17896441","content":"0a18b2d8"},"/unraid-os/manual/additional-settings/-4d7":{"__comp":"17896441","content":"1942e1e1"},"/unraid-os/manual/applications/-e0e":{"__comp":"17896441","content":"7b378cd1"},"/unraid-os/manual/changing-the-flash-device/-296":{"__comp":"17896441","content":"0ca4c500"},"/unraid-os/manual/docker-management/-b83":{"__comp":"17896441","content":"4caccc33"},"/unraid-os/manual/getting-started/-852":{"__comp":"17896441","content":"b13723e0"},"/unraid-os/manual/getting-started/manual-install-method/-dba":{"__comp":"17896441","content":"18ade0c5"},"/unraid-os/manual/multi-language/-cd3":{"__comp":"17896441","content":"6b42df2b"},"/unraid-os/manual/security/-551":{"__comp":"17896441","content":"a78d85c7"},"/unraid-os/manual/shares/-644":{"__comp":"17896441","content":"90126b70"},"/unraid-os/manual/storage-management/-1f3":{"__comp":"17896441","content":"55054ac6"},"/unraid-os/manual/tools/-e57":{"__comp":"17896441","content":"7c081f1b"},"/unraid-os/manual/troubleshooting/-247":{"__comp":"17896441","content":"104dd0b4"},"/unraid-os/manual/upgrade-instructions/-956":{"__comp":"17896441","content":"7436a388"},"/unraid-os/manual/users/-98d":{"__comp":"17896441","content":"40147886"},"/unraid-os/manual/vm-management/-72a":{"__comp":"17896441","content":"3d3d1f9d"},"/unraid-os/manual/vm-support/-61d":{"__comp":"17896441","content":"88941ca4"},"/unraid-os/manual/what-is-unraid/-3e1":{"__comp":"17896441","content":"f0844d9f"},"/unraid-os/manual/zfs/placeholder/-0c3":{"__comp":"17896441","content":"5df36282"},"/unraid-os/release-notes/6.10.0/-a8f":{"__comp":"17896441","content":"798531cc"},"/unraid-os/release-notes/6.10.1/-ef4":{"__comp":"17896441","content":"b3a9d7ab"},"/unraid-os/release-notes/6.10.2/-e30":{"__comp":"17896441","content":"caa9baff"},"/unraid-os/release-notes/6.10.3/-dec":{"__comp":"17896441","content":"54219b20"},"/unraid-os/release-notes/6.11.0/-64c":{"__comp":"17896441","content":"096fb135"},"/unraid-os/release-notes/6.11.1/-230":{"__comp":"17896441","content":"6b97f0f9"},"/unraid-os/release-notes/6.11.2/-66e":{"__comp":"17896441","content":"a0c90937"},"/unraid-os/release-notes/6.11.3/-284":{"__comp":"17896441","content":"d31ea43a"},"/unraid-os/release-notes/6.11.4/-498":{"__comp":"17896441","content":"c8335b6e"},"/unraid-os/release-notes/6.11.5/-be7":{"__comp":"17896441","content":"ae93aaeb"},"/unraid-os/release-notes/6.12.0/-361":{"__comp":"17896441","content":"e1256ee6"},"/unraid-os/release-notes/6.12.1/-2e4":{"__comp":"17896441","content":"98a2ad9f"},"/unraid-os/release-notes/6.12.2/-53a":{"__comp":"17896441","content":"0ba4e87b"},"/unraid-os/release-notes/6.12.3/-fdf":{"__comp":"17896441","content":"7a2d53ea"},"/unraid-os/release-notes/6.9.0/-2fd":{"__comp":"17896441","content":"06988216"},"/unraid-os/release-notes/6.9.1/-a8d":{"__comp":"17896441","content":"49332cbb"},"/unraid-os/release-notes/6.9.2/-bc2":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/runtime~main.4e8da702.js b/assets/js/runtime~main.4e8da702.js new file mode 100644 index 000000000..65033288d --- /dev/null +++ b/assets/js/runtime~main.4e8da702.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,d,f,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i<e.length;i++){d=e[i][0],f=e[i][1],b=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&b||c>=b)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,b<c&&(c=b));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",559:"313b9001",563:"6618ba01",879:"d441ea6d",909:"b3a9d7ab",967:"0a1bdeaa",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1698:"49332cbb",1754:"9d23aec8",1770:"8a89048a",1791:"5df36282",1868:"a3ef1cf6",1932:"aed38285",2121:"6e7e0dfd",2197:"935f2afb",2263:"14087e5e",2269:"54fe4512",2338:"71791e0b",2410:"0d582783",2454:"f7b0b541",2697:"f0844d9f",2926:"54f4a7b0",3009:"6ab841ae",3203:"67a4e8b6",3229:"81e75708",3444:"216240fb",3563:"10869db1",3659:"6e6b2999",3838:"9aea375b",3923:"6937eda1",3967:"4caccc33",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",4863:"5f60a020",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5289:"1c36a847",5450:"8944547a",5832:"caa9baff",5833:"7a2d53ea",6014:"a2cf01cc",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6594:"38a408e2",6596:"dec1eefe",6617:"81b28c9f",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"fee3ac30",7415:"ae93aaeb",7436:"e8c37b9f",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7645:"9fa2d074",7748:"798531cc",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368",9821:"277cf690",9846:"989b789d"}[e]||e)+"."+{53:"09969b34",322:"97294dad",335:"4efb464b",347:"c81aba15",496:"8be7a680",559:"cb5025d9",563:"20e23587",879:"5a37855f",909:"721cd03e",967:"03794584",1036:"ab606914",1317:"57591bcc",1367:"0f5b93da",1377:"9e0715b2",1698:"c7e1f829",1754:"0cef40c3",1770:"938a4041",1791:"a72e69b2",1868:"76de55ae",1932:"fb0ff2ca",2121:"fb818bfa",2153:"6676c42e",2197:"52175e15",2263:"372c4508",2269:"41b1861a",2338:"ad787621",2410:"d11b87a4",2454:"0b5384b3",2697:"021b24b2",2926:"4bf1529b",3009:"03397c0e",3203:"427627d9",3229:"6e719736",3444:"2766c1ab",3563:"891a9b7e",3659:"8d78d9d8",3838:"964dab67",3923:"b16c4ff9",3967:"5ac361b7",4077:"e2f1dc8a",4149:"91aaae7d",4248:"f946246d",4262:"cb017fc4",4321:"98361f12",4399:"fb9d08a7",4472:"6b9093db",4567:"683bf322",4579:"5a658061",4618:"a139a83c",4622:"7901e3ce",4688:"f974a9e9",4710:"3e424aac",4813:"25361a9a",4863:"0b3b8092",5069:"d355be4e",5078:"887e9cdd",5236:"b7d0184e",5275:"d135fed1",5289:"164c5f27",5450:"ffcf72d1",5832:"38e44503",5833:"9ce3779c",6014:"1b1745b0",6279:"b8ef0387",6299:"eb58b521",6305:"736827f0",6385:"9bf402a8",6461:"16c67f8d",6594:"471abb2e",6596:"fccf61ce",6617:"30a79c58",6945:"e6ca558a",7044:"b3fc4cd9",7054:"c2b3ea31",7124:"35d4fcaa",7317:"c28a1908",7328:"c445f0d9",7415:"3685a1fe",7436:"99708cf7",7537:"d240c09c",7570:"2fb8d5f4",7603:"f61fa792",7645:"e34880a5",7748:"d412a911",7918:"63195e72",7920:"2a186628",8078:"36494500",8145:"562cc1c1",8298:"d904d000",8868:"01870995",8882:"8809f3a1",8894:"96075cc6",8925:"0c6b3e91",9114:"56fd8f8f",9185:"3dc23b60",9334:"dadfb5a6",9347:"292cc628",9401:"b794273f",9514:"fe92450b",9554:"481969b8",9724:"62312122",9725:"c6355df8",9817:"64ec88ed",9821:"38431556",9846:"f7c7fa37"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="docs:",r.l=(e,a,d,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+d){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+d),t.src=e),f[e]=[a];var l=(a,d)=>{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","313b9001":"559","6618ba01":"563",d441ea6d:"879",b3a9d7ab:"909","0a1bdeaa":"967","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","49332cbb":"1698","9d23aec8":"1754","8a89048a":"1770","5df36282":"1791",a3ef1cf6:"1868",aed38285:"1932","6e7e0dfd":"2121","935f2afb":"2197","14087e5e":"2263","54fe4512":"2269","71791e0b":"2338","0d582783":"2410",f7b0b541:"2454",f0844d9f:"2697","54f4a7b0":"2926","6ab841ae":"3009","67a4e8b6":"3203","81e75708":"3229","216240fb":"3444","10869db1":"3563","6e6b2999":"3659","9aea375b":"3838","6937eda1":"3923","4caccc33":"3967","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813","5f60a020":"4863","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","1c36a847":"5289","8944547a":"5450",caa9baff:"5832","7a2d53ea":"5833",a2cf01cc:"6014","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461","38a408e2":"6594",dec1eefe:"6596","81b28c9f":"6617","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",fee3ac30:"7328",ae93aaeb:"7415",e8c37b9f:"7436","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","9fa2d074":"7645","798531cc":"7748","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817","277cf690":"9821","989b789d":"9846"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((d,b)=>f=e[a]=[d,b]));d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,(d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,c=d[0],t=d[1],o=d[2],n=0;if(c.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n<c.length;n++)b=c[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},d=self.webpackChunkdocs=self.webpackChunkdocs||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})(); \ No newline at end of file diff --git a/assets/js/runtime~main.59c59235.js b/assets/js/runtime~main.59c59235.js deleted file mode 100644 index 5761c4b00..000000000 --- a/assets/js/runtime~main.59c59235.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,d,f,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i<e.length;i++){d=e[i][0],f=e[i][1],b=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&b||c>=b)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,b<c&&(c=b));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",79:"90126b70",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",563:"6618ba01",879:"d441ea6d",909:"b3a9d7ab",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1698:"49332cbb",1791:"5df36282",1868:"a3ef1cf6",2121:"6e7e0dfd",2197:"935f2afb",2263:"14087e5e",2269:"54fe4512",2338:"71791e0b",2410:"0d582783",2697:"f0844d9f",2926:"54f4a7b0",3009:"6ab841ae",3203:"67a4e8b6",3229:"81e75708",3444:"216240fb",3659:"6e6b2999",3838:"9aea375b",3923:"6937eda1",3967:"4caccc33",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5832:"caa9baff",5833:"7a2d53ea",6014:"a2cf01cc",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6594:"38a408e2",6596:"dec1eefe",6617:"81b28c9f",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"a78d85c7",7415:"ae93aaeb",7436:"e8c37b9f",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7645:"9fa2d074",7748:"798531cc",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368",9846:"989b789d"}[e]||e)+"."+{53:"2392765b",79:"5b9aafb8",322:"97294dad",335:"4efb464b",347:"c81aba15",496:"8be7a680",563:"20e23587",879:"5a37855f",909:"721cd03e",1036:"ab606914",1317:"cdd07291",1367:"b4d3598d",1377:"9e0715b2",1698:"c7e1f829",1791:"a72e69b2",1868:"76de55ae",2121:"fb818bfa",2153:"6676c42e",2197:"5bd72703",2263:"372c4508",2269:"41b1861a",2338:"ad787621",2410:"d11b87a4",2697:"288ed01a",2926:"4bf1529b",3009:"03397c0e",3203:"427627d9",3229:"6e719736",3444:"2766c1ab",3659:"8d78d9d8",3838:"964dab67",3923:"b16c4ff9",3967:"d4b40cef",4077:"e2f1dc8a",4149:"91aaae7d",4248:"f946246d",4262:"c6688387",4321:"8ff5a899",4399:"fb9d08a7",4472:"6b9093db",4567:"d8423627",4579:"5a658061",4618:"a139a83c",4622:"7901e3ce",4688:"f974a9e9",4710:"3e424aac",4813:"00579de4",5069:"bc3f743f",5078:"887e9cdd",5236:"b7d0184e",5275:"d135fed1",5832:"38e44503",5833:"9ce3779c",6014:"1b1745b0",6279:"b8ef0387",6299:"eb58b521",6305:"736827f0",6385:"9bf402a8",6461:"16c67f8d",6594:"471abb2e",6596:"fccf61ce",6617:"b74c329f",6945:"e6ca558a",7044:"8ec38f25",7054:"c2b3ea31",7124:"35d4fcaa",7317:"c28a1908",7328:"1bc9f9a4",7415:"3685a1fe",7436:"e823dded",7537:"0e35be01",7570:"2fb8d5f4",7603:"f61fa792",7645:"e34880a5",7748:"50b3e9dc",7918:"5d44835b",7920:"2a186628",8078:"36494500",8145:"562cc1c1",8298:"d904d000",8868:"01870995",8882:"8809f3a1",8894:"96075cc6",8925:"0c6b3e91",9114:"56fd8f8f",9185:"3dc23b60",9334:"dadfb5a6",9347:"292cc628",9401:"b794273f",9514:"010a8141",9554:"481969b8",9724:"62312122",9725:"571cb6ba",9817:"3f60616a",9846:"5f6c0f67"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="docs:",r.l=(e,a,d,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+d){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+d),t.src=e),f[e]=[a];var l=(a,d)=>{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","90126b70":"79","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","6618ba01":"563",d441ea6d:"879",b3a9d7ab:"909","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","49332cbb":"1698","5df36282":"1791",a3ef1cf6:"1868","6e7e0dfd":"2121","935f2afb":"2197","14087e5e":"2263","54fe4512":"2269","71791e0b":"2338","0d582783":"2410",f0844d9f:"2697","54f4a7b0":"2926","6ab841ae":"3009","67a4e8b6":"3203","81e75708":"3229","216240fb":"3444","6e6b2999":"3659","9aea375b":"3838","6937eda1":"3923","4caccc33":"3967","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275",caa9baff:"5832","7a2d53ea":"5833",a2cf01cc:"6014","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461","38a408e2":"6594",dec1eefe:"6596","81b28c9f":"6617","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",a78d85c7:"7328",ae93aaeb:"7415",e8c37b9f:"7436","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","9fa2d074":"7645","798531cc":"7748","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817","989b789d":"9846"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((d,b)=>f=e[a]=[d,b]));d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,(d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,c=d[0],t=d[1],o=d[2],n=0;if(c.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n<c.length;n++)b=c[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},d=self.webpackChunkdocs=self.webpackChunkdocs||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})(); \ No newline at end of file diff --git a/category/contribute/index.html b/category/contribute/index.html index 95d7f77e6..7c6dd28ad 100644 --- a/category/contribute/index.html +++ b/category/contribute/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contribute</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Contribute</h1><p>How to contribute to the Unraid Docs</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/intro/"><h2 class="text--truncate cardTitle_rnsV" title="Contributing to Unraid Documentation">📄️<!-- --> <!-- -->Contributing to Unraid Documentation</h2><p class="text--truncate cardDescription_PWke" title="Contribute to a Docs Page that already Exists">Contribute to a Docs Page that already Exists</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/tutorial---basics/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Basics">🗃️<!-- --> <!-- -->Tutorial - Basics</h2><p class="text--truncate cardDescription_PWke" title="5 items">5 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/tutorial---extras/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Extras">🗃️<!-- --> <!-- -->Tutorial - Extras</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/faq/index.html b/category/faq/index.html index d2baae740..a17989a53 100644 --- a/category/faq/index.html +++ b/category/faq/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/faq/redeem-license-activation-code/">Redeem License Activation Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">FAQ</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">FAQ</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/faq/licensing-faq/"><h2 class="text--truncate cardTitle_rnsV" title="Licensing">📄️<!-- --> <!-- -->Licensing</h2><p class="text--truncate cardDescription_PWke" title="Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/faq/os-faq/"><h2 class="text--truncate cardTitle_rnsV" title="OS">📄️<!-- --> <!-- -->OS</h2><p class="text--truncate cardDescription_PWke" title="I Need Help with a Build / System Configuration. Where do I go?">I Need Help with a Build / System Configuration. Where do I go?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/faq/redeem-license-activation-code/"><h2 class="text--truncate cardTitle_rnsV" title="Redeem License Activation Code">📄️<!-- --> <!-- -->Redeem License Activation Code</h2><p class="text--truncate cardDescription_PWke" title="First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.">First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/faq/unraid-account/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Account">📄️<!-- --> <!-- -->Unraid Account</h2><p class="text--truncate cardDescription_PWke" title="What is an Unraid.net Account?">What is an Unraid.net Account?</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/release-notes/6.9.2/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">6.9.2</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Licensing</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/getting-started/index.html b/category/getting-started/index.html index b251043d1..561951ca7 100644 --- a/category/getting-started/index.html +++ b/category/getting-started/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/guides/index.html b/category/guides/index.html index 7806e2f1b..fa0dea591 100644 --- a/category/guides/index.html +++ b/category/guides/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Guides</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Guides</h1><p>Unraid OS Guides</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/guides/configuring-time-machine/"><h2 class="text--truncate cardTitle_rnsV" title="Apple Time Machine">📄️<!-- --> <!-- -->Apple Time Machine</h2><p class="text--truncate cardDescription_PWke" title="Guide: Setting up a Time Machine Share on your Unraid Server">Guide: Setting up a Time Machine Share on your Unraid Server</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/guides/wol-setup-for-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="How To Setup Wake On LAN (WOL) for UNRAID">📄️<!-- --> <!-- -->How To Setup Wake On LAN (WOL) for UNRAID</h2><p class="text--truncate cardDescription_PWke" title="(assuming onboard NIC and WOL activated in motherboard's BIOS)">(assuming onboard NIC and WOL activated in motherboard's BIOS)</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Unraid Account</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Apple Time Machine</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/legacy-documentation/index.html b/category/legacy-documentation/index.html index ce178280e..e778cd73d 100644 --- a/category/legacy-documentation/index.html +++ b/category/legacy-documentation/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/legacy/Articles/dual-boot-unraid-and-windows/">Articles</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/legacy/FAQ/Parity/">FAQ</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Legacy Documentation</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Legacy Documentation</h1><p>Unraid OS Documentation ported from legacy.wiki.unraid.net</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/legacy/Articles/dual-boot-unraid-and-windows/"><h2 class="text--truncate cardTitle_rnsV" title="Articles">🗃️<!-- --> <!-- -->Articles</h2><p class="text--truncate cardDescription_PWke" title="3 items">3 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/legacy/FAQ/Parity/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="16 items">16 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/connect/remote-access/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Remote Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/manual/index.html b/category/manual/index.html index 89165a8cb..bb8968799 100644 --- a/category/manual/index.html +++ b/category/manual/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">📄️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="Once you have assigned some devices to Unraid and started the array, you">Once you have assigned some devices to Unraid and started the array, you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">📄️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="This section covers various security-related aspects of Unraid">This section covers various security-related aspects of Unraid</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 items">1 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/manual/what-is-unraid/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Overview</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">🗃️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="5 items">5 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">🗃️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="5 items">5 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 items">1 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Shares</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/release-notes/index.html b/category/release-notes/index.html index a66d56661..21bbc3f76 100644 --- a/category/release-notes/index.html +++ b/category/release-notes/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="true" tabindex="0" href="/unraid-os/release-notes/6.12.0/">6.12</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/release-notes/6.12.0/">6.12.0</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/release-notes/6.12.1/">6.12.1</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/release-notes/6.12.2/">6.12.2</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/release-notes/6.12.3/">6.12.3</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/unraid-os/release-notes/6.11.0/">6.11</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/unraid-os/release-notes/6.10.0/">6.10</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/unraid-os/release-notes/6.9.0/">6.9</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Release Notes</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Release Notes</h1><p>Unraid Release Notes</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/release-notes/6.12.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.12">🗃️<!-- --> <!-- -->6.12</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/release-notes/6.11.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.11">🗃️<!-- --> <!-- -->6.11</h2><p class="text--truncate cardDescription_PWke" title="6 items">6 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/release-notes/6.10.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.10">🗃️<!-- --> <!-- -->6.10</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/release-notes/6.9.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.9">🗃️<!-- --> <!-- -->6.9</h2><p class="text--truncate cardDescription_PWke" title="3 items">3 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/category/unraid-os/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Unraid OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/release-notes/6.12.0/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Version 6.12.0 2023-06-14</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/tutorial---basics/index.html b/category/tutorial---basics/index.html index cd6ce881d..77a91f983 100644 --- a/category/tutorial---basics/index.html +++ b/category/tutorial---basics/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Basics</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Basics</h1><p>5 minutes to learn the most important Docusaurus concepts.</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/tutorial-basics/create-a-page/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Page">📄️<!-- --> <!-- -->Create a Page</h2><p class="text--truncate cardDescription_PWke" title="Add Markdown or React files to src/pages to create a standalone page:">Add Markdown or React files to src/pages to create a standalone page:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/tutorial-basics/create-a-document/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Document">📄️<!-- --> <!-- -->Create a Document</h2><p class="text--truncate cardDescription_PWke" title="Documents are groups of pages connected through:">Documents are groups of pages connected through:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Blog Post">📄️<!-- --> <!-- -->Create a Blog Post</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...">Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/tutorial-basics/markdown-features/"><h2 class="text--truncate cardTitle_rnsV" title="Markdown Features">📄️<!-- --> <!-- -->Markdown Features</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus supports Markdown and a few additional features.">Docusaurus supports Markdown and a few additional features.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/tutorial-basics/congratulations/"><h2 class="text--truncate cardTitle_rnsV" title="Congratulations">📄️<!-- --> <!-- -->Congratulations</h2><p class="text--truncate cardDescription_PWke" title="You have just learned the basics of Docusaurus and made some changes to the initial template.">You have just learned the basics of Docusaurus and made some changes to the initial template.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Create a Page</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/tutorial---extras/index.html b/category/tutorial---extras/index.html index b64711a03..e657f8574 100644 --- a/category/tutorial---extras/index.html +++ b/category/tutorial---extras/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Extras</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Extras</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/tutorial-extras/manage-docs-versions/"><h2 class="text--truncate cardTitle_rnsV" title="Manage Docs Versions">📄️<!-- --> <!-- -->Manage Docs Versions</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus can manage multiple versions of your docs.">Docusaurus can manage multiple versions of your docs.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/contribute-to-docs/tutorial-extras/translate-your-site/"><h2 class="text--truncate cardTitle_rnsV" title="Translate your site">📄️<!-- --> <!-- -->Translate your site</h2><p class="text--truncate cardDescription_PWke" title="Let's translate docs/intro.md to French.">Let's translate docs/intro.md to French.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Congratulations</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/unraid-connect/index.html b/category/unraid-connect/index.html index d6ad3edbd..78304331c 100644 --- a/category/unraid-connect/index.html +++ b/category/unraid-connect/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid Connect</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid Connect</h1><p>Unraid Connect Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/connect/about/"><h2 class="text--truncate cardTitle_rnsV" title="About Unraid Connect">📄️<!-- --> <!-- -->About Unraid Connect</h2><p class="text--truncate cardDescription_PWke" title="What is Unraid Connect?">What is Unraid Connect?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/connect/help/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Connect Help">📄️<!-- --> <!-- -->Unraid Connect Help</h2><p class="text--truncate cardDescription_PWke" title="How to Install">How to Install</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/connect/remote-access/"><h2 class="text--truncate cardTitle_rnsV" title="Remote Access">📄️<!-- --> <!-- -->Remote Access</h2><p class="text--truncate cardDescription_PWke" title="The Remote Access feature">The Remote Access feature</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">About</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/connect/about/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">About Unraid Connect</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/unraid-os/index.html b/category/unraid-os/index.html index 78a62c432..ee9b4c111 100644 --- a/category/unraid-os/index.html +++ b/category/unraid-os/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid OS</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid OS</h1><p>Unraid OS Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/release-notes/"><h2 class="text--truncate cardTitle_rnsV" title="Release Notes">🗃️<!-- --> <!-- -->Release Notes</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/faq/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/guides/"><h2 class="text--truncate cardTitle_rnsV" title="Guides">🗃️<!-- --> <!-- -->Guides</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/category/manual/"><h2 class="text--truncate cardTitle_rnsV" title="Manual">🗃️<!-- --> <!-- -->Manual</h2><p class="text--truncate cardDescription_PWke" title="17 items">17 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Home</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/category/release-notes/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Release Notes</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/category/zfs/index.html b/category/zfs/index.html index efebe1f4a..3c4ec518d 100644 --- a/category/zfs/index.html +++ b/category/zfs/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/connect/about/index.html b/connect/about/index.html index 31d03e280..38b3fccea 100644 --- a/connect/about/index.html +++ b/connect/about/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -22,7 +22,7 @@ Unraid Server with a suite of new features including Dynamic Remote Access, Server Deep Linking, Server management from the Connect UI, Online flash backups, Real-time monitoring, and much more!</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="launch-unraid-connect"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer"><strong>Launch Unraid Connect</strong></a><a href="#launch-unraid-connect" class="hash-link" aria-label="Direct link to launch-unraid-connect" title="Direct link to launch-unraid-connect">​</a></h2></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/about.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/category/unraid-connect/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/connect/help/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Unraid Connect Help</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-unraid-connect" class="table-of-contents__link toc-highlight"><strong>What is Unraid Connect?</strong></a></li><li><a href="#launch-unraid-connect" class="table-of-contents__link toc-highlight"><strong>Launch Unraid Connect</strong></a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/connect/help/index.html b/connect/help/index.html index 00e717202..93dc97a2e 100644 --- a/connect/help/index.html +++ b/connect/help/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -152,7 +152,7 @@ UPC please open a terminal window and type:</p><p><code>unraid-api restart</code></p><p>If you have other Unraid Connect Support related questions, please see our <a href="https://forums.unraid.net/" target="_blank" rel="noopener noreferrer">Unraid Connect user forum</a> or <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">contact us</a> to open a support ticket.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/help.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/connect/about/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">About Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/connect/remote-access/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Remote Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-to-install" class="table-of-contents__link toc-highlight"><strong>How to Install</strong></a></li><li><a href="#unraid-connect-dashboard" class="table-of-contents__link toc-highlight"><strong>Unraid Connect Dashboard</strong></a><ul><li><a href="#manage-your-server-from-within-the-connect-ui" class="table-of-contents__link toc-highlight"><strong>Manage Your Server From Within the Connect UI</strong></a></li><li><a href="#a-note-regarding-dns-rebinding-protection" class="table-of-contents__link toc-highlight">A note regarding DNS Rebinding Protection</a></li><li><a href="#how-to-access-your-server-when-dns-is-down" class="table-of-contents__link toc-highlight">How to access your server when DNS is down</a></li><li><a href="#how-to-disable-ssl-for-local-access" class="table-of-contents__link toc-highlight">How to disable SSL for local access</a></li></ul></li><li><a href="#automated-flash-backup" class="table-of-contents__link toc-highlight"><strong>Automated Flash Backup</strong></a><ul><li><a href="#enabling-flash-backup-optional" class="table-of-contents__link toc-highlight">Enabling Flash Backup (optional)</a></li><li><a href="#restoring-flash-backup" class="table-of-contents__link toc-highlight">Restoring Flash Backup</a></li></ul></li><li><a href="#server-deep-linking" class="table-of-contents__link toc-highlight"><strong>Server Deep Linking</strong></a></li><li><a href="#customizable-dashboard-server-banner-image-and-themes" class="table-of-contents__link toc-highlight"><strong>Customizable Dashboard, Server Banner Image and Themes</strong></a></li><li><a href="#license-management" class="table-of-contents__link toc-highlight"><strong>License Management</strong></a></li><li><a href="#language-localization" class="table-of-contents__link toc-highlight"><strong>Language Localization</strong></a></li><li><a href="#signing-out" class="table-of-contents__link toc-highlight">Signing Out</a></li><li><a href="#uninstalling-the-plugin" class="table-of-contents__link toc-highlight">Uninstalling the plugin</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a><ul><li><a href="#data-we-store" class="table-of-contents__link toc-highlight">Data We Store</a></li><li><a href="#flash-backups-are-not-encrypted" class="table-of-contents__link toc-highlight">Flash Backups are Not Encrypted</a></li><li><a href="#sensitive-data" class="table-of-contents__link toc-highlight">Sensitive Data</a></li></ul></li><li><a href="#connect-troubleshooting" class="table-of-contents__link toc-highlight">Connect Troubleshooting</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/connect/remote-access/index.html b/connect/remote-access/index.html index c793eb76e..a89ec3339 100644 --- a/connect/remote-access/index.html +++ b/connect/remote-access/index.html @@ -9,16 +9,16 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/unraid-connect/"><span itemprop="name">Unraid Connect</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Remote Access</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Remote Access</h1><p><img loading="lazy" src="/assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png" width="812" height="283" class="img_ev3q"></p><p>The Remote Access feature allows you to access your Unraid webgui from the Internet. If you need access to Docker containers, network drives, or other devices on your -network, you'll want to <a href="/unraid-os/manual/security/#vpn">setup a +network, you'll want to <a href="/unraid-os/manual/security.md/#vpn">setup a VPN</a> instead.</p><p><strong>Note: Before enabling remote access, consider your root password. Is it sufficiently complex? Update your root password on the Users page.</strong></p><p>Also note: <strong>Remote Access is an optional feature</strong>, and is not required to use the rest of Unraid Connect.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="remote-access---initial-setup">Remote Access - <strong>Initial Setup</strong><a href="#remote-access---initial-setup" class="hash-link" aria-label="Direct link to remote-access---initial-setup" title="Direct link to remote-access---initial-setup">​</a></h2><ol><li>From Unraid webGUI Navigate to <strong>Settings</strong> → <strong>Management Access</strong></li><li>Note the <strong>HTTPS port</strong>, it defaults to port 443. If you have Docker @@ -81,7 +81,7 @@ Internet connection drops you will likely lose access to your server's webgui. See <a href="/connect/help/#how-to-access-your-server-when-dns-is-down">How to access your server when DNS is down</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/connect/help/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Unraid Connect Help</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/category/legacy-documentation/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Legacy Documentation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#remote-access---initial-setup" class="table-of-contents__link toc-highlight">Remote Access - <strong>Initial Setup</strong></a><ul><li><a href="#remote-access---choose-remote-access-type" class="table-of-contents__link toc-highlight">Remote Access - <strong>Choose Remote Access Type</strong></a></li></ul></li><li><a href="#dynamic-remote-access" class="table-of-contents__link toc-highlight"><strong>Dynamic Remote Access</strong></a><ul><li><a href="#dynamic-remote-access-usage" class="table-of-contents__link toc-highlight">Dynamic Remote Access Usage</a></li><li><a href="#configuring-upnp-applies-to-dynamic---upnp--always-on---upnp" class="table-of-contents__link toc-highlight">Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)</a></li><li><a href="#configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward" class="table-of-contents__link toc-highlight">Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/intro/index.html b/contribute-to-docs/intro/index.html index 2b38ffff2..b718da441 100644 --- a/contribute-to-docs/intro/index.html +++ b/contribute-to-docs/intro/index.html @@ -9,15 +9,15 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contributing to Unraid Documentation</span><meta itemprop="position" content="2"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Contributing to Unraid Documentation</h1><p><strong>Contribute to a Docs Page that already Exists</strong> If you want to contribute to an Unraid Docs page that already exists, there is an "Edit this page" button at the bottom of every page.</p><p>Clicking this will take you to github, where you can click on the edit pencil in the far right to fork the repository, make edits on your own branch, and then commit Pull Requests to Main.</p><p>Unraid Docs are built using Docusaurus which uses <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features" target="_blank" rel="noopener noreferrer">Markdown</a>, so please use the proper formatting outlined there for <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#links" target="_blank" rel="noopener noreferrer">links</a>, <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#code-blocks" target="_blank" rel="noopener noreferrer">code blocks</a>, and <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#admonitions" target="_blank" rel="noopener noreferrer">admonitions</a>. </p><p><strong>Creating a New Docs Page</strong></p><p>To create a new Docs page, for example an Unraid Guide, in github, go to <a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides" target="_blank" rel="noopener noreferrer">docs/unraid-os/guides</a> and click "Add file" on the right to add a new Guides page. From there, name your file/guide and ensure it ends with ".md". Also, please ensure filenames are <em>lower case</em> and have <em>dashes separating-any-words</em> (Ex: wake-on-lan.md) Next, add the guide info and styling and then commit your changes. Then, a LimeTech employee will review and merge if everything looks good.</p><p>Thank you in advance for any and all submissions and edits. Making living technical documentation would be impossible without community involvement!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/intro.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/category/contribute/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Contribute</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/category/tutorial---basics/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Tutorial - Basics</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/tutorial-basics/congratulations/index.html b/contribute-to-docs/tutorial-basics/congratulations/index.html index 0ea926281..39baf5a36 100644 --- a/contribute-to-docs/tutorial-basics/congratulations/index.html +++ b/contribute-to-docs/tutorial-basics/congratulations/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Congratulations</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Congratulations</h1><p>You have just learned the <strong>basics of Docusaurus</strong> and made some changes to the <strong>initial template</strong>.</p><p>Docusaurus has <strong>much more to offer</strong>!</p><p>Have <strong>5 more minutes</strong>? Take a look at <strong><a href="/contribute-to-docs/tutorial-extras/manage-docs-versions/">versioning</a></strong> and <strong><a href="/contribute-to-docs/tutorial-extras/translate-your-site/">i18n</a></strong>.</p><p>Anything <strong>unclear</strong> or <strong>buggy</strong> in this tutorial? <a href="https://github.com/facebook/docusaurus/discussions/4610" target="_blank" rel="noopener noreferrer">Please report it!</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-next">What's next?<a href="#whats-next" class="hash-link" aria-label="Direct link to What's next?" title="Direct link to What's next?">​</a></h2><ul><li>Read the <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">official documentation</a></li><li>Modify your site configuration with <a href="https://docusaurus.io/docs/api/docusaurus-config" target="_blank" rel="noopener noreferrer"><code>docusaurus.config.js</code></a></li><li>Add navbar and footer items with <a href="https://docusaurus.io/docs/api/themes/configuration" target="_blank" rel="noopener noreferrer"><code>themeConfig</code></a></li><li>Add a custom <a href="https://docusaurus.io/docs/styling-layout" target="_blank" rel="noopener noreferrer">Design and Layout</a></li><li>Add a <a href="https://docusaurus.io/docs/search" target="_blank" rel="noopener noreferrer">search bar</a></li><li>Find inspirations in the <a href="https://docusaurus.io/showcase" target="_blank" rel="noopener noreferrer">Docusaurus showcase</a></li><li>Get involved in the <a href="https://docusaurus.io/community/support" target="_blank" rel="noopener noreferrer">Docusaurus Community</a></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/congratulations.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Markdown Features</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/category/tutorial---extras/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Tutorial - Extras</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#whats-next" class="table-of-contents__link toc-highlight">What's next?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html b/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html index ee15f54c3..598a8e0f9 100644 --- a/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html +++ b/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Blog Post</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Create a Blog Post</h1><p>Docusaurus creates a <strong>page for each blog post</strong>, but also a <strong>blog index page</strong>, a <strong>tag system</strong>, an <strong>RSS</strong> feed...</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-post">Create your first Post<a href="#create-your-first-post" class="hash-link" aria-label="Direct link to Create your first Post" title="Direct link to Create your first Post">​</a></h2><p>Create a file at <code>blog/2021-02-28-greetings.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">blog/2021-02-28-greetings.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">slug</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> greetings</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Greetings</span><span class="token front-matter-block front-matter yaml language-yaml tag" style="color:rgb(255, 121, 198)">!</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">authors</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Joel Marcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Co</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml">creator of Docusaurus 1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Sébastien Lorber</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Docusaurus maintainer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//sebastienlorber.com</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/slorber.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">tags</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token front-matter-block front-matter yaml language-yaml">greetings</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Congratulations, you have made your first post!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Feel free to play around and edit this post as much you like.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new blog post is now available at <a href="http://localhost:3000/blog/greetings" target="_blank" rel="noopener noreferrer">http://localhost:3000/blog/greetings</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Create a Document</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Markdown Features</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-post" class="table-of-contents__link toc-highlight">Create your first Post</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/tutorial-basics/create-a-document/index.html b/contribute-to-docs/tutorial-basics/create-a-document/index.html index 6de4f6831..1b1ceea46 100644 --- a/contribute-to-docs/tutorial-basics/create-a-document/index.html +++ b/contribute-to-docs/tutorial-basics/create-a-document/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Document</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Create a Document</h1><p>Documents are <strong>groups of pages</strong> connected through:</p><ul><li>a <strong>sidebar</strong></li><li><strong>previous/next navigation</strong></li><li><strong>versioning</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-doc">Create your first Doc<a href="#create-your-first-doc" class="hash-link" aria-label="Direct link to Create your first Doc" title="Direct link to Create your first Doc">​</a></h2><p>Create a Markdown file at <code>docs/hello.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new document is now available at <a href="http://localhost:3000/docs/hello" target="_blank" rel="noopener noreferrer">http://localhost:3000/docs/hello</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-the-sidebar">Configure the Sidebar<a href="#configure-the-sidebar" class="hash-link" aria-label="Direct link to Configure the Sidebar" title="Direct link to Configure the Sidebar">​</a></h2><p>Docusaurus automatically <strong>creates a sidebar</strong> from the <code>docs</code> folder.</p><p>Add metadata to customize the sidebar label and position:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_label</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml string" style="color:rgb(255, 121, 198)">"Hi!"</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_position</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml number">3</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It is also possible to create your sidebar explicitly in <code>sidebars.js</code>:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">sidebars.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">tutorialSidebar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"intro"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"hello"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"category"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">label</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Tutorial"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"tutorial-basics/create-a-document"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-document.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Create a Page</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Create a Blog Post</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-doc" class="table-of-contents__link toc-highlight">Create your first Doc</a></li><li><a href="#configure-the-sidebar" class="table-of-contents__link toc-highlight">Configure the Sidebar</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/tutorial-basics/create-a-page/index.html b/contribute-to-docs/tutorial-basics/create-a-page/index.html index 1b2a2fa8b..3989134cf 100644 --- a/contribute-to-docs/tutorial-basics/create-a-page/index.html +++ b/contribute-to-docs/tutorial-basics/create-a-page/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Page</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Create a Page</h1><p>Add <strong>Markdown or React</strong> files to <code>src/pages</code> to create a <strong>standalone page</strong>:</p><ul><li><code>src/pages/index.js</code> → <code>localhost:3000/</code></li><li><code>src/pages/foo.md</code> → <code>localhost:3000/foo</code></li><li><code>src/pages/foo/bar.js</code> → <code>localhost:3000/foo/bar</code></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-react-page">Create your first React Page<a href="#create-your-first-react-page" class="hash-link" aria-label="Direct link to Create your first React Page" title="Direct link to Create your first React Page">​</a></h2><p>Create a file at <code>src/pages/my-react-page.js</code>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-react-page.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"react"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">Layout</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"@theme/Layout"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">default</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">MyReactPage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">My React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">This is a React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-react-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-react-page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-markdown-page">Create your first Markdown Page<a href="#create-your-first-markdown-page" class="hash-link" aria-label="Direct link to Create your first Markdown Page" title="Direct link to Create your first Markdown Page">​</a></h2><p>Create a file at <code>src/pages/my-markdown-page.md</code>:</p><div class="language-mdx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-markdown-page.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-mdx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># My Markdown page</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is a Markdown page</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-markdown-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-markdown-page</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-page.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/category/tutorial---basics/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Tutorial - Basics</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Create a Document</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-react-page" class="table-of-contents__link toc-highlight">Create your first React Page</a></li><li><a href="#create-your-first-markdown-page" class="table-of-contents__link toc-highlight">Create your first Markdown Page</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/tutorial-basics/markdown-features/index.html b/contribute-to-docs/tutorial-basics/markdown-features/index.html index e6c8cb409..2aca5cae0 100644 --- a/contribute-to-docs/tutorial-basics/markdown-features/index.html +++ b/contribute-to-docs/tutorial-basics/markdown-features/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Markdown Features</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Markdown Features</h1><p>Docusaurus supports <strong><a href="https://daringfireball.net/projects/markdown/syntax" target="_blank" rel="noopener noreferrer">Markdown</a></strong> and a few <strong>additional features</strong>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="front-matter">Front Matter<a href="#front-matter" class="hash-link" aria-label="Direct link to Front Matter" title="Direct link to Front Matter">​</a></h2><p>Markdown documents have metadata at the top called <a href="https://jekyllrb.com/docs/front-matter/" target="_blank" rel="noopener noreferrer">Front Matter</a>:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">my-doc.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">id: my-doc-id</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">title: My document title</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">description: My document description</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">slug: /my-custom-url</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">## Markdown heading</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Markdown text with [links](./hello.md)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="links">Links<a href="#links" class="hash-link" aria-label="Direct link to Links" title="Direct link to Links">​</a></h2><p>Regular Markdown links are supported, using url paths or relative file paths.</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">/create-a-page</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">./create-a-page.md</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Result:</strong> Let's see how to <a href="/contribute-to-docs/tutorial-basics/create-a-page/">Create a page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="images">Images<a href="#images" class="hash-link" aria-label="Direct link to Images" title="Direct link to Images">​</a></h2><p>Regular Markdown images are supported.</p><p>You can use absolute paths to reference images in the static directory (<code>static/img/docusaurus.png</code>):</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">/img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" alt="Docusaurus logo" src="data:image/png;base64,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" width="200" height="200" class="img_ev3q"></p><p>You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">./img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="code-blocks">Code Blocks<a href="#code-blocks" class="hash-link" aria-label="Direct link to Code Blocks" title="Direct link to Code Blocks">​</a></h2><p>Markdown code blocks are supported with Syntax highlighting.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">```jsx title="src/components/HelloDocusaurus.js"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">function HelloDocusaurus() {</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> return (</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> <h1>Hello, Docusaurus!</h1></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> )</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">```</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/components/HelloDocusaurus.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">HelloDocusaurus</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Hello, Docusaurus!</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="admonitions">Admonitions<a href="#admonitions" class="hash-link" aria-label="Direct link to Admonitions" title="Direct link to Admonitions">​</a></h2><p>Docusaurus has a special syntax to create admonitions and callouts:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::tip My tip</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Use this awesome feature option</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::danger Take care</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This action is dangerous</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="theme-admonition theme-admonition-tip alert alert--success admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>My tip</div><div class="admonitionContent_S0QG"><p>Use this awesome feature option</p></div></div><div class="theme-admonition theme-admonition-danger alert alert--danger admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Take care</div><div class="admonitionContent_S0QG"><p>This action is dangerous</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="mdx-and-react-components">MDX and React Components<a href="#mdx-and-react-components" class="hash-link" aria-label="Direct link to MDX and React Components" title="Direct link to MDX and React Components">​</a></h2><p><a href="https://mdxjs.com/" target="_blank" rel="noopener noreferrer">MDX</a> can make your documentation more <strong>interactive</strong> and allows using any <strong>React components inside Markdown</strong>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function maybe-class-name" style="color:rgb(80, 250, 123)">Highlight</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token parameter">children</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token parameter"> color</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=></span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">style</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">backgroundColor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> color</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">borderRadius</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'20px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'#fff'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">padding</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'10px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">cursor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'pointer'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=></span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">alert</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)">You clicked the color </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)"> with label </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">children</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#25c2a0</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Docusaurus green</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#1877F2</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Facebook blue</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is <span style="background-color:#25c2a0;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Docusaurus green</span> !</p><p>This is <span style="background-color:#1877F2;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Facebook blue</span> !</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Create a Blog Post</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Congratulations</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#front-matter" class="table-of-contents__link toc-highlight">Front Matter</a></li><li><a href="#links" class="table-of-contents__link toc-highlight">Links</a></li><li><a href="#images" class="table-of-contents__link toc-highlight">Images</a></li><li><a href="#code-blocks" class="table-of-contents__link toc-highlight">Code Blocks</a></li><li><a href="#admonitions" class="table-of-contents__link toc-highlight">Admonitions</a></li><li><a href="#mdx-and-react-components" class="table-of-contents__link toc-highlight">MDX and React Components</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html b/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html index b679c900d..f80bf5a24 100644 --- a/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html +++ b/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manage Docs Versions</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Manage Docs Versions</h1><p>Docusaurus can manage multiple versions of your docs.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-a-docs-version">Create a docs version<a href="#create-a-docs-version" class="hash-link" aria-label="Direct link to Create a docs version" title="Direct link to Create a docs version">​</a></h2><p>Release a version 1.0 of your project:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run docusaurus docs:version </span><span class="token number">1.0</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The <code>docs</code> folder is copied into <code>versioned_docs/version-1.0</code> and <code>versions.json</code> is created.</p><p>Your docs now have 2 versions:</p><ul><li><code>1.0</code> at <code>http://localhost:3000/docs/</code> for the version 1.0 docs</li><li><code>current</code> at <code>http://localhost:3000/docs/next/</code> for the <strong>upcoming, unreleased docs</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-version-dropdown">Add a Version Dropdown<a href="#add-a-version-dropdown" class="hash-link" aria-label="Direct link to Add a Version Dropdown" title="Direct link to Add a Version Dropdown">​</a></h2><p>To navigate seamlessly across versions, add a version dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"docsVersionDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The docs version dropdown appears in your navbar:</p><p><img loading="lazy" alt="Docs Version Dropdown" src="/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="update-an-existing-version">Update an existing version<a href="#update-an-existing-version" class="hash-link" aria-label="Direct link to Update an existing version" title="Direct link to Update an existing version">​</a></h2><p>It is possible to edit versioned docs in their respective folder:</p><ul><li><code>versioned_docs/version-1.0/hello.md</code> updates <code>http://localhost:3000/docs/hello</code></li><li><code>docs/hello.md</code> updates <code>http://localhost:3000/docs/next/hello</code></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/category/tutorial---extras/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Tutorial - Extras</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/contribute-to-docs/tutorial-extras/translate-your-site/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Translate your site</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-a-docs-version" class="table-of-contents__link toc-highlight">Create a docs version</a></li><li><a href="#add-a-version-dropdown" class="table-of-contents__link toc-highlight">Add a Version Dropdown</a></li><li><a href="#update-an-existing-version" class="table-of-contents__link toc-highlight">Update an existing version</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/contribute-to-docs/tutorial-extras/translate-your-site/index.html b/contribute-to-docs/tutorial-extras/translate-your-site/index.html index b09c2cfdc..a4f603368 100644 --- a/contribute-to-docs/tutorial-extras/translate-your-site/index.html +++ b/contribute-to-docs/tutorial-extras/translate-your-site/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/assets/js/runtime~main.59c59235.js" as="script"> -<link rel="preload" href="/assets/js/main.b41d83e9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/assets/js/runtime~main.4e8da702.js" as="script"> +<link rel="preload" href="/assets/js/main.9f5bb88f.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Translate your site</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Translate your site</h1><p>Let's translate <code>docs/intro.md</code> to French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-i18n">Configure i18n<a href="#configure-i18n" class="hash-link" aria-label="Direct link to Configure i18n" title="Direct link to Configure i18n">​</a></h2><p>Modify <code>docusaurus.config.js</code> to add support for the <code>fr</code> locale:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">i18n</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">defaultLocale</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">locales</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"fr"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="translate-a-doc">Translate a doc<a href="#translate-a-doc" class="hash-link" aria-label="Direct link to Translate a doc" title="Direct link to Translate a doc">​</a></h2><p>Copy the <code>docs/intro.md</code> file to the <code>i18n/fr</code> folder:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">mkdir</span><span class="token plain"> -p i18n/fr/docusaurus-plugin-content-docs/current/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">cp</span><span class="token plain"> docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Translate <code>i18n/fr/docusaurus-plugin-content-docs/current/intro.md</code> in French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="start-your-localized-site">Start your localized site<a href="#start-your-localized-site" class="hash-link" aria-label="Direct link to Start your localized site" title="Direct link to Start your localized site">​</a></h2><p>Start your site on the French locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run start -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Your localized site is accessible at <a href="http://localhost:3000/fr/" target="_blank" rel="noopener noreferrer">http://localhost:3000/fr/</a> and the <code>Getting Started</code> page is translated.</p><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_S0QG"><p>In development, you can only use one locale at a same time.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-locale-dropdown">Add a Locale Dropdown<a href="#add-a-locale-dropdown" class="hash-link" aria-label="Direct link to Add a Locale Dropdown" title="Direct link to Add a Locale Dropdown">​</a></h2><p>To navigate seamlessly across languages, add a locale dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"localeDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The locale dropdown now appears in your navbar:</p><p><img loading="lazy" alt="Locale Dropdown" src="/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="build-your-localized-site">Build your localized site<a href="#build-your-localized-site" class="hash-link" aria-label="Direct link to Build your localized site" title="Direct link to Build your localized site">​</a></h2><p>Build your site for a specific locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Or build your site to include all the locales at once:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/translate-your-site.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#configure-i18n" class="table-of-contents__link toc-highlight">Configure i18n</a></li><li><a href="#translate-a-doc" class="table-of-contents__link toc-highlight">Translate a doc</a></li><li><a href="#start-your-localized-site" class="table-of-contents__link toc-highlight">Start your localized site</a></li><li><a href="#add-a-locale-dropdown" class="table-of-contents__link toc-highlight">Add a Locale Dropdown</a></li><li><a href="#build-your-localized-site" class="table-of-contents__link toc-highlight">Build your localized site</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/assets/js/runtime~main.59c59235.js"></script> -<script src="/assets/js/main.b41d83e9.js"></script> +<script src="/assets/js/runtime~main.4e8da702.js"></script> +<script src="/assets/js/main.9f5bb88f.js"></script> </body> </html> \ No newline at end of file diff --git a/de/404.html b/de/404.html index 2cdec5dd9..d723f4013 100644 --- a/de/404.html +++ b/de/404.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/404" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/404" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/404" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/404" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/404" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><main class="container margin-vert--xl"><div class="row"><div class="col col--6 col--offset-3"><h1 class="hero__title">Seite nicht gefunden</h1><p>Wir konnten nicht finden, wonach Sie gesucht haben.</p><p>Bitte kontaktieren Sie den Besitzer der Seite, die Sie mit der ursprünglichen URL verlinkt hat, und teilen Sie ihm mit, dass der Link nicht mehr funktioniert.</p></div></div></main></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/assets/css/styles.2c43762e.css b/de/assets/css/styles.2c43762e.css new file mode 100644 index 000000000..3b34bd753 --- /dev/null +++ b/de/assets/css/styles.2c43762e.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 256 256"><g><g><polygon points="79.093,0 48.907,30.187 146.72,128 48.907,225.813 79.093,256 207.093,128"/></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(0,0,0,0.5)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,<svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="16px" width="16px"><path d="M6.02945,10.20327a4.17382,4.17382,0,1,1,4.17382-4.17382A4.15609,4.15609,0,0,1,6.02945,10.20327Zm9.69195,4.2199L10.8989,9.59979A5.88021,5.88021,0,0,0,12.058,6.02856,6.00467,6.00467,0,1,0,9.59979,10.8989l4.82338,4.82338a.89729.89729,0,0,0,1.29912,0,.89749.89749,0,0,0-.00087-1.29909Z" /></svg>');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/de/assets/css/styles.5dd3a1e0.css b/de/assets/css/styles.5dd3a1e0.css deleted file mode 100644 index 60ad42e6b..000000000 --- a/de/assets/css/styles.5dd3a1e0.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 256 256"><g><g><polygon points="79.093,0 48.907,30.187 146.72,128 48.907,225.813 79.093,256 207.093,128"/></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path fill="rgba(0,0,0,0.5)" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></svg>');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,<svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="16px" width="16px"><path d="M6.02945,10.20327a4.17382,4.17382,0,1,1,4.17382-4.17382A4.15609,4.15609,0,0,1,6.02945,10.20327Zm9.69195,4.2199L10.8989,9.59979A5.88021,5.88021,0,0,0,12.058,6.02856,6.00467,6.00467,0,1,0,9.59979,10.8989l4.82338,4.82338a.89729.89729,0,0,0,1.29912,0,.89749.89749,0,0,0-.00087-1.29909Z" /></svg>');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/de/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG b/de/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG deleted file mode 100644 index 1875d64774735d7928639130ffdb74e1b546e80a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56760 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 BeH8!z diff --git a/de/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG b/de/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG deleted file mode 100644 index 46e8f061547b2597e889a6e93c7b53c83131142c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64484 zcmeFZ2S8I_wl5q6=|~4bAV?AEy-15n2P4u2gwR_Aqz4E@Q9zmq2q-NU5Rj%+krFy0 zAX2241Qetvln@|<7iZ?1dEeZ*@7{U$e(!$oz5gK__Brfx_Flie_S&nRoKBvi0W8M) zM*08>3JL&>`~x_}u*~YgygdK_Fc=^K003wKR1_M3GvpdI`NTNh8$d;_Q;_So^74QG z1uy~tET7l-05s%l<T^l`TmXD)<X^PEYkwSnAn*qQe<1J&0)HUz2Lk^$B5=z+*gX&c zIQx|HPkICgSzjo4O7+)zb$Z&L>Xb_I06=>B-|BzUDQMGw<MxM6@qZ)t{6X^{2>gM- z9|-(`z#j<w4FLr?d3kj?1$B8jK{+{fIYo6PHNZc*1_0awxC4U8g{*;)y&DYYy@G@9 zsmsdx1<5$O`MbEwxcd9b!kq8P%FD>f0yIIed(N&<_h3O6cTaCWEwSw;l$fBmo0gc3 zGFT3LPsiQM+b|-~-6G<qrE3J#^@^JqNSldX6Q&OHz31y5>?{cLz3UgG4$~6))6><- z_1~9eg|syT-8|IIb@l(!f_$bW^p~-Og@wt4Da!Z<ddkXQxpGBTPC-^dL7Ln`Iw;&P z*cm467bN_b2k5#7xdwXQ3-<Q+6a4)^XBYpFU@f7L5N|hi4`&Z$7dJO$X%}ZjH)(l! zH)m;QH${1AH$_D^Rb_cK1rK=_p}%zR=K9y(?}Y^3{Zrp=uCnfT-F@Btf`iCt$jb`J z{&~><S$&cr`fI2E5PmX^<TmO$f$q-1?z-fn{d-EK<rJjl<t+c7X_irvm)Dg2yLOtg zzrpzL2Kt{n@_!dv+L~^z>aM@X?jQK)?k(H{{$sO!*IWBf%JZMeBcJ`bLVhlp>FDU_ zG-dz$F8?J4f4V~EIr4pf<xujSg8vJSKRWrRK>h=+Kj8YO5csDW|G`~<!1Yfd@J}`V zgS-AWgX?cvuDc&uwGAWdu%|Ns9l#k1ir=5V9F%7%e;?FTRFr3FsA*_^7g{<7I$BzK zS{fR9CVF}XM)E;JcaE8f@!aqF?}z-p{r6qu4<juN?e7-<+;Q3lV5Oyabk>%VLI`k% zm4cF$;<O6@B*z@jlB1Nr1C@U{D9%t)ouwuZiJpPnppJz+d`ikQ<iVb$B8Mm`qR9UT zP_dq6yC{E+n%&HqMks(o;X&FfTH)&-+BwaKu_B5tfiZOST-@h*cttOXT^5&6QdUt_ zyP~e6tEX>ZXk=_*X=QD5+t$w2&E3P(%iAX?I3zR-79R2NQEXiN<AlWYjAxly+0S3( zyna(y^tQO9^j&pLZC!oC$Hq?`on75My`THOjEs(bAD@_<n#L?H{rI`O@@sVsx3jyq zk3S$B9{r|^0zmm^vi?fh-_gZNrt1uO4yb5;(?xM6j9e&Lsm@-Mr)IlmM&lg7E~M~) zmg9Qbs}JpT!iwftPM5%8dM*(qj419mX@8>Z-$z)?{}g3^CG2l>O#>JyDaeyY$qE1g zPKd7)F9ZJb3z}wA8sl+NRH@CDur-t--K<m~9f_z>O*<(#0DDy}pA0U$IoD`>_$qH; zPZ_FlB>8~gdu#-AUF_{b3cyVDvhYz*OzSKEx6rh{yTj#*rcnMd=kqwB=S4Sd?gy$r zbokt4eta)1!j*Umc<Sw7hZ*mxwPc5s%hqMaqx@EmcmwC+TvXl*=dnHnCupP(LzIZJ zr+}CmxB#ISw>8=(0Q`jW{n=CWZtj;|XzM&rYf@)K-N`%S(dii<@cH^2%N>vN23O>@ z6%+UTr|j{i!>0f!BsMHs`de*_=gsQc@qO^wS7ThFFW!!Bd(>q1W^Fa`8lErx8k+XB zIMJvW8e((Ew2F#^?<3x5T~Dl3KI^<w2I9GJFDwc)6mWe_Tuh?8Q^V+d+rg2=)wv`N ztFSRHwXo{y<fQ_Q#gCv=L>)~m$Rl61le<;AV5g_QyH&UvTbJ1tIw)nf;7}v_X`u6Q z+AP)lEOjuyVd=6x@j=xDR*NlhcRLADI}zJT4{K_Vpstg7IX%?Hq`w3nmf9$vUxU7o z-n`WGBJrh&kRGM`Cu%px^0U4~X+p6l&L8tNX%Wh#;W%2M+;7>GIBGNMK3cVz85e5m zf7w<jVD9!AiHz3vptrBfT3-rFK7-5m1bo{iabQ9fQwjw-$1}X>N=laU3=8k;Yp^Cp z<acU`$8aTHetG7<wA@Yo*<*P2@rHWNp~jLdkt-5I(}qfPRKZq$C?Z-lXJEQJ><PKn z!$i8$wFvEmPxBh-yL0XA-Mr-rWglErDvef+*YNzcjr;kW%Mr|*-so*!FUYz5RK}rF zSkqO)%j00M>-Ev)F(q_?&fv-&Q{HFwj~_{XGDkIE)IQ++#Xa5OeFV>D6W&bV`GTdJ zrV}pEFn{*U!oT>J$acei;7`t#h3bP%o<h=hWKDKV^d+w>-naR02<!Uw6H*mb!(3~$ zp2_M`4|p;{X}^v;{{jah>ijoP0chFD<J;J+v_&<zZ6zVQJ1%sj8H9l_&#fP|%(9dy z-bu2z45y;C<t!BT^5%$GEZS<d^?(0*EOU6X*5(m`n?!#B4N3&EM4$T=%?Eb1t|!c4 zQcSvYs0-^mF2E|JTKkrzR)wX8zx3b$rc&rPano0a8j5~}Qo8=w2hJTGA@+aqXmQdt z(^H%E81W?szuEK@3HOU)KCe_+<z$y(b}Q+->u}t;bFki)@Pm!xV@m=E|D50uzIX~? zoWE0<`qsxTE)8+=%5U6ab;6pP&3;Z#DbT6MZ1L_&J+qF<3yNQRHmRhqi28{~2p@ZC z`rVG4u;i~V79ouGga+_f9rL+4+uIJdrjiCM_6aQd9!{-J@u8;x>0w;mgDSi9?S9J3 z#Ju1#?_v+h*FF*`eBuvc>ivK`OQbi2s?%cei@OTO;*@U85q3@-W_p1CKNU`_f3NA2 z=yNBTDD+3Wn=Lruu4&+XB4`N}Gval0siw;DQhu=`#CF|dadGmFp*2X^`C|gUMwaoV zXBaTtMi%FZj*lT}5g^CRy^gHd-V`M>^*bpb#}V{cg>DJ0t!8Ov28^*yML`v4XICmN z3+lejYpNgZJWDhi)s}`);=ke=9%{=G{4pz!h><vu-nTsv-~775YJ^Pf_;l1G?yPS< z?_+$Io)?aH;8{raY<(y%&SilsCk=J^swBE6QrdjbXq6`nh~!X#bGX6fGThr4^M@w2 zjqkaA&mossGVa!7>DNA<{gfaWzMRU6?Zk_j5qQw~5X>#C=)yyyYzR8QD+fUouJOL5 zoq>1j`K<lL=F8564@L#;<P-oNjy?n9?nE*G+or=}h+@v@7fxAIL@nP!`|cu5^YoD( z-%Kh!z8Wrvk1kz#%f)FTBkTU{=QisuMXM2jOWR$yLFhbGox&=T#d9=x;oL02ZmDDE z*C~K!k&sqKa9Q3W7{EYvuXRIGy6%0tCLYKzpkP*Sv+ln!e5~e;tlqxA@@;Q{jj-Nr z5*Bfk((`I@h{d#g0j&70?0uGb=tW7SjNFHqUZ2VUJM9Z6S<&YSs+dP4+F=qujNJ(9 zFtFgAd$s19uhYoS>_F7>@xJqq>wj3!+FZF6@xWm+`P_Fu^SbQ)*N_~=TjSeD<10VI zHb#$)VFq}ulULd-FiCtQVIS?E0y(QK4=Vs`&tN|Jus{e8+f2eZ2Z`DBVO$#?_O!-G zh3OqZmxWZ-AZPf)HUzbD>LbW|#N$(d7myilNvJ3$G<BkQ>(uu01tz*I><NJk`nbIM z8r#0&w-+02t-YrTZjEqdP<%JLdJ;kiJC-8K6Rs^)*mrBQ5rWXB41`=qHYQV>5hVtb z3n#ipm$OXOVQ*|j<^<2pJpUQDlriXKguT$V3zJytG(|7aqvB<@rb$uawYfpA%AMeq z7dia7jB)<++`^)yyDK@lcH?`84ypv9m8u0qd({}xi@ZzEL{Hbi{Fk<Sda>CF%|S)5 z42&PrpQ-r(BH-K1O`RHDpAf<`+N_pVn=>Hgo-kM3mt&C5+0nxk<-W)aSVPv!5;=wX zb#OFYriqTc*d8R-wX;AbTNhiE=obvt(lN`hK$)tWUTmL!XPl{TCiWQ!OHnx~U0Rre zVB)(?d1Vtc&9F;t(IPmusn)ztm8CE3937KvYz*#$MedR;q|(K2Yzpb0Z&w~(U0`a~ zctglr56wB30<BPf6k$7du{uE}rSPtuhQE@`wy5p%^6+Uo5sI95VNXs0<Eg}nS&4$( z(W4n6az2`!Gy<yU?mjWW=M#p?R1+&S<(Ib4!mqZB5S2ne(-Jcs^$~h06&=#g6kygS zfwC7rK1iFIY%;}X)O~vwdlEy&>ON`k09e<%5rAXIkn#iYT0ssYg}%I4{<vPtM+xP{ zOvDQ^!U;8F6b`)!2oFdcNs;iPkT7wZfI#Ql_t??D_RcxkiiZZg^ZpW>_}I^Z@k6Xs z*IDP3UVd;W$^-l*G`Z?}xKPcllL7Bgdty4OGJBslv~*MR6fi{Gi1tUcYoNST$>VrM z42@s<`pRGQ5s<d^f<3`lk~-y$2{Y$fK+(kGYgAHcE!ESLGfxzB`o2AYT!#Cdl(&l9 zfzzBMX=+tLb1H@&HJf35Ky34lj&Pq-K&&??G2~-+p`Yh?p^?Z(uZzzOeKW_J91fFj z>r$N5VG$h*j6}^3W75IQ=YB=-*H=ZV6h(0%T{+)5&fS=K`!Un(YPg%9!;DmKI@pEK zgm)wO;%G3LsWEk@fcSaZ2~D1&Lx{^aWu|lE>n1fj&&nMgYF;I%h+hmXnWm%U1P3{w zWWU!P)cIeH|3m^u8-Xmd7o+dO=}w9?q1Z^g%SnE#Dr{+y-iJhsHBHvkL!SaTO#PSK zaQx5aflanc)j0=d39b*#KGqbBOap75x4Z191PRy3ZXDyd7ZHzhJAf2$=Ot#&;x3>7 z>_Cr@`R>Zt*2OU;)H#PK?Zzng3kmS9y11ihu+rH>6~oeoWg*m!I^_L%8XR{=JK9&L zy_FM%HLQEm1&dfRYRER`!Y%d3Z<NQ$O5andoMmLBZ(d-4E1UvYTyaoXq^>__r_;1$ z#OUp=kn<bU*M#jElEY)z1<$$8)xQ6#IB4#B^8|zj4Njp<RXkpf-EBApJS5pg&80lP zC4{+ZwfW?EspU^Sp{|mTlpJWe%hG~md*Qs99tYsRs`THtW1|k*gcO_tY9O0wSR@{D z^8OTXcakJbG{Z7KSV25iv3sPFv)lxA4N;=Qv`8v+Q#}!R>TY;}BTM3H-y-UIVT$|p za)sg;$pN_8F)Q&r4%HQh%c{dBVd6e49yBK6>iQQLZqNGY!|D&sbK@WPwWwSgpUa&7 zD10V1cp;}@5&26?+I6=9&o#D>q=RYTJ;rL~D+s1-KrWCMh=-8dscu}J6Kp}SJH9co zUHj`ty*bBKv|a$;T{()BHng=rk-ZEbHzE!4n*np%5PD1Dt~jx-IYmgz2;2YzNd(Q1 z1jaXmM6nJ!o#{l9KmkKYz2PHm7jCv5H=fCbvgx4*!KQ3J5#X&ih2A+STMq*#a@@PW zSA%8pHS}>x-)hddKJ68GY-=d$=A0)_lZR#A=)*2xOp`-~SYh@U@`{BkFEX<?r$f~X zGG9$kIr?nuC{<3d>n84UrM>723>+}}v0U>^_T0@ZD7Knydwi9o>bZ<0vY-|(6)zf* zm|#JRPg*KqL6*a<tlp{+dQD~5QX}s8W}P>=hSmobp%=8L-U-JVNiRFpr)7FsU){cP zL`kC8@W<}-FRjGE^}LS_2&VV|!Xd`tjQem1e*|f0L%k<8B=9ZNq)D<-*d#Z!VAx*X zu)6D4MV_<$dM@ZbiDt9{E_)XB5H3ljO>+hNBVbidhyXv-mzui&vEgJ&{I~)oE;*Vw zMCd=3Au67{u`q=^Mw}xuEqx!+9D1M1`b*_gN%gMEVS!CSYE5+4Tm#Q^<JYryw#CIE zO^5ZD^+Y{Bi5>u7<RFsjwh5BJ9>iouSAo=+rU|xnw?~@__jCTkDS-B7RlwWUD$bVi z3~FDQeCx#v8ZBwFZ%0H~4U?ABj(bX%Ak&xpr~2{KgkrQmD`9EzNuw)f`^hd`4cmgl zZD<3(JAO~|zgRs6*9mFdyxVd3`2e&YL!~ED58aQyMTmU4HZL{0zh1#^)Ho5G6kZ_} z!gF^ivgxwNq(`E-;e3Kvw!lww%DZ<SKCl%KJVC-~7Ka$1(_Cd}B<-4=SfXFfvE688 zZDe?ba#Gyo8x!&h954D(=sc<NlZGg%->qqoRpo{Z)Lh6eZG}Zv{VCv5#X%D?`4m8d zAWL4pH3;@5Xa;0D(i~9b?b?>}<UWb7`2(Q@9vOncH`#~2@U8n{={@#w?tK<(R=R@W zXMw>}z}Y*)M2lk@q6|SEjbMZ|Epj!Wk&ox)P{^K$gT!e0ehhTx_~YKT%6RW_L`YgN z!A~SH{Dxe)&*oiMaLje)Rh5k2GxiP6AA*@-jxV6D#_sR2OwX={9x;_$+pu&5aro2s zu%<Cf6tc8@uqSJ{?wFy()^jb`?L;Le?ygqg*f)dlw?6e|j#CboFUIsSCVob<&{7Fp zRVu8yAS*j++Gb{2urp&1<UIwnGieJG-YjyrK?G*jTQ82*%>i|A7BjFYCqgPsmqv=r z)TZEzO^<OGU2akLv?-k!+?#ib_4Ast_#vEr#qkx=2vPvyS-~5bui!t!s+3~Tw$mYx zkDNJl9nsVuuAgglv+n1|IHHu24ZlM74lolP+l)jYHUt?D7sYHccgzDv4;UO24L>CI ze4Pp6@_pL%E-6bSk0RY@TOWl*bvjDoJmRa?3Iv9gwZb|txxQIb4V4Fn6~1^T^>*Ic z9J_5rKSMhUpb@kJ@0#WoL)LK|E@Qq2KqR6L*~NUG)Cc6$R$hhBxuX)ad7=mKHjW&_ zTsB#~;DTxV(fKX5N#te2r@DEY{ZbO=u6Dz5rvR!hLek<;3Z!;E1tTfTujI&2NI~b@ zjdqoZZHfZBz}AO3!@Nw!(<7IivrQVG*wRV!q+I{n|Fcwg=J;{}&9EyDUU1Pt?50CB z)arePxxE{Ax_y~qIn(6}1I}~LFKXz>tMv^AK^RdUvT-OXqF(vB03#t1ji6m43Hct? z;S*ljtsbc7`g;!S=q8TjZ*A^o^s|rUm@Uk2Ow2DFJ{vI}cCa|EAQ>!+bs(ot0loS| z=!WEGn<Xt1qfwN5StRHz@s82Ht#;o#AMUV*2&R+qmnM(WD!Nlzc4{BsPipQRcc;#t z0<bqyB)dK}Y!tmEOmsJV8Y4fd8?1la>+4%G+pqYmJ}19(cFG%9o;-iueyXKbUsS{D zJ8nXGT@_Ii);XwSjI)aEeV}<kEA`1wMMBmzm}?4y<A~*Cn16NS&Ie1YfmcsB&UJih zQ8la^uAP)B-^A3`)Fn8_(B3lOlP~FbUD9Snc8{VdZb}o)7xod{eJ$C#H{OK#Wh1a4 zCI%krtow4>&u%5rUw(c6kMaiwfAGNnPCOuX<`uN9@JylS1EX51F-u8U`Gto&_48v< zAHp`Lr@pGaMuYVP?~X`rX=!*Q#rBd_=eEnQ69NCQloU3xo-tJ8KteBkLH}Uf=g2tY zBf;HbN#at%1fE}_(SCMGGTqFq{CJ2yVBOr}f1rySh>&c5nT}*Q8R=b>&8&A~<3k5t zIVe)S&-`h2I9R}K%+e^B{~CZe*%LXM<MeSUL+@Lqb|S^+*UvltRnIN7@4Y8a$@IR} zZFGK1IB=x}0M^r;Fm6QSbi;&hU~apPnSW#(zEy{|`Z{W^C-(eBkNDxA2>vg#7yiGr zQ=Z&wtV%|qix5~FU@W5AvlEgK&00gKK}S(8#ie2xPVBD_R}~vPbCfPjpAjxgm5j{1 z{y~EpUP2$nc#?hZ>Z6Qrfv~}7GtxH@U9<v$294Yd!rB;}<Te}NjCYp`8mb7{`nah2 z;<q|)=Ij?{%G$C`HF!qWhWc4LnV(^j<zmwX+cOGkGB*W=wnr9nk5j}0cV+y39a~^} zH!Y%3EZ~MjA{e`Fid}wz?Z1I5c*9t2>R*1lPbocNYm4Utl>f<Op3JxmKTz$C=Kx6) z(Qetyfb+z&5FX%U@o+*42En~1z}z}2<xw!telN@Xj$=EItzf2AE9^&9VI`eKjB#E7 zhzsGt%(d1kLx>G1g<l$Ly-4u1IVlL1r5$=@@XnyHzA=PzbID;+M@`D*qoK#S7i}_T zI>}j(E6oJc<7>q5lc(AsLgXzhqC0hi|28aQq7C1w86`$y&)%tHSKgBi@)VY;f2#l4 zDgEcP?|gvEVc+VzY*16(#M~gsK<NVB`1llnFWYZC7<vMNI`Dp7S>%dGmuaLXkRKc3 z?=u}A8*FPPlfJmBV{hN5S>%feyDoBZAy98OQ?Nu6LS#3<SK@j%q1c9=qwFqenojKt zII%~~k(DrGdnWp2XqkQRhsK>u`0Di+bK%y{M0_@yvXp4NcKs)pbZ`qq_5)0IH!waM zc@A!dV+Lcbh$IngZ-SD%&k?fAt7=QY)*3q~<-GscE!6gBTBfI!5%tIoXa-sD3dYHj zyXyjRYicb)9-IQ$Tluan4)Md1dXJ*Zs$>eJ3g(ZFRAL66%M>E&r~(I6!kzRdgL+(4 zgBnagtz^w@GpS(0VPejc<aJ!1s5r=}cb3EK>c1#7PrY8>*R;Wxkj=grIQL1yb})l~ z;wgYlQx<L8Y#|?iBh{i&T=d%=ny7blx5ujE((tdde#XLVHf)bWVM9y)?c0y+mWvjV zaR(+innh5eriRpn*_RAxL`Z&5$=wX&V;Lv!<|M<sKJiJM@KY0o<*Hsu&|_o`kjRnS z1>&leB?mVMGp}K%01OF<VNxf@DsCG@Vj`O~`V$Jq-J8-uGCdo23R9K*uGhWx5c}-5 zi<~^bUnji4u47C$%ADW9H8MJE9H|MN<QM`A^b@!ozcWn;?AcoAlJv1Q#Fszy*qK+G z624QOXe@}<;~uw@M$ma56cJ+e(?=t#PDDxd+SP;rvZ2CH5W_7j0TZKn35tt|N5pG5 zns)4+{?cFgFlr-TaO2MM3Wdnd52uQsHBQ*8?Ue?2rjt+7Bq`FDQvhJ1dwMx73KzeK z?3~oJ5lDg3#h9FA;hJ}!rSM3j=htEkrgNX4osG6T+{SYeB5{%JpxW_-*T0Z-t(VAd zRI}n4XqbS=H#oFp)$VKj%Z0BZUIwvMul*as1077XaSDaLl;U)(9lQ%zBmb$O#Rek# z8-1)B@4|g$6t_2-JDMqq^8Gdo=D}fYIpf*Iu?_;5sfp+pa`VzL@?4{}4<6X&Sg{@0 zM`faRpri-V?(Qq6fO=AVIb80f2H_2iL)0TXApl|s7Sdh@JO>YmveK02jtMDSAGGh- zv9-$`k2ixpGpy`Qx4x7!#Y&ab<Yi-3^-*#+49`I*!nrO2H}9iZNy?-_)CHxg$ByEP zFvN}KOr>IMRi_r?fSdhoKF7mdBbm<y%h<N+8*7h081VVj9bGRL4AqXW@Gg2<6)x}f zI#K5zDmJ@A(-!zQ1jMl*QSlQF*@fcrYGuN<6n<zIB^Al1@Y>SR@d6k$>d$d<<Vo^5 z@kQ{%$qVMJJeDTqBB24xy;%H+NLNO*{y+dN<_;RzV&k%vYr`hY=DkO!dJ%UUq~7;y zz4^><SzRyc!gCMoY1Sh3=~Y<>*^$`>!dgZmQ<%sOiDJx37bG@f;sKnQZ0PsHOzgkw z4!xd9`X!`l5{$n;%cI#NA?(C2;%*I~Onu#qAP<0pAc{rdlZIPaU>S@4kM<A=0)lc$ zOw`af_!k2UYnD${B#nsl8%5P0Y3>bmISQQ=XiF3Ck)z!%ggDa&)4iQ1CQD}zV(Wm+ zUgi#yLy@Hhe$H%z8dp1%8Ygq#CIvm82}}@GQ~n<Pt(At*TSS^W`aaZwiUqO<^Xqg) zi;uh=uk)@0OIi`2OJH@;8e7?YhRAf8@@?maM8hSn#}@|T*oFk#?Bl1vYcoV?lAB5u zNKycYwZU(_$8J^Nq9F<MV#C4ts=9<v(LjQwa%*2zVfxoEhEi{yC@b8VRZ9OlY2`8b zq?a}}p8wb@dg>HVo4t{WQ}6Gdh^8k<gW9H=ZQsJo`Q`W5mvQy={*@!&Wi~&s)LAoK z&ffT#uEWQczXX!afJKs*b1_yJe~8Q8<Sr(N+2Fe9a6t1>=Ge-gaYkfctfZEV817s` zV_V#gSiSr}YTU<qHho@&htUR`bH~br_@#wS$qJuV+LLF^{^;##e&zm11QYS@dz^Gd zYm%os<CnBG#X<hI=W#XXs;BDSaL<0rcG7)TDvK!%O(Fe6d{6W)lJu`y-Xs9uNq#c} zKT_y;@Yw_4_8>VY#LSSahEe~cK%g6JrDxi-6G^|uyVX)M`Rhm~)$bsC;-E%K1%K~# zRyhCU{de!^M2>8FKn&!-Y<V>ENyRC^Z~F|)6y4B;q=C(}ht1RBWJ)W$y?0H#OKfMo zp<W|fRt1;8%nqeKlX@6%Au)jLa<PWo7Z5!uMmZySV5%LwA@z+_4s~&F&ZPvY&&&{F zG&Fw6{2VPzYuB@X6#Gh}9WozCI|xhdluS(^rwR}`I@=H&A)u*+?o$9=vp5D7uPub_ z8*A1JdfQqQ9-`IrLg|(g*NCA@EWEKf+uJ@|F?vhN4{iY;iK;pU6rKX|TQN<xVdUKb zWl~V&PUdP;0t73Dw;@<9A)bIZN!(tl3v5cCD=YkK!)1Ch%MC3e``t3c8@bR5@ST#L zpG+}rR!!S8DzY@BnP`boWdsK-bQE*x0XDI>H*hWR{3DhZvRkf^^`D01a$%YG`z*!+ z!wFL)O5$w-=doDyAdVb^qtRBqhVyKP(7nR`EKVR&mU%1O@m9@!8NL?<F&#T^Z{jjy zKLdKsSV-EtocuDBe216mB>NJi7nI~kk1LvpueHK?cA_4UILAc4jdc|;;0zL!)@Ks7 zYOlQNJL!Q$HBnU4S<jmy`)BNpC8upQD!pYpj86e++|BH3BPTLZoMgJm%RVM;4FW*8 zr)YG6XlkQmd$qN3SxG^QvW$~!A7-z)3uJhE<7Wn~cjSK#@t5CvK1$=NbYMOFgGWI- z<s^?Ja);=4g4ASKJpNqa)Qq!<FINs<s-OGOE81NfSp9Z8*GuN=kXjEE4VhlTGZRh$ z$KX{2N3<eLa?y?;Y(dD!4hAa|f+~rsHDmiN>Qi@rdMoLU@e*n6pfB8HaBl~fRWyio z%KHaI_90Af3W<r-4Pw$%#xdUkM|S7vKk)VsS6CG<%Dp87k@=1>a)&5T&9JKlEi1Xd zS9Jnwg;y05HBlzf7sdP_>*W1q=GR*;jd<;6N8YndWVPYOH9d}76#oYmKt#lt*Yng1 z0p@1LZCBerQot(hF$O(I2BQD_@h!M`x&8VrSlFFb?0n(3H&s*04B|N#%0d}mZavYH zF#J;RGHozqa}>vkTOqPmk&MWmC-Q`;fq<ug)iocs_vKO1*JdL}y7Olf(-ZG}nswIW zu=>}G9132+bJ6CCV0XcL#g!615_YZkZA5xh<%9ti-@}~HKWw^=##~84s^6xrvH_<W z%+B8b@nA8DF=#X6aAGDvEc?8poZ9&fiGtVflLUZj#lw0c<#MkR#qa+k+s1<DTDBU| zd+!#N0)|p$K5xvqeMR$3(5AJU!!Lu9sz+oAHKT_hNXKt**qY4=5|YiHyS-AEeyOH~ zqBpXgwbouq=z5u!kr<X0FrP(BtX;bq6*;=9R?$OQ#9?Onuki=v9k;zfWqsy3Wl@fD zp^w(i2i`hcU%%ay{Ao&%`4UH7Sz4rFiu=MOmj2GqLu%)%N;Ji|7MQ&^<S1$%Q~Xk4 zL_oeGP0m<L^J9+qf-H*XRuk<mzZZ2Q%Vo-cs51N?;3s4K6fM+B)<I&FPXT=(vN$*e zc+xDL0#3BR5a$NdE}LE?Rv&dJb_yW#+y<IR);NkwODH#t{~fezi;jbSy81Gc1{=&z z0b>Ont<zNrA*qMAXLQJMGv6`PzS#S!`jUS$`>!ev<TrE(j^E%u1vs7pSW$a}-jJY) zPGEy4@ogubyzf;Z9xohu)V^eH%-CWsk`{_;-z)kzQ@@xqQ0PymfSvfEX<<@V)6fse zHCg&oz~>KdPXQC<kRw1<HsXKW;3dP}|LXi5bI&~U@PaYvt05etmo9M7^z~e(7&E)! z9g{AfcZ>4Z+wxZ}H8)?{klFP?>_4)^{=?VI{eB#q-Q!C1g6FxU$_1@mrm!zwlw2Aj z2t$Zui!zmL2j7bZodU?It^0cu-mDZ)6t4EIj<=eUdCUZ6VS@!eAgOg%dL6YU$&}(I zde!sOeYni0>wXqa*H-HUoKL$3E7WJKY_#Tkcok@GX7-}j8QGIpO|7<V@VqjfENmG6 zp~tFF`e7oN^k-ZInGz{~JV*o(khf0(nJKlPW0g6RQ-FCS{jpE0$oOqpA|Lcsx&bja zv{3#O5Tq3w_1;t9#Y>uDu&qv{MG5C`&l6da{{24m2z~3!u%SIo(Z!7O2Pc>L<8A&W z2Ua!m`j+Jv9@7(C@vE5-5`+CQHH*Pf>f=r-be`AvGuq=KZS;}(nAx4U1Vb9CGm1Ul z9nP~Zk0f91nT`Kr4Ups3&9j$I0X~}d?ZjI>`}1zO0qxH8egR?~5QjP|o2;h*7l)M{ z&VBA!#E;vfi1l&V6M#)W66+9+K&K*V4Nelmke_WvNgR1VhSg$5(6A6XnRSOAF#7tr z7}Z|)75jUiU&_?~%UntE>U2PR;Uw$qo#zk$HJXn-Ib@pv?5|LAs9&T#jH6cBUC8q+ z2EJOq3A$o27kLUmR=|VEE`^VTe&y^9i=`nh!bF!{%3NxkX5>=1-#(N1mVHC*huZNf ztm+jH)^0|a6`w>2fTCOXU5_eCccJe#=SK4!iux3wv++f8w+w%c%rOVk(PNMc&D@xN z6eYo=b6U1rISWKHHw8Bv3E6b|>N~$SEp205XQ7?H+|HMq8%(<K$~7SC^FA;hh_!+c z>=tNA6h1ki7*paU<OR4DC{~sz8&I*4(V=*|s2|EK)$i8>`EZi1NBJe$aEL`(fS4kZ zQ#Vdt|I3owKTiS7hd^f|u`K-vUgwVz0kv6sXHcrqWHqh5OZx($3OCUi$^x_L5XQtO zYu+q4KMdD_;xvpu;Y7RAZ~9hjxntK->-7AkJMJ?-|N7yR@vSr0k5`E7Y}0CW!09Vw z#|)?^Kh!{w@x#vDMzO{okObGeQvj%2_B&NRQgV+-7RX5RqT#G-@5LQgKx9jLA}6Pn zg@7s~9AH+6Tsrs&q$Qzfu_fp_ZW`9#haFHG-2+REOx&!6!jf6j{oXPOH<@b4OWC;S zQZvtesP`6wm4-2_O*oI4>B;|R2nQyy70NNIaKB^)mPtxsfnpHpUDgj3IvPHkXQWw2 z!6t0ghCj~6Vsy*18dZ&bTdG_)*c>PBl;$fcvG(PfH4PO@AhU9oP<4^96-0MowldfW zJH-CDINt7xGO(ox(Y3eN%=XenuK3kzs;jx(ox`sH!I(xM^6+S)3t4TmsTy>w7(EDL ztwo++Seq9aBXO;cPcP>k94MF~DprqTQPWZxgBh1>RH>m+-Oqng8yK&EJWQt<Y)>AO zScst$+TyTy8=PaqOG2?}oS|QxKG{1|>tF8c4mAnOueYCJNQ$F;EhH1rBN-E3F1YkH z#}u*E5*!`9ZWp?1K(@&?+;OZ$%BnYSS&pE#!)Mv<?HCtcXsH;;TAkVBEi;ibI%n9X zneh!#0Q~`sS-@KJYjivE5MslZeA#ueKUX?88AxolOW2j<yF?q`FxSR69kW+INZg_0 z5Km}31=#X1UUO-#Tj+r#069^<%u};O9fFZ+r*($;_pQAH^*!ECvmHnFsS-ha0kzze z_bw?^HnTS8c^Y|GHooBv3u`d=URRmpQ-Ggbdee6JtXOSP=;bRO<E>j0S-B-+QQJ|| z6F*VX-#4PZW^iYQCQ~LShn6Yh>f?{?7T~NWPl6Gg1pD^t^#z}aeGMKEMjW?c%@u*j zMg&~|2fcH6!@;KDqSkfyTAJ&5hUR17hUxKby<;c1NJdxb+wMX~Tga@p4L)l+&n~|_ zjHQ+5)u&{tf=g5ipYGEtw@A55RGU5gUPeq+1a`tUr0JiRUf;vW=x<*r4y{YffLiX? zH4k~b&Sg~-+<ii-U0c=so$&K-stNyWo3~kC*FtpU-JF8%+vP9|(a93?;(IU!G@yyu zC~>zY3ZuK{6qqaE-^o^)RrQ$i_SDSvZ^12L_Sk`WF<f*?p$Vc8V&Wdc7~~+qU#<J4 zE$A~%T6X}R%tYG>+JdAm0bcAzSfCx;7N`AD`}~@@?j{vJB2QL?`=BhDv%95vLZZKI z{<+_y!`%T6Pl?d!1(nU$yWjn1kD6)dth=2`mP!Wgf_^~lyX}ZOq^<NOn>uo$fLqtu ze)(D0QmS#_ltd{-ZrT&Is{16S==tjCFNpW59l_0M&Av;f=N;F^)m>mo-SVr@ApWAw z-WOWqZ$g@dUWXff4wV-1q0x*`jYFVIT)QDP?{PBu=>2ic0M!H+tZ!9ZZ58YE!qmcA z`pYckc=Hr^af2LEzKAZ<%KvHF!+fb3W_6!1sP3lccQL<-gRCTno5`Ml<uS>d`D#Hu z%A#i_3z1TJeC5+Vs!0bqMj@W#mww3JVKI#+JwF9#*NHaAE~}9<G01}Mhs{bJii>Cx ziHpalOpq=TL1S>va<2tCDfgBUC9-pv8XEh=LI0|6$axmdFZr#WS(V9j({1$o3)2Yv z#stc(LaYP(tAJ`aq(ysI-=r6X19dTgn8V+dJdgQa$z~+$$HCXv;nc@H&~rz6WMEY- zXmIAoaoxMQyM0|)ef9hZScHs1zHZLJ%Qxk&lHx&uEh6=yQ8H1!dI1Y(qNS$bVFWD< zl4sRBh%0xoLSe?L&Iq@x$A^=8V9)19-F{Hnp<o++zH)EW=*<tGky7KrlJ6-+T%!&- za}0VM7J`4Tra*yt%yw1MQ?Z}#QlzC?<Yb}c%q^FmXxA-+>OERQFvuyfMZY)B0b2Pd z$T(&3iY>vXy;2I&<*^R8o#JSo8VHVuti7`=vf2Zmd|4)FYIM1Xf3v%y)QYdu;+Lf= zIiLFMU^UezePrdUa}0gv=iUk836z{>H93RNZam3FcvJzswH3$e5Udcm>hPu}`0ZfH zoKZkjx%YHz$;bNS!Am!)@JMaOEHOd1;Bw$pD*oX(%4H!ABmmdLnRfB^CWNH0JC4jl zq50s#1ZDo~U*<h(>b+;&TRt{^lt6{Ba;vpfX@}Qd?EjOXtSv|#nuFe)_naR3Eht%v zltG@CFWa30T2}5Eb%L{NABNR6rq5|aO@TU7nP&+{AkNnKLLf(HaeaEu(Bu;7o5`g# zcc_`RW;<OP>wt58mfl@AN;?I^_aFEG8d$QKqM36@gN`S1B1~~ll9r~Lp|8ChFEnE> z-JciB)YMp#1aZzd+?KrSywaBTc!jy{#!Y~>3riQ9O~x2W1+GtMJcf|Inv+F7hVK-> zwD@s+Uvg8yW8&ra*a7A@v&<3!d;xVWZRhBc<FD1l?OgquK2RE@ue3D-eY3XtXSw?0 zP1_V%uDbkHuAX~icF=O*UL}3#SLM3(3^|adl1%xKELW{?Uz3h+I}+JWp8CRVFbEoO zl~U{F?|V};iJD=YDVgz^rE?vlvuj~K^X7)bi<cky$7KrfF)Or$;YCg=gihW^bKZeH z_I~PhaOC$Upm2>V>r=U1MUE*0V=cECAfxNcmoIAo!M%!AS8*#JxrjPMhGugZ)6)A| z36~;<(MOFJn*H*p$0fiO7USc)T5l8Y>h3VBZLi;~%;@+RcCCT$$D@%^cd7@ec2skZ zD~sh+ZmPJJs;yLlkfWSz3v^)t9s8eqm-dQ0PKIUs%pg>Vb}em5!ozlC?NCB_v)LlQ zr!|(G*5c0sd*{FfzKMrEuWd0f9+wf0R7=WY70EJ}EOdJJ!0XsRjIR#olX-gt8o54f z*AKBC(b_1BUrB9W3{YC})D!coo~r{I_LztLN^QvskiUH1sebg(+M@>B(Ag@4^Gm2& z<GqxDsDgRjREjcQ{CdS-DNUVrg=;5Mmic+&JCd!#8sP2&2y^sTB)@VhH)(+v*;NtL zmD5suUlWX$M%a!7_sPEXRiC&qx-WUbOZE}ZPFIG|kP5b`{suL)>?99`t~4WyfIdtM z+j_^eKq`4H@!uFH3AEJWy5maAl;Tu#E=Il8eQhs?>p`dQ+<hvcqF}s>*|oFcO|Hxh zg~S%*I<7|wjJvj7Dd6cFxwFP%o}b@nZ{Do6?r8QS^U%LO2k4>XGKO|fI83Dk*?E7Q zN6DxLqdmo1qQgm3pn6quN}N~f)PiHvXe;}?SVt0))y_M|Gx=tdzi9W5tfOYL3lE)G z)a|kpuZpnMAfFz(iZH(vCVbYUTUvPXDJu<A5eE4Vm-ys1<VL!9W@NwMv-%-a`{IX$ zYXg;ZRFoH~Qi{F}id%-+)MpK^heT<tPIhv(t8HitD8HKmH_BL|5AQgrO`GP<g_UI7 z{3`8}wKCHG&3s}2LC$m~a?mf~YjF(;&B|qj$W9V)f~e^05AP>~blx8J#<a2FMd3A4 z230_8n%$+@*lRqFja6@jT~T~!Qs#_ttwg)!!%v<=9^sCXvR#@o3Vbz2TBFuJt8a5} zuI{-#Gt=|BM|KAOzv76rz4TzcfQu=Vj7}j#MaJl7YU{V$vM)Zl2OIJe|8+@U_Mp*< zM-#vP1oh=1j3dAB40UuKDSsVZm5AUV>R^jW^pHg$Z#}9K6hj1sy@WyRM+COKmDZus z=Hh97<BZRYgqxp?)jkO0@SuwAD?0_$nRbI%3CH*;EMJa(OS!irI~Mq44?=(EnsbQ> zQ)^vR6k~&piMsIFOraP_cZzCC;}glg@LJ38Mo2f*J8BbQ+I769N%6SMJSWAfPhF-g zt3Ih3o@$ypAG5hFRyWk3>5q0`UPL_H2Qrf*>?6%OFQF{T6{OtKX@fA&NOnf0z;40I zzaq=dFgYA6*y<+n-hX%I-F*Py9Dx5L<pT&i(UNQ+efDmpAoNzPsyOn0Q<kM6Xxxrs zw)<X;>yC{pujwK=wAYQ~GfqgdZ&7Vu@42E<=DSiu*gbY9d^zqFP{gL*kLGYB%Rqf> zNMcnY`Q5JdD6Mjlg4uzmGuMPvr`=gOJ*;6d+t;%CgjRCCS<Wub9BL2ZCv^Ai1mJ4I zsw<CtEX>Spnv1B?o2@JQL{135HWn1D$Bt4r1(O-sdv7-H5!WJJ>{#rpe&!Ie@hmv2 zqWFg(4<^x#{l<_BsSkq|y6{J}X?7CrCs`?cS+}R8Dpo3|cpCJ6KBc5nXo66o(8W2~ zUBGEiFd<+OMCldH=@1b)1D4)^hqzYw)Yr@i_x<ouVG)G#+z9y0b0eK9lUHFd<$H6$ zUj7@gveA__eaVL(_SVLWu4|I|j9OgsU;oH8`m!0B@~i6S!iKSgvWEyCYeuqV=EQjK z7qO6gWF7La$t)J`R8<^nm#M9CROji-RCS)@D?(V|WcxJ63GPUcez#u0-$Xcm2}?yI z6GKjdtj6ICvYnS-=a43>KQ<OD4;>q9Zb~H2zGtKQN^>&+5;Sa%E?EC`C<iWro&u~J z)}o_H-9W4^6g9=L6c!sYK{h8(!a4=c8VL>iN|Bhn)IpC$tx{e!9Q)O9troi_JUK|b zEZ}Js>VBBnVuJ<|*%fBc@tZ44$Q19zrV0x%?#%okdHvD#6-!yqb2p8pB&|&tfu8r+ ze2UVZJOz}2k<CEuMd;eJME+c5_m?_SbLv<B2jry0t22nH<E5|hWw6K|2(uF*2vY%v z+Jz>_wztsxv$gXM_^}O<*l4H&6I2;w(=V|CVy?CsK^#Z}pqd+~n#`dt?+Z4h837Qk z;viYA=2(8Td*nLG;}me4<ToTj+Wj&25&n=zyG4(|v>#`>cTF^G-~<8MB`2!Xl7k2j z@ec@d$4;=YMP&Rbz&oG0;~s$xY(ip{7J|g896cXKqhc=m31tP9==&Mn*5^+%oP}<# zySb+&IJ_L&GdCW0h}$P`V$c6xUi`D?6l#UD;+F(<gW5{0unLXDnw+bBB2E!ul|Xy~ z*^h8Rn;iUXFAG-MCK&J8w}?1~3m~T8gdADL{`p*7lSWu&K=PBi$v#CkBc`^#woS*2 zI9C$A85V?IE>{|~Uj)Vbg~W8Tn~W5bMp`}jExz2>pvJ2y4?WK3q~X&s1KV3?t@Rc^ zLn|`g6q1xFlE@VHc;@nBZ{l@SGVn11Ybq_f2<rBKByhQL!VlvgH_qxkomp<}q_bG! zB-ig#13$dRG<H3NCm_qc{j(GN2AN4Cy-}Qd%t@d8>M9=syG{Z}ySS2b?)pvhcUQDD z2f(XqdIOs<j5-o$__O)8%BN8Nsr<wn4}pvb&#K4M1bDbze8Rje!(`q8$crg}5H7ra z1H^>zK_(aTE_6ZS$b2S6cUYk*`5IiYc9t1iH#pPFrnYbRJmA|zzIg#}#dmc-o3IGw zii)P{nWM%7jv^!`^NI`Z>C2btsY*-Ydg8}=TNV~MwIdOQdnWF#!srPi+cJ=es6}}A zim=k<$UWhTTTY&4tiT{Byysa>Bt4`y2#*Fvj3H3Jut_TK<K~#b8tepKfRIMh!%UWe zi@=`#)W<eJX3vl6QLkZ+OfvJg-`0821!idECcpQ1mSxWEm14BusESR+2N6;$qh}#J z@C&ZTx<vb$jCMPl_>c?s>y6T~>02g0TNKL2H`%&aqF$&xjtRMPsU<Bqb$STBiP{SB ze+1&W`^r&ovt=l@?n)HEYk+L=nO{A!wsgH|o%gHHc4o14urAVg+j_oXc27~_<L8@} zULL_7YkC^SNYPAVZ*3cOAGzfuW3aLG%>0!73&I<+)2#dxZm1)b;#UMBMakaRv(2u) zrqphBJ^I|kJ0q17<~c@gMt8-KP^0r9bh5c)S7vsdB7qyA<4eqw3z*g_%);hp;?)ob zzm?mH-G$w64QL9il1&(OdpHd>LeEl!CI@`PqOe#L2l2{7|E|>gK+a}4mgt>b-8fmc z$&3Z49a3#+tmAA5knBoFza<+#5^JETBmXWGlPwewn{ng2AE?G(*njK%mJ0uTr}A(t zj6Q_z?WUyNVC_b_o!IEj_|zA@Ns{Pd{aSuIrro~w>polNnX{|K#Y%<y>BcLqJ#$7& zS}o%358jmuIg|(KcNos;2#Yh8GYdYP&l6?jX;9%V;hU(;i3H}a)uwqQ(is0u4F99} z(*MjgOTWT;4R&+0s{;1NMnuYNd<=FwzV_!BsG2%{5v&SPILY4BhSlbK?1UaBG(^ue z?aTz_7Z(L;GoHlm4ber<M4SS8^uEg!tG7Jq_odtX?i+l3$acBX|9fYU)cb3U29i%- zkz7#>duKTZr9{QSH%%<Jca3|?;)di25p12eN|xxlyDOBFb9~{`j-Ea9D&#e4d2JCf zHQH9dZpyJLxtJP%aFjCsqI@lyz2SSgpKxn|t!D$$^kZ7uC=*cVR{KkRsxzO1l~M_p z_QziwU$G<j%=FrYzF108?Mj2y+{9gq$1w0q^qY>ordGqRe#=kce)jcAm3-)YFYGhJ ze*Os84?d@eAV=9_P9lQr)$m%Nhmo_Htn1&`W_Jo`Of*aS)xW~``#VSAai3?VQlEdh zUr&3d;B252H5c<#$yQTqRs%$|@<?C<R;690e>>F|)&c*DOFAePH`;3D(e_xvHZ@h4 zs*a-2`O(tj<=WzR2&0QFLrFvfoJo5>MzU-fyJ2m8<fY#@BPC~`del;rI;XfLRe9s1 zQ(5M*9@(ubxkXZkTgP{eYs-DBZ4bd5gP7Nzt_#psPZY`9(=doWYG5Wk6sEiLfkAfQ z0}|7IER#5TEX(*k55c{>KLJVDo?R*Knd(;m(kxLp-glj^)K21yX7jr*^7T3PIuA}> zw4Q6&z#W4KifwO?j~$wY-`K5QBG^YgcRVk2o7m2EFnPf*bo;I+kMevEtz*Q<u)~_T zNVd*0?tEhA+LsoaaHIN#(774%cJt!#-?Lz!ex%38p;QQCA)y!R-(A3J^1zuaB(>8* zijq)bUyo(;*$tM%BQv5^J^l8-$`|a<n3<X9<lPai8Qr#4DzXlKr(dD!$(3{H1Mgm1 zAc(2t;%ItN)cgGv5nGoCuEp&|Ygstkvq{~d<0RdB+<@jl&xg60UiIXUKn3&<xf+}z ziEg_XZa<<eH@O}$4E0ZpsCZK2|8w<2jaN3;Jsmy+HpSk1svUfBmQ-BkSLPtb7Gfe4 zsdhgK?BjEM%;x4!#)+xXNUr6*!z+??pVOaAiz-_*>=tgfCfqHDKfs!j=t6+8nirM^ zfjuN4Y-MYK`Y@z(o1CT8dp~%aPP(Ede`}>rQL{RG`dZl3j_lSB1HV6cn|P1x%7r8W znTb|7$|Z-1)Lcx<?1*=k2?nP0Sv1b%if`)kKE<Xx(YV`RjLbPolG&RhiAXM@78K{8 z$u9He4D6jR|NhTW?7Zvk!ahpVJl|>2;5(jIgp-3D?tmLX#?R4mTSi6LnX+Fq6AmF^ z<Hxz*7dKY297nt(bq^k?JPW^&+O)N6V5ByU|K23LWSWS;8qc7Ba51c3tn-qz(2OnC z^s#bF;P|>77S21L8K`_^CChO6eNI#*F5#I-t6yMcXv(BO%keqV=Xksd0a58?U?1Pb zQ~}NA9R;6D<I3i2e17Ry`uXQQCFR9lS6^AaLubxLwI+_oor&cM8civfX-RL0?&F*M zDlsSzvvtC8%HA|zhGvP^&t$Cz+2??#@e|G;R?;K!#b$aTNX?kP&wI`l6ovg5Eh+rQ zDI?_J$PUvoFg~<j1QOY$qlKdT4;GjgdQ^|BOJ!4(nR#wQ@pfKMmQ2!j@QdLWb$5-# zK7YzNgBg1tI0+1Gt$p2yJ8x{2`A+iJL|-jA&@$SunCItUX4P)_Bi+YDci*Odbs;Qx z4;l;$IoR+nG{r%6#z#yd5e&bO%v&U2Rs8t3N0GM6bxs}RmzLQy{AE2lpB~Q3Kl}lz z0TJ2iSMXtk_SfrdFjPklDjt5>wl>L7o6kEUwC*CkYy76&Yp(RD5+j#1-LGpYne=9@ zgIV%YH;SKjQa48~_HJ^Eb(&6xVL+X)3PpE_reNoVTgQ;h6S6xDN_Nq#HP`RLhZOx6 zz_~%Yo|NKFCHlqn^$iY=n^o%;<Lx+s5c522u!Jf%P4F0`iS`S4t-)w;4q7(h+F6Gr zh^{185#>t=yq!yqZ;FYRNaN}~nV3h|mZl-6<vqu!0{bB)rSbNGCNpytsveW~`pmQN z5VC-Vr=}bMyUTc*4adb6eS0#(>D0~dbieH{E_CL)Jr8a$)97hh61w=ldL?gS1fLde zR&Y%!2npGduzURTw!46%gBC=0JZH7oskEoDYx$jesnT|#V3mxQQKOyqZr~&Pz^2ge zO-;ncV>Yt%(;}}Xw}r%cVO(hOVm>7Vg}apD`_=^d8m2PQX|1wMx18o?Sn<QXU+Sft z?|`kUKVTDhOHi~XnK8I{*x^}8$1@JW^0cMp#(GKlt|(6)8E;$ZbZg^2QI7QL4KiC* zn5zA~Q&OLY^K6HF^3$f&VvP0WBHyc6+4H0>Jcxy;hs%lbycL<ExQI{lEHv_{zh)2S z!VbikT}*qFY<IQuheHv~9b7DWn;<qy&NU0`1kxipO%bI8U=Isy!gjo}c5{?aK;W6j z<ZEuv@i_XOTUC*ez<kI#@=5%06iYn=bwKTS$_^In%ZLq%k62!`EqR+?-f#;aHgl*H zwdZeHL4F<8lpx|p-gbMz&@Nt3VzX!w0orZXxgJrOTS8PDRn7-r%DE=}xqi%3<CU$* z+551<$*+@3UXHtq{u|0mT975?1kGz`(<Hn2`${079sqYUgX@8B2{=;3Ec^`AK7ssl z+9s{u-QLTG)RHsW8gS2HgeU5ewlEI$xbS1rHEi9p?1ODaCe0)^#`KcrhHo}zMLu+; zb~;Lt&5cX8mT6CDsjPuhllGAu$fyNRfg`W!>Ti2Mu9dv^T{mqKZ_<5XNe}%I8kS`4 z^Ub@db|kEEx1kd<$pP0M)#jZ7FG7<hwSh$S7DAM8r!zi0<ZL6?waVe-svinT+AIll z3XG`!q35K51+1aT_SEs>P$xO}VV1DeX_txYEERduF#*P&El3TC@*5Addk`MN@z!?b zLfXLKPP*to_)~?bZoRwJ<Zqrq%9IU~Y(6}K^{XZO=vkA5d>l9YJ%=K-?aOw*;Ol>Q znYjL(88p)4oQAjk{igOGI@b@nruI7tW03p}Cpik2Dbh_o;MR?SMgNVp_l|0^54S{7 zL<FTvZz8=*M@l04(FLSSR{?3#TY!)#NN-A2q^R^7=^dmC2uPQjMv<OS1B7_r@660v zXJ(z5yY8C%50J1Hc}d>iQ}(m>el&xnQ!Cdp_>+R=lpd(2*#kT|614|T9Bo)0u&j*% zy$P>kG?yRc9;*oBr!BqPNW0jPEY9&e-YiSO$`2veB|Yr>`|LuEhTS~NwM6(-U>tgQ zg3}r0w|#f<;99bgy7=1QWe4mo)F6f=nYDw*liOIytRV@t>%2Fg*5(n?^?l!8PElXF z)j<U>%R%=ZS7GSlkaV5Qn`3^j+W9_@R5-i>_jn-$%(Qt|o_>UEZjK+X9+$96YdW6} z57v>&Edf)h1{GdRc6t|%8hT(f!@s52AyU~VHN!6Xn;JJBpN}(zzd_zmFfDe^XMn1Q zRAq`}TcnB3NEi9eTvJ5<R=N<*cVA5*GR6SydSb~TOwgl?9(2#}!ON8XP~zmg9C<F% zDQ4s~*SU0)-l_E4{3~kAI3*nqqw5g;-aM8DALfF|`af0wd=6M{(C{uBrG47s!OVtG z9l9JI!8@LCfumuUdLLpIL`_nL{Wj9hrV`W?y1bFG4or7=ag|*z@Yv8Dlf-^F<|78z zkU(d;K_zvCC;G~9@d(gQl@W&SDs}*74ud^OpohWp1XImVHeJ-AqOEPN6Sjd%H4KA~ zvd^K_X18wD9AOF%f<%<rd7|^D*Q7Dio<S4Ry$*dT$H`Hwr0&QPgTG|*X~0bTpunfA zkl}#nfYal>N;q&(#lYh_`HA))9HI7Nb8BIgcUBo(C^Nj;&xOLbmpd6q<9U<>s=|hp zh;~6Vl6p~xEMW48PzC)Nuw<;^UBT#4{icb0Hs9K~`&Z$<Ar*LVeM}9`unt*(jWF38 z@{WXQglbxguf}%%_!5*Ta&$F?&(XnN%=%R>nA}dujYrxhUz{`+%Soa}T<Ays_)GTI zyF33}+8j~V7b1`vg2;rsfY0;>cclSp1u_zRWMAQ6mYgvdLEt46{Us}s`=k8nax4Eb z^vhqeVz+mn6a)?)95Md{tW9W8<H^<!e?vw9i7nnB2ks|nY83xRd#`PJ7lggux*%R{ zY+_q$sh#kM!6I?STGlspzIe($$sO7f4)lPT1WWW{fzs=0s3)#`wN8ibE%cGUvzINv zySJ&6m(p0h{_x7KdHzYjWg&<~=_6`Cd4V-a^6uEE(jbY|BE&~|Im8LywMOf)m35_% z4D%HNpa0I?@2f^Zfs?YlTn3|fwVKBjvM!cp0D`TNBS+F-vc)Mw{WSsTAn&d-{sNsI z4dx_`OCuIFyQcwB_frK1>5A~wwP)`sn?4Lwx&la%1z^nZ&Y>zLp+P+uomV)%mf+3q znq{pKbY%Hnt!aO_hAR+J7(My+eNMhR;5MS)G%MlU&>A8BN&oG<fNW{%eb!%PKkgR& z>gy#0f^i}x0Qa|^giH2Ln`@f8r-tYdOO3oJ7pquJhiMu00-2DPQ1dy-w3lNq0VAo5 zlL}b;z4w*!SN*F8p!reHgh_m+Ny*Z!xp6oH7?laWLJX_S)qwH1!8m7iR0F{@^4Wq5 zF4c35t~mekN8{=qSB-wlVd#243=+k?7lbiFiKT7NYw_w;U2&DBJe}TI_d)B9MvE_A zT%HFX8XdX8UOCLq3kHU=4VeZlR4I8Ix_cGCs%4HqMbVqNRO%fyhD^BxWrc(36~)U+ z5@YqUb~l{5Q*xf~=7y`v=wOWZ$!Tyr<~{~M!kpQ{HB}r4qO%z&VKYJot{1c4YYyI) zI_4(ZQh`FYMtz;8?v_wyE*_PWetpd?ft(j-Aw6Jxq>^<7>0>2;m3F-6n+AK=1t#eq zfC^YSy9ch*NPlX9+-=W7jqmp25>6tTb=sNn{5_z%Em@qNo(*hKBQB&5HH>g<!?p;O zq1k$?n|X<`ziF_&b;0+3RE@G;a<Wv;7lldPl0(B$#)$`N#@WBtsYS+IftW2f`hV}O zF%%7_K64>aY02RhF-UvBGHCEGnPKhR^yFVMy)zFImG)mUfkn*5Wu`P6KxdtG$5xQ= zboqb6X(>tn5W4UHWpHu494J_JK#>2nZ28ZRMbpB6ZWMt&DV^6nVggysJhueuwh7l^ zZC+d<VgTSJ{RkcIEROX|q(1XE{Y#cU<%&G{2dK1;E}b1rv`;B~o&{HsgwOc52wyIm zrO)wnmtrp_G?`bRrT?ewmvm|Xt-3IO-GwuCnAd?%NwdK>8&^8Z;H@5O-V1Fc6VD4# z_}qVcwnZlYD&WroKPm<MLTKQfMx+kl8mAQK%K14pRo;i1%vr1bAK49`6M>$9E(eaP z{J~11Lf{L5(lq|X1_DMAHXg};6P+s`5mJ```b%~faIS%XiOdBg;~IPksXrlQ)BYHR zJY%jOKR-<POZI@dmjW0q;RX-i9}zNuS<N~-eCix|?oI0k{L4%KKNbKwqYeI#!(Qj6 z$X^kpEYc7p`YhJh(!c*KI3G*>I&kQZj6Drrm_(fbr2XRZfT2!4*YlM|KPJ6j`tGN- z@24e#x`#kBNw%6|z8hr%SwTCY_hH7#gQL9^TIL+fT2dCrwNvY1!}rMV_wzZwbMZsL z8V;6_0ACdu_k@mMkzY5MES>Q~ycE(&LiVya8{s{DB{q1MU9+}L;5{EMOG)>BR$(0C zS11V2OF;To5NVBYt)sHtleW1lPeUsu+5@V+cW;akWc-e%@Il&@&DK@IufjtE!2JrM zaFl%d8r&?Uq@>jbVr}XC)L36G?e*(mp>|eG3i0+f%B816$E_)!Awb>I`h|t0^rM$E z2$$zG7UDjuO-<Lo0jNNP0Z|oi_p6nVRsq3cnSb-uU@n6^J{j~9qAJ7gm>%h!8b#$_ zZRf**b;EeC6C8S1Sn9H_>jYGR#5La~N3}NqJ+0HlRHv8&wXuD0+C{zo?EWu=b1%Uq zWUQF)BtA)mSS0Nxd|1NtJ^y5zkbwuy!_n5Tu@%*s=bt#GiFR<xsLBuUFxuKBCwM?l zm$g5U|FR4wGsH=V!2mNMmd(C2!Ia2)Dh2)B7y@iQ<Zih#>7Yj&Xdw$(2=*bw&?gg& zy=3(22E3-}xm#vw2Nv-}MtE%3te!l4)!}WC!D(tBFUia=>GDoWW)_J`6}R2rQ~~Zw z@&;l6YjrF|R)6+U-GU6IYE&V}mO6ZfA`H=kc(X!7;4f&*M<H%P!g?}Ol5m?A4AyZn zQ$gRAc!P$j`~LC&!F62dO1lCw-L*09c~ZFag%flM3m*sH!>CPhQs^_;n?zhlcA9Te zxFVX<Zy7(>)C}NJegT{wa`MT4zp{M=h(yIhQ#kppS2>cm=rY0oRjNN|+WGSU_?Rk4 zlN;beNrK#8GR>`q<A(?0DHJ%R%T4&^<8xZUzht360<$j#f>-vx5#u+M@E@;qH4*qm zRshT|Z}eXM$fwL!M#E3O@FDk{#~hz^a*tqn@o0pffCL=w)C}Z%X?#P9`@D3H4kO~g z_^pFu;AL%Gc_=@w5j+5^romqFqzcbMLe$=lv9_j-N4LBlc=?I1gR#8k2Oi8P0U9B> zcx=U+FUBo~DyP=q4l9yyM<ga^k;=gMi@k0BkIO$$v^emd3%ZQFC*HrT=wxD5G3t|! z`b)+vp&<ZxPd>`m=rrTLZR8<P(+01fC_O3ByzqnS6W~{XP?B(=Ot^T=;4<2Q%PjE3 zgxxD3eCssZP=8n{p&71a9P^mBicw=-<j;-uy7L?~ks~Se0-4Z8G%V^fbFXmp2`JgP zy*cuiOtg7$KLO;6<0UdXqQHp_#>Gp7gWewNDKeYK_{WTYvV2#u>-rfFX#G^?eyIr6 zxnXF;#CJh^vnP}2;C^3kv7y_MGgi9S!fA|w85uV@29|j49T#9H+^6D^J1}QjpS;I~ zWuL$M4M9E!0NC#V!dAX<))QP~Oa)YNrpRYE47L1nL-YNQwO|QDhSvhbBHt|$4`#~1 z5ou!95fBE+R?$n3S_6Ido7$|Ej_vz_D$i^5JYV-#^esc*Gt<6L1YTRqpNym*NFESd z>j)s75j(VOiWG2LQNt~9l<R?`KvQ17^j?Rehf0lhDK7M(qVG-nfs#&58r!DREe%J3 znL<ozj%>vL%*62vgM5zmvq3F_M0dZGyd)S6382GU@L66Cvg(y&Db>LP%_&ZG^UWU2 zFaHqW@d-8EUTgCvh)eexQ7&=9W3wHSNsI;q>v-=NFG<NqyeOLwz27%3=M;{1R3ePL zQpti^_t-J5u9hX{_GztZl_P?K&O`*e-V>9KPu6;i2SawMfptN`Utjx)RHfYe&zbc9 z%g;_-lbryYC&CzDsVWj$fD$KR0DK;p-C6Vj^B=!3@%=aLcMbesCigmc1#nagL{qHU zJ|3(C=S{SDqH8A(2^_lf;m*R8J?b+LQy`?$6;7mF8mj`r1+bOn^n0!WRZF0bum|sh zhj`8Vd1-Hw+JSdj@57eJ*S3^Q0Kxs=I-D?&HW3+J?)zuDfKSU`GTV0GuNN<do)<-H z{QG=e8;RQOLX`L18B2GmxHu=IgfhCA_)9kVHH@f0It8B}JNzYkJPj(dPp|*I=(nD0 z=kogY|BFfhx(3{`Kz*J53JR!fYhGZ_Eju7eBu!5_Qagaq|Du2ZN2mBPyj!7DA%{1s zmsOajo%(c~G7;ivz?1nN2EJ3x29y;<8RBX<NDvrPsKz)Poi~v_eg5C3b%n9(a*4ml zOUn=IW49CY?cw7`o3{Bqyh)v$gl%+1l4DQyOlM26^%kqOZIj~GR$QQms?E~FM`Vw* z#Z-6-#Ah@5VH<9mTAbd{L!H9pvoESUiu#%w;u+tst>(a@n-Oopya9AcQ;>2n-O}<H zlohcAaWOlrT43Nly2+_i@&2%sQHagQFI=Rvk$LPO{%jw(lOl47<da=)zezMkczE}F z;^VxvS7{m-K5~~u(H2XMY7IF@2OoP=AAA=e-wz7DZrMF1gNy`fs;T3z=XMmwH80~u ziUCd1e?b-f+Dxf@Yb5VOwIc@6-*FR_)w^uk4-%cZJ8?wAAq_e?c<?iGs98kVRp3Bd zL(jz6U?@v3XKUK5OjuMgRo`N9Ua(`VHXiT&8s1dW171k$Ysxly4dNrf`_A+7*|I&v z-K?Y(xzIBL)ISS6$m<nVF>NU^4y^UkfHbfkFC3$g;A#4x?T|%v`c~<Hk`r`~+N`4D z>W$rnnq;B$46MLh`N3Z@xjOa?$8TxrGG;E6ENLc*U#Bv5awqG8Jf+H1xs#X==lXaF zqNm@xqB)deyxTSKO8-nswp$hzHx&-4v9fp8`VH5K#U5M{L3xqomc$=-0q8q(09|6| zttp~5+Ai1-e?6+S<dbK3$&v)_afh-q_D&AHkH*#&OzaD{F+=)P&mh-!3xf~OT?ZNB zzo_`6x#=0F8dS|JG)x&-U$Re)wPE<LUAQpYuP?t$6uqT>L!oyQTn~?I$WP{o=}quv z{5_5hm+cSatYUw3hPSDCARv%b=sfM?e|Re%p7O6+@&;5A52&Q25rpW$$9UGH^-S)Y zMjula6tv^a3vZOuQFHqllKt3tZ?<I`wC+B-xDjTvKQ-NZp~^YV0UNfROp!H|+EeV3 zwP{|o_pC(JVCezWRH&1UP=2usr$-RI@m^@Q`wnc72#>{Qz3((@LwuxB5gprTL^py8 z%KD2o7fpBT4~%VUXvAjILdLov@AbDNE$p73$Ctwd`YX>Uy`t0iLVO-Ma$Q-eEr|X? z6{e#hbY6rQJyxk9KKh6)D_1T*NO!EaIkhYdNLhLl{bPFHOMTSfl``dh?3}{zrUOeo zw+q1HL~Vy#uK+VWmV54&t<MDXy*=erG)1wTR$t%I!r#tm$|pWWe-PQ==bF<?&5S)* z)AOlKw{A5EnAidGzw9ov6?Y>U+xu<PzW#Siv$=7G*wX(=9{fZ{2kIP+U2M4OU8By7 zf&t)hL@JRHpVdE$<H^T^dzC=a7Xht4Q@3h0`I_TC^3dB|&AL^o7&*2gXP<^jNjP^% zY4^q;=r#{+LBPevN(SDWVAd(jX3k}Pdb$7pjq)FZ=laZg#r3Os+gf=QHle?d@F9xN zqyCbGd{K5A-Pask_7phQ*ILj$R#g$pSVO<Q??PQ#)I8=R-VdXOcWZZ2!zN%VMz;V} zsZq@FCG2UoYo%jwyjuqBr2B3)M*WH~*U@@T&26kmkBRPxbGSo^znYX~V&7z$4ULw6 zl)8&Ze*^Q1fw*7+vQB;FqfEEGT-ur0O}Pk-=S_{FB>7_7>#B9gWDm<#AKSxya@bh5 z!yB+`7Y|ggv17V;rjzgKrgivkWf5r9Jv(&i#)5>%tF8ryp!Mem)npr>_f$U}6D@`D z9+<Hhoc4E>lz6Cd*`jMJ?R)y{^MmjK)c^qz0TGFiJ3gv2T{oZ)CP8-~{EzWGN#)(8 zuGalI!LybVK%X6<Nt=2#jQP%?RsR61<sLHi)eeHo&f2%%+|al+BBQ?D#I|fVkkhTB zG9bW`948J;oU?ZMQBip5H$)9L44kfg-?ix^aey^bF2=Y;<A?H?@<#lwNszscFuy{f zgRG%Su|Gz1x_3IDqJKa?V77dDcJoYjlz9}OuO<``MRE2O7$b(QCz~9!F|X#bPE(@~ zcE3E%^nYzgcEns#=wZBV?cA|jUo+|vLOp(~BDa>G%sghA-rZcM5tCQG5E@xz{AfYB z(_*2czI8JkQ9c!JT%>81y8q%To8N<LrwS6c?CK63^BP|2>81g_@a_LOjoF7?Jb+Dh zQeS4ai}J?8?m)78dltA(-JH3X*8wl=jlh>r2WEr?_<3?GR2rTes!h2`D>=SW<Y>HG z>G~uxz38j1;^I!~OkHOypc)H0(+{JLGXEgjP2TlFd?V#1yxXG71<CC${k(u^jyw4R zxyr<-?V}i-s+^uPcn~QN+oJy4vJP^AfyLnl295IVXC#l>!i}Cp>NmJ4G5Pwd?!*f& z(ES|qCE{o63KGAVNcp6Cw7Tto{k=1|YL!V_=!(5}EIPDPM5Wp0?KIiZ`g_Io^!~-7 zj@Scr_ouPu<igw!j;blKO}h%H{Q2N+21p8qHC{f2`p?voV4<aDEq&T!R7TQm=iG0V zi<SZ+FV#f(#kDW1hzytt2QqutR-(%6C%o*shx*l%Ar4os!gzKepFX-Ys@orz6J>V? z-1CGIU3L}$96-tY=UAR;Qia9~w~4gkBa^x{PpOw_4b`ch6)Qta$2F7j<&*8Nj06G) zL!TDA2qrwE)0=mw**N?<%4|+v5x(wi<ZEcf78(6xGw;Z)*`GzEl=*|s75@91rV}qB z{?}RJfB9I9bNxB}Lcgx^sL*c3Rd?}?d_X;A=KUJX(jMZBM$i$ha8;z1a=quZ^=^5~ z)dJlh>-zZer`RY;;cp6CBz8i}R|vMRbuX#V{k?;GCreB6oMoe?a~QiolC$Qs2V<+x z{A9r#19?IjntQrnZCIANgqOjGXUjDK!iFOs4<G6cwF#HcH>QT!ZvR1W5DG5*p^^mt zFYYRc_;%l-KdrE=DtM1-i2CsGi^l0&*ReaR<y_yQ^qrs`b$Q}8z@`TW6z@WUcH0by zhtR8qcaBQTGZ?Y@slU*q%*ao+{Z3Z)GeZv3Y?)=@+7P=?zp2nqH?+NC5mmXqA<W7T z*`!c~DEo6d72+gK$*+bVJmWt^2wkRixx`$4Xjj5qsvif;cA-V^nRS>6;oqdu6XR05 zj_*x_A1;Vh7ivGNNo|%z-o(e31yEL8!Js`04jD_-E&0>BpY$?JopH=><z;~wg+$!z z2Lo%X*nM9k!W@312V57^JJfE9O@fW|+VeIA#CweNEHdYyS=X+m8a*c0^N;ZIL<F6N zBQAx^Z-JhnxfD43d=VaktozE1SyFi?P1X*kU0m^E@k=*L?`E=F6=axCM<zzdg7x4Z z%xl_Fp|e@DgCF*CKYGQlwp-%;fx%w98u+XGc}GKZ6=vk4#8H?V6|&TT%RoN%17${% zKG*y2RmZKt8QP=M8#%%1<xQc?B8FnJzHa&+n_;fI06>jmEiM0L=lsp@x{usS<)q>H zyWE*yKwKF3Z*k#?UOyMH@47O!;VSH(Bg;1g4-&OLPQRa*O#nwx(zkzW6nm}f(_<A! zeF2m3Vj(ApM!*eQ*>4M+x$Q4I#Jjs#>$|uJhy5U~nrw`LQTM^(qq6AON?$cRl_T}w zzB8?%3P(?-P=*nDNPRX*-J<chW)pMps`n=8@S)FXNXMV%i>kuBGS@|2x!SK~cFXmA z3CiZ?k^}y4>_u_jBx-fQaU=qN4l(UUGD5-Cka)8Y{%=~TqQz9F5md~<_eg&Puz9bu z{rgN43#fF3B{Pm;xj%6&_Hs;yMXwat$K;PcCE6I<txncjt6#{ih^BFWcJd{bU(4w3 ze%{38g23ucIy(sSvy)eO{_(Lrt24pP7J^X-4z0!o`$Bmq!u@ckg_!yLodlo25hZ%| znz~W3o7cv6%ME25^yd>F+#eS{n-d2tZh~TP4&Os#;?;~w7yq2IB+xBLBZQaNY_xN{ z_%wu5Dakvmah82Fycpp(@?DIsp@kgLZz=(U8OJcD7vdEm^eQ@38x%TfhqlvSI1KeJ znxr*L&UgkK<N7e)jy#4lzFaF4N~`m2YdBf2M|keO45$Y(liYt~CT<iKLw5}lG1a%g zXgl=6yNW&0K;DJ6OEy_c%Xd)C(mjiU?!Fp~d4i=dy`bDBE4Ij#&Ug~R$}R~|xBq); z8iPJ0L>3dJaIi9rG`&0hrZr34E5NVBFM8gS`l{X76=gD)H<m~0Fkbpimh7k;{E`*& zdzRv%RL}@#sq^#WYaAISlFcRMO&Hn?O**&XGq0K5qS?mIxr3$YujRTSHCL88zUgk8 zEY`d~%=|uXY~fV+QQ@|+hQ@!$bv5sc%nuEyasc{+#4emMI1*ep-gknFNrDLw;JtZw zo}%B)+sl`4)owV-T@$&|y_yq>sjaflWji!ajXw+`j{UrDlQ?J|;A2)~qH8~4XgCt= z^r?0)tctl8-m^c!i;0dzi|j3ISm32n0;_+A=R$u7)-{DeR?~j+O0TrW@U&G_=efi^ zkRnra=`hI-3;5MjMV-F8dv|7L=4f&kme`~TQHlpnQX%g(A|*cBI|h(40#%s3bOc^P zV5)jSC;R@=)!4D2Z%)h`L7?Yb;)^eu-<3C_%#J~w*oChdp@B?3sX-I-xynE5*xx?M zlu9fstLPt=64RS&_sW>9FtZ6-czbRc3w6KDZvgPP24pv!cft0lW-(OJAkcevO?qSL z(}m9Gl;NI?Gb<|3H3&aD!j+Nf&WLZywz*W$BX@y?*L|ReVPrJs*0$Rjr$&3hGCi0r z^!k>`atUwxRDy&5%eS<4v=7)oEu*0J3zX3=9cp|*zdO}~M1ki{iLHlJ7uKh)kNf<S zd(U2$jXeJY&xeh8HKvP4kVhEdKICnPss^4puL@&CaVBj0?affu<HPj&heqkrKd%f> zsrmoo-d&$YXgoZUDt1ULQAyu2NzDK!$<IkOo+5Btle3Ejzg)||zO)!u9$z!abJMYF zzX~t139_C1g)uRhXBDY7LZ|fSQes)7vTSezRi0IDLhE5N{<OQD0kZNYUzV;6|41xJ z{@N<k+QZZW88a$kNX@KSB#w%k=CUiBCnOk-D!k0k4r2jA-Q$<tBYqm#BCFzu0ABFl z<@9C-id?9p?f$D?ef5^P(9p|bDD#Ch1O#RPoV+AcqU!HUnT$$H&HOZwixy@3O||q; z$!lgk514R7AYkM6O4EfklOXXwN=@&+4&wzZ$;##9=p8={Tt9QPJvxh-{Z<xVVCbH+ zp5CUIrk==3_wsiuuT>A)-7q_7JyB5Pa#P`;<tU00U?nOM3JRb~lM?&K%hoiqlcaN` zVN;0Gy*v!M=MiJnwbY$qO1ACe%9LbeeLg_BH@ccnPdM$jwv0N0*9&GZ+t+Ajx?HPt zC6m~BSod6`r-JFbz<tZNFE)fy?Yv7eJ6%|K$>R{prUiy3>C0bJJ%>(o#hX?el>d?u zM5TL|y)kn;{CLY=80VB!U_QME4^MMr&9|n-_2uF3&slwe>S;8L?(N+$Z#p-;UXfGs ztiZD{`qvEh-k(Wxuq$|27H~wLOsYM)-c(G~>kL<V(EiO-p4DG~X>53de1z{#8sBTa z=#_@8$1A4K#2J_So%QZzXxo44m~;qS$rtu-<1}T~rZST1oANQvS+C9xhJH((tBY#S zosu**&r#%DcOLZDIej6k@k)k$<8yV#iJH@Lf|=P>t@%{nachC}@(tzF`(Hdhue?1n z<?|dd`Vy!5uOPbT-}2~vmU2-czd)FY=i&qRRZCiiXdSNgPIlk}d<mI*LeK<YJrtn^ z)27aYweG-eB*FN$PO<}@Rcsk~S8bU{i1`@WrMZwDc<i}3y1;&)`#UHQlt?#@FBFNY zm!As=h_6r~+*(YZPM}po-<*j}Ni!?37%c6b^MX~jws0bJS^U1{;eCfd?;lJCg7Zk6 z$1z9%c<n&a6udsTFD0&vyxp>TnHV<Pu8t4At7a)3{~6a`63HyJBiI%ner0EmX4Ugn z>@`=6MJo4N->bKDdY9Q<9$+BquoEqDk5GzVFm1m{A_Ug{^R=#i&lmGw4v)F{docpZ zZcJ_m(S_&9=}WZc#bm2o;hH#Le5ZS%1{()+Nr40jyr}&*P&sVe&!4RsNm-emKf9p4 zJddBStiBX5x&4hxhWXD5%Vidk3T2cG5+-C65FGTTh#^>2eGf?w>o_)B_j`+YYOrz- zK8MW4eNUL2Lnx!N@uAy10z5^cL%~c*L-|d@yE1reADFgNDnU90`~r_i=Bt@G^0@G( zu^}o>9mO59)})S6fqp3nv^Lo_XB_g6Gl|Bm_lE-r+O@$zyGJJpWXUkO?XGj7ao%L{ zueHEiXG$7daM_iG$@Jpj-+vKxm3GT=JtY)}PKw925fZ$@;}ZJpLEbC+8zIZ~ZMZ`; zT}&tQX!Q_!S!z)~t#6@nVZHQ)1Z*+<o_S`_5LoWo1K&3X$?2aLlG?if1&$UoWBOV9 z{@Gu$j|aTF3FutulXXH;5o{bu8;~ngkGM$~H^9gA?K9X|4@k5t2v$vpMm+sue$~$U zK+~YxknlV>)udP_)2Qjyp4u5L%DkrSnq$hgg9uRzxO67c5S$gn=K&JO^M2pI;hx8b zr#WiPED8}{s<5}!TU*VD7-sdCk?^^vt7bXt(>Ku~5ZRWNd><2w@I%fWdq}_2$F>T5 zjTejlpL@6ewsh!`-%YM7<BppSN&t-Vv<Lv;uALBaQ)MLp2QhG?M#^kw>IcSN?uraT z1ujd2fJCWV_N<6beV&z<bf>FZnScCL+vii{vkbn@gECa)pmi^^=1hTzcG(t=<Y**4 z>hpW+y_bCXLr=+FcA=e%c~>Yfb)}F>(F5HhaGwZFEn-Zd52nVW7rneE$A3EP-u-a) zmiOiII@5v6@bckpgfO8D(}s-vm;c2(f2s-J*)_uCl{tr@h6)Dvsv72bxHTri5<(nX z(^1&dk;%@l1geWGM4rnmsHT4v6if&~kJGrHzL$_)vH9-QBGUG)LLl*Hd@$GBJ4&2Q z&m3#<!r%9)2y>X=7&VtN*C3@85nQ2Zf5Dc7&1j8oMBGCZmZm<ClDo$KRqc6g`+{y$ zxs6qYw@2rNWH{Zo9$yQ)w`Mrs#I4D<HVLWmSt{9OltZI}Y@*`2{;Fl8`{F#pK#c3j z<fVh7O2{8hO7>T0eTA}4?MO<_Ma7FWguT_|)nwbW>iPz?mh9SfxzH_%n0o9@rd#di z!RZzc8oaEPbRtbHSguOY%}4H_RK9@~J*EH@jrTV%ns?V2V`Jxn;e8X3!t9>O5;1Ty zq2wcn$fLF$PA<Ck9sk7D<LV1^Nsl)jloRJ169bhj*zDx}bu`UjWA*gGooK=Dl<vtN z2L)Esh6HAhd@`8Bru8!vr)KxItC2BIzF0yQrKPmb+j5l#(Vm<sT@62@{7)YZT9iDQ z5<P<}fK5DD?(sKZkFG>smZLw}VO^0ce7KXU&{*2D`j(@)rs*e+rSwW4Q*3-qAms<( z6mWh1>rR=<?U3SaIJ1PBBsxgzI_so_WW&`%tx(y~phHjyg=1p;MF_Cg!Ri>!?7+=2 zR89207SxLU5jAI)tehvHYnH>z&?ZI3e#<|*!0|$bAg+naimX?4pnGbw$#bPS9^2da ze(&i~%ZsE`rN=xvmcE(eD*~%?0)AzMJ3EL`?|pxOaeotf{3peRZt%DJleZ;?_OtSr z@tOI(Cwfxq3McWWUA>}0P+;#*ESR1oN)#j@@ezaA;xgQccT{#~P08j8S7TFsIM0MU z=AqPQ!K9*8o7}cqj(aSShzdu^3Fw2%hITicHMTD+d)iVo9Iu4ljfo>t6xr@N>@2&+ zdP)WS3}5d%ZS;G#5h)pV3J_$Tfg|&oVD~h!yJ2WRPLj|5NW#CkD9~+PZix51g<F<k z-ltijkXVpM5d@|OkwY9Xoek(J{k~A4PnGT<nl94xgqM`@$NGy(X4&E!LwAnuvy*q; zV6llc_Re2{Rs=U>r!@}M?^P8|%4IP-rDlkj_qI&wF8e*CRnaUh)3zGS6FbZ(8WEMU zX+#bqZ^K=AW0AE%X?U*%gP_xa?0mq@Zh@u5{rvSKuGYdVjzlHaTC#%sqMYA;aK0Fz z6l&?3Prx({c;A3(Hb+`@5^{N?8yu+JSts3*%<!73%A@VYfFyKVlL!0Fn+_{V*(uEw zPO2n_PrC_SZ+UoH@D?@Iwr(s+9C;lj{e@emkMmp>UtwiyHSRV(`7AebfX$bAGa9nd z4Ny#Dx}{&AN4J0@0kpwXyBSYW@Y`LI8}aER!DVfC{DTdHBFxEF^oqtck*j$Qu^Et= zjZ=%Q{kAZ_v&C?g>%0lIftj<tGd(31(9Y9318|V&;z~;0T59@~p6!@LsxFTm5c^2@ zlEnIycok$MNC;AZVIEI@`Kzj-BA2xf_uF>ipH8>ruqwraQDdhD*>8#3ViE~8Pv7Lw zeUr5GY`yYhka;z~4!PrqYdbLvHzhHTM;v)mfyz=E^<BA(azxo4?pZ}_<bK|z%;7k0 z)1vb#3_xg8JS^g1C^3b%pGgV*y!T<L=V>B`yQE+xKaGjy>5J9WgY~qnl~!HN+m^<t zf6J5qkhEC_n|(-rn|J)8!d5Kedo^k>`=k8=+~Gr2u;W3#DLgKZ^YVRQ3Iim5{5wZ} zH{CU&ZWsRAN#k6wB1|-Afe>NIV>+B_!*Y0i?Vp87soOe5afnw0EMCc)AX7}50f|fm z>dK3E@b~3$1-GZT9z0h((H9E7`uTS7wfD&19H-pEB&rk~oi5=+r)(p^2Ax9CwYWS6 zHyJRE!6qj|lB5P-M4je--$fnB*k_bOX>i2_yz!~n-gD1k!Wy%}YV#ur>(5WyKMOwU z?t|EqU5amfJ2Mo@6=YU-^ssBH=kl&Sn8JhY2YuI#?Ayh(5=&U7QhgGE9$d8fplrIW zUNEH1-(PSzJ@Am1m1sSU1(M`zfGohWfC}evh(2#@fEV!(beGsHilCaE*RobaGK`j0 zKTUSZUB3H*U#~zJ{oXeud<0Yr88N+V>(Pfj9LaAy)LPTC(=GgO+88{v`Ymx&-qWZ5 zb5fK16{;umyur|0mv3PVuu<!#lax1Vl%F9l&pcn&h9xK?M^o9Yh2C?|$N5+bfMo<c z*#-=}OLlruPhp&{AX*37-zm2U_8vC5cfYH>0eEoFa4L$s-5D)Ij(KNXmXAin4NDr* zPckNFk&L0IQ}_dApLWL#l+QuWv$A31)Odg2#Fs74?PXK-{PY|;Y+CGr$tMmmh+LQ( z>|`WNz_E0<AfGTNW#}aSLB&q))JH{b7I`=SQL0%ma_UCz*8VK|sD|&=xkB|O{%Ajm zw_ZD$#0lxeH1$+?`Wu53@h{7Y!M(d$Mv_G}^)q&#!#}^~-0`zn>bj3E;5r7)W55Jq z>F>Y<32M@TZ~TIr>Y3vapLVfnIhGd8)XKFJu=>X7{)3yj={4v5jkJ%%;0sxO?Ea!r zH<+=3cgL}SK;FBMl=+d3c5c7ae&mK5=i2<5_ALq4TZWtYugQc3Bl^3oO}(?Nw{|kB zwl}uF%#iARj-9pWKc^NMAhYQc(y=2d9@<h)>p9NikFuG9<L@H~q78-FE<4Ovc_liD z8toUIj_+F^N>@cg_KdbXx&xC;F3>9pSciGAL8gr)urE&7#^F|LqdgssdtTto^f1U) z;wCqd{~GEn<o+wmB_w?(*PkxdcDgV$VCnq(QMv2F8zazyNjI-!MYY~LKW?+*EwK)u zGD6U}gP8;Nxr_>)>SC(IdhDbY&7FkSIjy)<drB^fqQgU;Pb3AtkUi6DtDuq&(<X6x zoZC$O#QA}wzC@19Uhhx>S&bD2)t0%#h7Dd#+d5@8)}(3okSOsdRk$WpF2Fxk<3seL z`~j=e(5$!DoB4EUquj^E$#1}y&&KXNeIcD;CFqdRxw)kvgAe=ezyuN}^5X{kfUAZ+ zoZV5Q^Tg6nn#?#hkR~PqueFNFZ^uN-Ct=&o1<CK$e(iGTa4-b~$F(H@eVmC1#?wUw z(ot=)c5>pKmll$%O2#Vj_O?GsPH9{@F;e7L3qASyucx6XcN%aPCpNhLl{DN%Pbm29 zP9W9jXkU<V?o{VJ_NCO(H-O4@gRSy;rlqdwM#I;PnIm^KghBg7UIt8YWJ%0Cz_wf$ znfc^xdcM3<kyz4UaV7RgmPFdjwgAZl-?W>LkzOE2!~5ytfZ2V!2K+NYx*JRlT6QhP z=gZl(H(q#cD0}D4QpCxeJ{nv09dOybk3Yra13A-eWc(V$hv-&61(inI$r;BR#r$%k z3xWFv)v`9XT|gu6eMw?4k#1k{vV%}=chSOzkaTMNxT!vSx=EsF(Qk-Df8Da}*7+;G z%$sLY8cdlR{15^9dt|6*)ISJk7c@|S3gs<7fhYeC;>DY_3JBd4-NW3)tnjBS$1!A_ z1fo)9{a^c=#*W|v9q|_n_M=rff63Y||6KN?l$-c^9dBo{9ASTcUE&wjRPGiQ9A&<5 zr+1pFpS`*12sA12V3y8%gnbmUcbvt3n<R$Y%YBZTsDKQT=&1rKs!V#0h8k5bKIx8B zwnE?c`U;H%FWoW`kxoo$hA|MT7Xc~{EfI|Py(Qy5YdxFg8BTHJ^MUbLFwV&;Qx^7M ztGh7=8>DLa3Ht9eJ&edgm=8p60-NoSJ*}T{MW1UX-&ftzb@VE{9c3X~u~x18kUBBv zO6K@C*UVqmnp_qW{kQ40?#A&yDdQ+56MOTWj12Jn<g)w{)iYCK;#a!&sg=})_;ogR zckCP6k|YPj8k(ArJ6Xb3SR~#rDynA+_=wM2g)L?S-9|94z<=&Jm~ETRjf7o~d50^_ zm=t-ZH{R&3tn8s*uEhL+*8qp?!e~K>L={y^;52(zg@_lx)8<WPEP2i!tA0;?vz62k z(>f=9Ay0fh4fh6W6pG!zz+`dY;BY96bzyCMg3myAb%iD+QOe)hAb~)yj$-f~)Bc@L z3*rF0&!K#@ap>(E^;KdEx-XMg82iLW#P#|8(=vl!svSF;!MLHcxTc<QCdj9!zvOKs z<&5zesOg3>lnJMC3pKqS@pyskJGRR<ZFO?QUBe{lDAAF1`*w>165f8Xu=G482S1Z8 zkZUy-kV~R-E#k-msGb~ig#|oWYEvim1e$W9C4TNTR1<}`{Rh}<l#62Rn6Bsae6hG2 zWS!eycAM3Al)818{|s#^ZzWUrrF-eh*{1<O>7jsF*g~SzLirb={CG1k<MA$&Wy?e# zN4mx7H>(xF)!F3XGQRYz=K}G1ZK>VEM5H5W0$H;GXsBlA^dd1zk@avE&9C(-FT9!i zGDq($T-dQcy?(_{F2dYU_Hz==&68I+?WlV24YzZbsG};Ck?*vVkkFg1iMmB{4}aBY z+FrF*@(Fgz?Mq9`HkaKTtIwP8R24d|v)(OU<|%S&w|e{ixtqVRN&W3<?;8tZ#-%M@ ztCwH>veQf>)@DbS3s%+PC&`4!3k4`IVIIAR<Qc)}?_Y<s>HY%z+90V5d_wO%%LE&@ z6Kd#nmTcH_>kh6zxgt6pFp3_J15<$AI;7F^U=FAawzN|SqH5jDxGiJNZQ5fQG(sO~ zl7x<<d^akc$$;hm`6O7;r_0CyC*FNt2osO@rrT`th5QjCL<t*#)J<PKq!+Xhpyz+m zOcpTekF1;9vB4ouj64lU+ys6NTzYFKvQgLVCcD>F7x(()pZ(YUSnoKcC3}cG6EBl; z+br)`NwAZwn?QtYcV)DS`Fh!?Fbi_1H3&7DZ7L7jk1?#TPfV@lID?)F6^(ia+W#d} zfT~{BwL4&?nV_6=-pA}m%j8;9Rq`pk3-9v&$*w}THKhGK^Govde^E(m=Gmskb8noH zkbnjEjn4z=tEmX`X+X$<-Oe2(K7G`6bJ-0Csb19mc=~kEg?lT+#HO2TcKe=Ztyd=a zQ$*D<ZP^7cRAE+45G#2d+oR%?ZP|Bostgi8CrdFSMRjes@1EE^8L`km@4f;cCjH%u zPT2*ccR39Sk*E&VenlA9lKccDktTEXMvvk{Hc@liYM-Dowbz>Z6!AXk&gzqk1_A5) zo*A9tqkR2VVtrG2ymUVbB)xBpP1IKv<e25lFSNNG^w6HRO2dZ0Op+jJ(pcwBJac}m z3*L+)FDJ3Jp+Duf@HD$$ioiSnwH9a3AIjIbEQ@C;BZ%U~1UikWqi~*qDZR;nKNc&K z!?OzUoUU_U0gn@2jkDRyFn39Tk7w($4Pw9JGhBtfh$`KlG!WWDIA!d1Wc+IutugkW zBg}vGGc)tLS|vjcKE*oobEn;K-j_Gb%+EF`nWqgFO%JDf$-AfE-JRAC39D|qg<TOv zED^iGa>%_8R<V>Ta%UumOeUI~7p=VXP{WSPXc!++mGBYUtXAP2n@{Wbi|AaRtZ=FL z1Np$8=qVQ7$+u<fZ$FMZBvJX|$k9egub}#9WE6<8b}pbv&U!`7&sM!XC+UyC%O|~H z(E&45#0`Wous1-u2g%be=~)1o`lkj@o8=Kk`-Qm!Q)AW~bvh_~jjN3J(XUk}UcP7I z%`F<G23F#pUp;C=i)X65<&Gr=6a7A7x9ZEs>8y*arcI0!^s4eDSmiS?lUZ`9e(s>H z#x8zqsMs`&5x^ePzRb>O$3wO8y6r|7MUBKQ%X14vpijXxzy4Z^Ykx3E)l(GkJOa}p zdnPu!aPR4^d&m%Wt1M58zjx%H_$|FBzI?WR?=P9+43xWJ56s);ynh8Y-AUK*3&uxq zAL%=njM~~_IcYMuTj*curzLR4uB$5WK18{fM+`iFabijcypZ@4oE_YYr2GS8s-1Q^ z^vWFIuC?oO6o`?!@Ov2j;x-o<g`3e81qG)TQv-GHuMNq!v{}#|=#Kic%eJJa%7qz< z<-;azSqi(%l6*rRg=h6Ohrz_#{-{d8b5Chk19#Yy=`UD}C?)XsGj3Ww_L11feA3UH zH1QpnFG$?@r2s+h>f*;qJWLn&2wC<QYMClVJt;Ak){PA>K+h@TtG|SK*VgQL^69rH zukYRUjlbla0kQrG-RP4P?hm#OZ124D%hT)CD`~@h*@c^t3?Er@p8u3_xdV8su=V?I zUr0hI)R?h!w8BvVkN_~xvh4~adQ2qI*L}(sUY+`cRv+wlqf+L+*?PH_tVO;8aWB=u zAK6+n^$tJFL~eAWd@{Wx+SkXeLVP-{;xE}7jUt{&%Pk0NJVMR!LWeZn1b7SV$93K% zI21y}d#qnp^WzQ{;qKd$%dFZThJ0_o@kHOC|H>z%%bZYswTT_4eNuxTjd??2CLsG( zB%0>bc)c;pj_A4Az^5;gkw$a;O!XEV7>Xap>x(y%2NqzzR{Fvv@qmA?0KxdexVuog zkM{~8xL@+~!0dUL{XftV<=<pKstXmTqEvOi-{EPW1*U9(TQv9@WE)jMRGn^@DKJ7g zx^btRh;^?m3|@U!=vr#|%&sD-L&o~jh+$ukc66(HarV^GMxb$`t@uTAzQ}olgu1ol zz^1OBscrdW;u=TRMtafD;`GV_k)ohfkM)#DUJhb7rU0kZmt7L8pj_E0LzuFhPBV0V z@XmF-c*Us1#)+=AM)O)pOR%u=^>zo8!>&1g5n%R1mGD%rNK)Y`4)}-jE1SU#t~C&; z;r_ja`KotkU9W6nv)uQ*KNeXyNU*S7(smNG(YuDHJ%<Jb3w02MpRGc&*FTJsKX?qe z11}FY)Ht(lKUoCy^*Bc(!a9<XvKM|+IH|BL>|{o>THtU=ar5DZ%Lm;h2QPg_BxJp| zDr43wzpkv%Gu$)GZ@aE@Y};V0y({rR&$qh#88)Q2U{BP_-wfJy+uBezVxzq<SHWqj z1#3@7NWpephb^2m<tgF268Ug*2}I+-uY{M9D(c`TIIjwx#T2oh?H(s>b{e2@;SWxN zO1*a@g2}pG%_TuN0W*IM+&(rO+2_fM-iSWh=X4m6INZW5<}0kFuUkD3c5i#1>HMUx zj%zhFJhMZBTPz)eHEj!P>iPs|iu7X-C3qAAiXxL*o)t*@-D|T;w{5jq@j3`yP`w*3 zQeC%k_21!0#gDDjcQ6z8e)DF{Td4npJ_Nzc2~i-SKl!yOi3+2B<7iS5?ol_AslgMr zH7nlsN&5B@rvrllAANh7U^VoYm3dHo{M8tfwTgvKWunn+CxaCLK8XD~zF)68D)g7E z*FT|t;T8jD*t69=iU+@cvc3P6|G;BO0*?Cdm+XopNSK#H6EK3K!@Qgpn6W;GtoV85 zJ>u6hUi$K4BPa+L!iIP}4Z8ucIBS36@=Ja(8s9ET+bTsr!c$zq9%u278kg|McjiL^ zw1mMhJ3g<bp?YzFR%t%inztI;d?-?7orBggO>i4h)}ksgNnd(ZVzM{A7SeYAU*y3^ z5^vPMYykI8xk1odw52PwBP!1vw_S?zC^G)c%4F#F899v^J}l2~4OS|Gx?G5KV>@in z<2#WhP+g#6)$2v;ZTZ+kj7)xcx_mPCG~x6}skL@zH0+j~3{bjde`C@AVNL3rQ@S?N zbyzp@2K;5Nt2>MW#~MRaC>5-n_4IY&JR83?%A}LH)7LC{%Vm8`5ucd-hjOPI^$)@M zD?tJh)CaNYt+TP+426VTwHkSa(XrzULJbo)e1$tT`n?W@r^<F+)QbW#cJV?8q~>YP zQ+wHAoN~zXduBx<BN_Lb2jpyP5bU~wis@aURY8~2Q;jh_UG?6(ZdfEG@%b##0qxC1 zw3{a0NAGhiLSU90h8Z5HHXkWWL*9S}|7D|FdYf=wGYy}u&~>^Jq6ff?@dq|rIWUvh z7q_k7=H0`G?|qc+ZJSqXOda4hdGu=Q^J_M1{acg%IpU>5Tj6#6zzSG+1dlAC2#)nM zMVCZX6V1zprKA*?Zc_0)`+>2&PA#w!zxbWzea>pmICg(N!aKIBG59r!-<@0wxcm1a zOBXjM&`B5WN-5N5Ne4R&+SmLj&f<_VC`X0VZVak&9Vy>1GcOJ>*b&t+k0JRn6=L#O z4cOkNb-%ZF*OU*&vL{A9-tX@p{<Z#gdGdZ2LDV2|L7T{QG031kHLk|OQu^{;(&V?6 z*DT6=I^)xGueVxf0JOh@ZU9+3kR^~A3Ty|}=CWrH>uczIQ*kzDnOb`0)3{=H?qdiJ zPRr~Mp92)O11Wfy@24v~c;>e%c}ZpERsEGk5jy0Q><b#`3?us)J)n;nj1H8JSFucT znWz-RYb88a{ODHR%H;3uDK0+5nD@pioo9nHMoVEPc4R|ruTs#<L->Ed54Hco58uPJ z84Sjzay1(=^dHUZR%IJ9npn)rx$)j4$PI>;bazFp+`;8X9{*Njgg(b(PP^Tz*;tG} zTZ0Y+l5Edl9ybG{WzWo0&3<^dhK>+AC5d1{4IYf9j3$ZxyCdu;?5Yv#AM4C2X2eNm zRH=4QO;P&(EjLb0$d~x*n$K#6B0^Kj0+I8M-+2Ua(s58ZINCtyw0A|O{gcV;D=Fr} z`1AFbbONKPI(}#!F|A42d+y+QAOl$t!hme*cc@PYLvwTX1cfFJtglHFsFpyV$+ZZ6 zBL6H*p5v&HC_6kneOBdK6d2BtBDENT3<J~@3L|TVMOG$$6~Zv9hm0l}nCT+p&VZTh zRsBr2t>aX<1SH|)C!Tkg3b&7;>`S@oF}J|_7SLCxZ;5i~vX6Cyc}Zo3^g>VG4cty? z<?)~6dI6gN$_v(hFc0Y$jv(ASiqE3~_mXI*6nvF>|H#L5PJ4Mp?l-qy_$T&6F+bEi z{g^M+Om-QCM$8+bPb1r}V2o~V+A~k?0H&ljKUH+R?4jSL{UZ6}uHVwC_q7OCz|W7Z z(jgi7Z4Mxoha8ovg`ogLz=DgbOcZaMeDCGWN?cj1jPE`PW7P8T&2yJwhe=h!z+w9H z_4R&>Mhd4K&;ErSu>68i9U_M!D-7vhb6%vSuE*z87qzGASsLl{-XrP|D)1>7%5Lcx z9^v-6cFWIJzX|_r*~<X&=(?R4_Gv>qV=T5SZ_;m5@-2Wm@aYFHRdI?)UDsZ8pdi|L z0{3bRurb@QY_RI-cD82KW#{L2oPk}*t|tHFXc_IDR$N~kQ*x|9s1g7$3z#7SEN>FS z1jajhg?ai5F6rxUHwMl}w}V)=%qm4{G8`lv-`*)58jzho-n~Ay(sSckLp+;j)mQpn zE**xunt<Cf7a18jIT@KULi=V^m0{tU@v^!lKq8JA^JNLl!rrTQL%SX5$^H-E!5;t~ z8t1YkGqO5biU6?O_uyYP&^09qhHka6xo$8EQ52srz}tY_r70lF!=ocLXXVv}khUN( zkLERz6H~;wsutn~9~DKB7Flg-;Vs^d>f2Q0j>2pR8UmnRy0$^!ztDu7!*4^T&;v0T zUV7U?<B^bn$^Af$x7R4CAFyM&&k*8r-P3&{<>AsZRZ}TCof|W_=-{^_G74gjtZm8% z6%Q2@))S}J(l-%xU5Y84gW~`oC!MeZ^~KW7PoDO&ST1Pgd*dwazSTD71-9lbE!b_c zv_YrI9xMG5r2K?CsBva&VHy{_tB*0FhxLJLH)1~xP!M&oNX9>*K_&j{ea^GYna_h6 z*sjz*$-Hre(_@=P4mB8cMC1Q(=2bnn%J4<6%ByU}EW!F0%K;anw=~g7OgBm&%Rrm4 z&j!TD)qp$U+B!iH?Hzjv=`tjEp!KD1+iu+~Z~Q{hCQ#v5%dYl=<h{H$Bxp)K$WBSl z-cBo|w3a$keCf>%zaCC`K9y>jQxaDopVls)h$MEN3M^W~4rqq#R(NU45b<C)DiYsl z5o!8lLL1FYkS>GFydpXWNo;iBg+98U1c~|vdQdqvKELe<ds-)YYtc5*vI4f$#iFKP zLfCCr#hvy$u*X9l^}KUeQtZ4wb%fy8XOze@nEet6!;U3u#)xzA1>JC#82oA1<$(B} zPo?dKDZL)!c;d}9DzHF&#hzsr!bgAq9n-IY@@6)2p7uE!JUNL9i?hV!jz_QKg?m$I zJp2d`2e{?*QumZHs&>Czc@Y=qy;A-rQMavZJ1sB7nHg*Nq{P(9dT;OCLG!dY3*P&y zXmH*ZFE8dOqCl;Fn_oeAXR|lkI6Y$-H8WkXchKfK-OkyY-^9~~12&aVf+PsrCe1BC zAv+$!<5lEw^=r2aqT5M<Ih7%q;-_c`n_Zt*Jl{abxzdT{B+-#_X9PV@gqP`;5_-*Q zRFccb>u*|l-849HUhLMf&|o~Te0JdR@v@-nMFm{~k`lxNy+0ulz^&R1VgZ`Sun-sj zb(t8$ZzF>g->%fIrLvLyC^LcdO1`&ECAJl!^<%K9DCiN5g<k~+LaVa+v~%O9%Y3z+ zC56$J*|dwOlDJ^tjiC#L#-uWkr`_4Jm6CPVoe+Gy^lv&;Oa$?H*sD`}PC^@Q)64UP z?ma1}!87V^_X4)%V0V=0@?SEk4`l1D;248ySogxlAdR(Fj1|7|4X#cfPg^Eez=lu= z`_!Sgwe^xL?VEvkjuSC%*TJ)Ervk+e<A#{_c%s9_yy*x$dn<p*G-@-fb&fuMzQva+ zk+Y}y{`-)c40Ahxga#5l%OUUF6uqlFGM{W_M@_%3>1d4o;TYFFoN?Vs)xUkc1)DKz zVC_E9C7mU24L_4J2;u*OU%7*-QSh+Hpi;70DOyQ0&JM^5$WR@y2yFw!46&sAKg_*% zJlp@jH>{;qwM(fPHHs=qjn+zAU$shFZLJ{HQbI}9CK9yvDryv!+SDpykJzJ%+N(uk z)lMjaB)vc1bFSaH&bjY%&UNm8&UOBXcqDm{&-?Qpukjo}B(XzCX`OA1i{)SKGK582 z294~?if%J2*CtE96t8!I818ats1VhPX11>HuD<0{ym6WM{2-LH(~0Ins*zRY8vS`Y z0mg2Q2~2q1Y51tNK`RL>{_X5tDt2zIASkiLHFdy$z7;d2x&XN83@ri<dcq9A88^?e zq4xI09JJp&weL#}A>14zt54&exz7Fk{3p*D$yV?=vOl4waWS3seEVoui+D|B|D$nH zlPgW3qW2xAZ?+CSWojLKrBE%%BPw^pq;kFNVAR3+_wLV3uN#rOkr~5}>u269r{@{7 zXYLuMak^f;dZQ+$-hjik&jQGkKnJyCOc8~bZ2f7?tVIJirs2K_<1t_7uMJ6V+pj<r zz<%a6e=KU0p?mS*!wZ24b-0#^z8G4Ybl3yor48^Whp?{3VCOHuQA&maUSr$8{pAJL z)2>%J*Na4G_q~|>#fGnwO5lFc>B|rRw1}p5@L`?k5F9ZW5RF#jsmAMjGF9Kn|Ji9D zt6u*i87{|>Sa0W$_RQcN+HWz3(|i&~G{yy6rnDJC!Y&|Hh&ak+Q{IlpVTL?QqCb(- z7#~~7RP8TvPzmGFBtre=q-O~UtA1Uwb89-VC*%1$t5urk-16@gc5}8D>OXOB%;WpD zEG=28C+S$tX83v<_CXOb^@zZa)F%r7l-IY3ox+mM-#rZncxVBrc6C|H5yH%iSVJf_ z>JXx#y95_&uNMexD@T-R<8|9HtVnL6S2`ZX<aof(_9o|3<V^Q~iVnxly1rzBvA(8$ zSxfWrgZEG0A66W-IE3fG_)N=$Eai-HM`B~vvWNX-@`k?v;G98@Y=E;?Xv0y-L$`GN zc<g~vFN4lG35>{OAE*L|DjPv@^F$-6dmDcilLH~Zu#4Ya>nF`3;2D{bZeMEF+`lxy zTg^BAx{#4Oh@Hmw3&yN*y+Ja}W5Y$}J~TZl3&HuU#bdW=6fB;BO;8v1t0?22k}#>o zCRQ%LM-wG^(G8Lnfdg|~XG}t5KF8+W>MDy(E81&bNgLig&{73F<*u%yYYt;u&ikOD z_F)gn3eMhT<cVuLVB)*!KDiiYW<NV>!>UlE_I|kswM^@@6Z#VJ`GTfHTZ_za(+$!M zJmt`D@Xgs`#6iF8UC9WS?VQY?)^@wS$r5`xN7)XK2Db`^Da=IGb}$?AIl;yI_V*Hx z=I7nKhW@2L@19G1@bU50#-&B|0ELaQL~|I{Y%_p3dQkLbRF)=6R@WtY@GF%o2hSDL zI}SFQ7fZ98va)kv_?-EP^X;og$2eI-wKSE3ap;S(iOE^_`7V+iTa62Z^Q}o<Sa4Fx zH7DgE@0+^@`Ua}+v&+SgTml}FdO9Hy$CF$31(b_bBRXO22mv^Z*E5cNgEvht>~Zy* z2eqS~@-+~rPLX%tTAnk;dy7ZUzDZI)q-dXLBXy`LG%lnkaeqEelJw*-NSP{df0$xM zFm(KD<}v@LK&3;&^SQ4}>yzfiMMR!%(MxVX*iql+7>G7+@ItDF#KFV@IF8+3RamgL zMw{Eu@JOC1o=${Ep<hIz_JVb4g0a)qP#fsnydk0J3Xzs_i}YP@AFqUZ>Gwr1`f8=L zgdWo_k#Wr&{lattN&AiUU$4L5XVX77u|6Z5TQ_^nEr!Xq{H`1+Dp~+C`xzscp45y{ z@`XCjRcDq`8kErC7<w=q#)4FOvj~aO61hXtZEt8qcdn@4C?Y>wnUhLmHI)pO=&JYL z^=ja3?)mofEVyH6R;C*z(?XUnUFXjmh)u+A$XJUJG#fW}^T*|u>PB<nUmD{}w>J-o zUmG0|O$xC4s3CL(tbJ(O(%JwPhGP6qk#;Li;;oz(<9qSsq|mz0C2%Q(LC&|!d<+mo zV-Hj73Dtn-K=7JZjBXH=7hyihKaPStEvAC)UaCBaVp%@7lsJ~=d?x(C%G>5Gk4As6 zr}MD0f8Oh>ZdwqvQnT!pk`!=N!P%W}1#)^V<}LbiP}QBgva=s%SLC^TiWlWO=coGt zKidd`Jnsh$_s>o?*T$4~Sgh72Xwuc+?Ip0kD`WRH3L>SJv0T!f>8p1dKVu5Oc8~}a zFb~cFcFrfXqtk3oDwNjol{VQ}$z!Hk&V^M}`p%vt!OkUfW<jxr?rb(7x-EcIq~-&H zxog6jMAHa@HMqk!KxJ+l0N>pewg?ZOwlF{4`1-~htlPU>Z((Ml*M|l6^Y8|h5ZmYZ zYidRfPz#HhPO;EAae*hCy65RyDeC)WKZM!x)Jki8j*ld$-Wu07G+Li4lD}s`k_)i! zv2R7+3!t{Pmt_~73k!2cUwhSRpSyhBIDiTt>t(t%2yVw%e>;*uWdXtRKaplXMGx!H zUAD^153Uz7lI1R8f2eYjrs6)49C?lTPN^_Hnvj-^XMbe!@cuQrXa6pd2q+K%ub+M2 z@1PVcRC4Zl&jutr>W!J0^HcXX(I*dN+ohhU-~L@B^~qG5K^-!usb->Fv-q*oEv{5w zN9Hm{q_%sWr+~ui#2%7k)2u~@2pl2j{>ppQtCmW-0A()On#c8C0XIhre^_a$b-wn+ zW$T>+*{ow1{k5M5NE%;`qSv1Y1q|uD<7B?gU1mHw%l(H=ih=$MpsN^S_m@jhj|SUR zmP>H?ocQq=_Tken!yLlDbwKZf+%vojfQt$SzWcw}e%;@#my}FQ3*e^fIHxr2!tnWy zWLk1010k(S?Bu#w0>tl3-J^F9`im0Wti_EnyWQ@vTj(|;Ee&$|0i4W>cku=~RTF-( z#U%Fj7U4SI(u7wpcdFB&(D$c;=&&YrEVrzdI9@sbIzFPOF$0A0EA;@2TxRYJV3QZw z9b^HrmZ&qCk`!MWZ7NT{)pg4cQ!2}B6x?}ta=Fb5Q7AY<O?~P<I+L57s9&taWF8GI z98@1+e#&;|R`(5);rm{fp(3AKZ?MpkME??#6j~d5R9F81VCwuE6zE04iFT{qJ7Ro7 zpADqy(pui$n@!NZF8Lc6q09o|%p_Uvw7TBRS-(X$;olNzh28ovZIfZ0cOW@*8$TEh z=0Qzkh(;j5%8`rW?du#s*x^|_R8>prs{Rbs5zE^o7MV{j!xEGQpJ!z5|0Y%Ufz{C= zNW(vLX94d1SFV;*=qb@dKoH2x^MJ}GWmOor`T6mi#Kuzj#9s9{P^nhrHPs@%T83b@ z>+U1D*^#zS|2`xCPmf&tAJUGW&Yrv1UJ$Q;VB07XzXb^XmfUk`+lE^T^#{5^vI8sl zXRoT<ZtJnU^WyXMn+!`pZz$4RVA3tqn30ho1LMa}H+@(z{K$^kC_Lti_{UBz1KIZ2 zn?+Ljfe!Cg>DM6Hk*C}KVGeg+!7eeeZ$K-O&h{<;%bMWFA_=E1-7IqaWGr2*C|^ZC zmN*F4`SR$UUTc@W4n17eE&sZag6tE!pOew2Vu2Ap-}^L-z9^?}^_J4H)a`hV8ueG! z=^Jw?n;rC-NfO-pS4zH1xP*7rndq%Mo?K_m$XMhnlFEvHYY}34D)j|MP*l-v9vCWb z-m3sZ;a&URi?7Ll77#}@@ztILYFohaV@w?qd0xcbS#>VRTjAl<*w_OZnICbRt=<}f zaZcVzJ&%mD1NCLY)5a}t&t)uf<Jp*2%Ylmwth{8)DEK>{nvr09u(Y~nGJM-S+%ixh zQ|mp>f$wm?NGi|Xf6DH~6c@%Ae&*8!*B|=btcE%Y=CSIwe2n7p-A)El1+NUg_5z|3 z|KhiO;jcZ8ILoJja&+Q!3V>rN!|;U}sczpcjZXH8{ep+Lp*dPe0Jl(x^dL!Y)&eQ% zI=PF))mHn;oLt;4%wIo-?T;uOA>4Ghtx^%wX4>s{U2LYgzhm9?w;|KdD)D4eBgo`2 z{}GzTTn?;!BsCknY1l-&+mcNzr$q51sD534=sum-XQ{Jg;LyL7pZ>r<6H{JlsKW$( zEce8jv$SROFmCyF&6Ah0R}HR~wdIP+wE+&Gx&OYTz<*&n{;%mukB<N^+ee{KRN%P% ztFbMs<)HwiKPg!j$N{GFfhGT0?IiO*)T8(}S{47^cF}?>e+OQu24wb}GZ}!oLh}NQ zs#oGjzp=cI!eXPwsBp*s<HGsJHzlx>0hBE5!ABx9t&JCV{JOEccH`fB@z;O#PySE% z9R1P`Sq?|Z+B*mb<Td2>j?N!Pwc~cL0k>m=mlh}ks6+lIZ%dt~{sVmZZ=N3j!<yQ& zvT;ZK_Da%8BsFYUuRz4)dun^6^QwjkvaR7acb*Je$FE$$*rxAi*{w$FLjEJa+=se; z>VVy(Xhv-Pr+{s2+38^&?pE?M$dSdfdD=i4f@+XcUcd2;>%f|rNSkz{xHv<H7ng~N zK7v;11-szNfnUuEM|{(`A-bcFuN1yd7O+7q%}zPy7izkv+34`H0rrm19X8TluQp3u zp0bq6F8sSfcItmWyt5a$O;in>?Lf^23q8Yn^?iByr(h!JHs?QdOOqN*fV_);EABYn zd~$Ms1yr4~*_Mr(K(i~M**0cEOY^6H%}I=CK)BP~?^QN;r~6-AQm9Rh2CDlPSp(Td zUg=uW{r-C{R<m5-<H*QtB1I;lwobPIU+UgX?vd43g5SZHe?OwP6NYdvYk20lNxC^^ zM?U{I^In?K7^~&hb*0tvst8CU(FCP2QkPhVePrxD@zJOP0LR{E4+k&I{-Ha%>)k4U z!T<m<*1m4H%$JK$LveO7%m?h$WDNmgT>EiyRk5S+`P$@}!JWrGY1{S*zLHwDF`P_4 z73iH}xy{PT+y@=G{H8p)A6XFDZKN)(OQ+Y{=v{daN-u-M>dJvP9^U_#DB*vP;J+Tt z{~NzYzfvOv@<iSzO}xuEEW){|s6{#px@A0ms=}@jd*d-{;zOe-b>CY9YC#xDbercN zx@C6EKfFQ5Y%czxi+^qe92n-f->0lpw}MWTe*K}V0dICKqC*;}2L<_#Ew@JUMi6q? zl^EAgvG?tB6lJb#s~45+=+^S6Jb)HAiYr`mf(nMvIZz0pXJ(|;h2eBJHTLsf3F(OR z=Dr+x{Y6&yp<c7JQ{X>ThNK0e{rN5Ltt6WLI6vt)IQ6Jj^Z59noSzyAc3MNfWPh7h z9trDM!`CbAa66;;POi>V8^6&8#~dp6-W)yTTuJrb?CGmxsZk8bgx~$V7kf{C!L$5Z z+|;9k@G%N6QJtXL8U-NJ9f)yVAa0+Y9_CNZlfrc4&%T!wG>=s?l^_HjT=$jX-4P8q zYV9q_dsuKKi8@>UuulEnjQ`BB#UHv>@Ldg=6Mdu_2^Rwl7|X9rP2!6x0+=bx1!3@I zVyg^+eHv3e@J(t(&#RWv=aL40%e+9-r4~+r34ny+vp$g%ppHs0dh4$O;+`a|p8hGj z{Il}K`*$3dCHjus0ZnwGK4AUQiDIMXx6nat;4QMmo^Tpp3jcT$xazSDkAFZKa-voN z=96Kw)e@<jNPXtJ^=dQ0_jxiT`w!jo^68xJ2~Z918`_zTOaaox@^<!VSf|=fv<A4; zdP;Gv;kS1d*X^p>bOAe+hp_c1(cms4EZ>ar*;1hDQLv1gAN?K{0K**3k}6RJzd~?Z zObe`ri)VT|PSAorT8ll&uc-Np9c~*cL&dXQSk=^tAj-0JNr9V{ZO||0FzP$BV*pV4 zY9yDWRVSyv$fPF+6_W3DY})o<oLvN268h?6?XH;iS;^70ZleW&JT7i3jKCg315;Fq zxEL^Awwn9_fO;u79k&z}&<2JzC$g^jy-)GxjavlQd`g}m@Vp+W;@w^1Ji7K(3|s;x z8Y5VoGP%Z3T4*P@WoD|fd{o-_K4xaiF3@IH!!$@T%CGzbm&;AhuNfRnZ3WzEuLE%A zw3t{w!z6Ej&a``Teg;H4uTGLba3VK82bB34H+PD=h&Fp&Y3R2CJ*<lY;H@*syUVg7 zjYbmB9sFO^CoBJOFq1OeT#!ED89!}2eKJLBMhl{XaZ>1oPll2}EHU#GM!89p-?Cub zV#k+XnyL+R@pO?p-oUqOHbrs4>OSO-EMgOe2GA;33`69*`(DfJdwq}7>|IbXcfc7u z-p|Egeg&gDM{C!CP9M+zXVd#%B2{7uPb^dtPIV#UP7Kj)CZDKjz^Aiu>@>!88zxm@ z5Ggao!9QT}%ESc2_toa6`pT-HQWo)EiMk-MJ&kd?!6rfXeQbx~E5+Nr%13)A&Zr(g z%-?+eGv~+!_^>F;VWlB%+R%ZYYa-z-Hq~Oy?}ygq%=LkUSEqf6-)i<!J9e&qT41|h z^M0&BeD+9YZN<1|8HyX*hmfTuDcsvYQ5b+Cvnt7|x5X?1m}JWB@q`(Fr3qdmBli2M zUNx_s6mf|PPvy#A63m0kQ|(_~S9lk&O2BL>5LXX;n@6^2BFH;L-QX*endZN{NN4Mv z^HuVPE14Kh`*MGM+|Tj!!;IZ+x4QF`CX(cv7Fik)*H-dIq0|98)W0=UkPuQ&B$65L z4`ZrH(l|`Jl9=Oc8s|gc2)@H|xC^tYxb)~eG-3YA`c{h;8K|T(174~#poi2?;1_5< zq<aH7Og5T!X2Jt^+K})|azt!2`Bd&5k$XmR9u2%_K4xBY_ZCQLcQyG@R8ZVVNu;6` z@_~r0Yzq~()?6NoHJs<QA){EI8>YiXU9y@RN5vZMHB|?{h<}!>7c>{X#hqmyc&U4V z3%fX2ii7*ZxGDa`olp%``C!T&e6s^&e6@bU1qpq5m|UBNBtrY0g@TJUTg~2=jK~xQ zy%&oatUeklMqVPX0>SV!H6HvTE`kOkqM8?BQ7Cq@KblzEX(Kr75}Tt2{n<XLCTfUP z`GuXGa(U`a7nu0X`{~EIHro?6pylZbsLl%Ddpg$k#p{R;tq=j97a(2%IM2u=v>{#F zv1}#dbkVg#84bMt53hQGFYs|>f}7>c#>AvwK>v<*@N2{Td0^V99)b{LL%<LzfF#g! zy!sXiUMy$aXptcf+mHXYR=22W81u+3;SA|&xRr2C;k<WYn}}yQ5bFj9(xzMFs0m>m zMyjnCR#}u3xt0(XG25Z$mEuY8AX2VZPFdS1mA*RID`#?Qm42A;(;w77M3!LOd_#bo zqm2L>eX<DbJP+BSbDm}CdFgD&iE<a-SN1D>4{EIwKnU`$IhGdI{=hZl9A=l;FIX9H z2uyHSYQ{DW9v1-vXrN)=Y*gcP;s|yr{M`k3=l(|KpTeiI)}5*Z8ei(a3^k2m-hO~= ztv~vr--ECE@i4h;wE-xJ|Dhv5*#phy6v<n71PhY6epK?^Jk-i(aNhJwWwlAMP-pFm zl$g;{e07-MYyH+GoOAhXa6dk7^GOlKhHPKrqu%4?27@0=@Fq|87sAa9wek=SDiXDc z&WcQS-IJH>SF<ke!M2u9!~yxYs$JS()rK%DAlSLLpxXgpfY%Q*uYIppZ6Zw+AI$bc zWQ@loYEt_pHhD&rem(CvLc`6Nchg9HwA0qku&PObA2}Z~e@?@ixB-;djSy{|WN14A zAK{Tcd$PfLS7KaQ59<-FnQI~)<f|ippqlhvngM&1+ibRyLb;A<WIh5FqWN%e_OnRA zOjZGNQp#H;2+u}x?FC1Et)k*PF1{uG{Fvl(!a50vbVpGw-}M_dz9-jdKN@%e5dTw9 z2#Ajcbl2NJY$-i+0;9@?Yx}GQn(~IhyW7(*uIosA%Wwze^Qvqil6>V+VE9l-3(NOE zbT7+ij6u<`DoC`}O=leUv(ZufcB%bBB7qrxjq5&8*LfOBq;1?!5Ws2voYQ0C>Yhz^ zoLxW*;Or3*3dr-+sOq2o`V)8}Iur$THH!zdb{0}7*J_9p4ef*atb+hKMxv=on<Lul zr8{4Z$7P1x)cox{c}Pz>CB7sF{<>iPH*h+%QVU7!J>~R1x*dM5RmDC-?P)e~C9|5_ zm;m2mXqyZA^levR$6N<yac4TkWRu&sq3ZXX5$!f|BS<tpiWPBpTxkoTGyc@DSmuQJ zeSLLPNVlop(%mP+K@5rs=gRwFZ!upId=eMJHtiPxU-TO=(oWC<xftjr&zt*%;ql*J z{_bZgsaB72(@L(g>allN?c<B&`}tZt#!~54EY6~d70(K4)#4b%!r0gRTqCmK?_`^k zLNP8v)uknd?YVB<r$tYFmpWbZ{#x0yJa5E?KR@=N&YgdWQ;j6c)JBUw*;QXDV~nNE zgR1|+R5)x#EyhKVe2_k$(dVXn+=LT6**E{t)v6B&Ud=?ONT%%Rv2DeS7Px(*oTIiN z)k(Ss0+>bba9J>(W%M^I_(227D@C@qF{MM*&)py`CcW<Qo-p6#q*GIk#N1PLW~#sf z#1dVrfir<D(bLTe>X<PuE^}5rc4?TITB~_&{nLumpPnQB9&<e%SD+gGcRN7H8weEa z|ImS8v^m;kvQPmTVLGOD8tFySN+%h1@=v~BH5xJP2hYr?*PP#OX{Z?$XG;1}%WL;0 z*y%FQSdRZKmBcN3-XqoZ-*;adn5_w@?lp`K9vp#yvQrx%U9j+Jls1j7q&1V+yXV;6 z;LiZ)nslnX*{D3_j_{{6%js;5Dv0}1YkY{QM3B{$j^vFvD<WnKMy&0@v6X4qW+4rT zXRGlthSj610P#i}?p~n%y6bf7B-7;>yDR3ccV{EwZytrBm9?%S&yiHBPZY>AJDo5V zip3&=-f_NKrD#$9l8?Spk<AXEbEBVUpUiAZzxDmvmW$i6l>G<UDb}BCLv2G-#ck-C z`5ttv>;mX*=4G+~QIf#k{+@URn?mD2Fo8InSGMx2$7HcRdcDr)EP7^ymFM<8mw9nn z8stj&>Kck~0s5r{i0(O@n*poi32tzn7{LA=HzR-Wb`*7v%xjh`FwbN~Zjj}AFrgH{ z2qnq3yj2dV4A;N4x6Hb%eaVM1U8C43c;hMO12X0ymnh#>ewvJck`osprzsl3Vzp75 zixwn_ylU(uD}Q4L!!Fj@tyV*kJ=ONhsf$OA3%K)0D{2|e4m1O3%yqG!_UX|fr{^F! z>dAL<f2CMj_4yXfY1=9tH*b~P@rDQ;eENRv-gR%;>=4;BJbED;Tm_4{Os()hTqGy- zKS*rz!*#eY>VFr<9H3!QDh(b7bBNiJ%&BkUqxmnArI~&Ix{s5Nx8x{EuUbaIVgNnT z0D{2=KsBF54^VqHw|)?G<QiXbM<>g~Ssi-_9{etk0Su~e#0T@Suv+7&1q7cHt_l^g z0145$Iht+~)(I!62wASrDMkarpSPjsK1TIkgbX%n^W5rYFG9B|qAoeX06Fgk42((R za`8`}*p<VMOo7@;*77xYzSD!h0*^QboKkq1nY(yXK*?2o*n4Mn@9d%}7XapD*JtEa z;50;#>AQGrM9BSkbd-0?siw*|_eh{9W&7dZn)iGhVpUwOI&f+)_dZENR$zB;t>i-z z9wC5b!AJ?=^#tA636MNUB6||hk!oRqzlT6%nTMo_)G~yIx=WemK(Xb^CodE&i$6Sa zYT!z`#8yyOu1QV*L+30L7fwXJ978^(2@|&?h~?cgDPhlX@RokpWR;qOy@2c$3)r*T z9rG$=;ptdLahel_pUjR&2my@xk1c{eTnAR9@(#p|4E``uL$lB)r`s|m7<Au=4|@{g z@@&_|Cx1Xk?tyV()U`}_V@yriw}O1yFpS=Fz#Y%qS^Uu(kBg+h7hJ>+KE-tb0Yh_5 zl<fFWM3W{f_Ec`@c%bSRiMHAg3D*faK`D&!rq~q(RI=QNP`*}t61?+42Pl-oB^?e? zl2h{xV3#SHCT$iaMFfSGBP9T9#WX}97Q+MA5*aS*B91vUwv5Tz-_dxj#Cjo0r@QUr z>~7B`;d+4f5l8kWHCVf{pYb_tLtRhrcyvzL=eN=8*#|CH@5x=1V=(T%a^)5sd$57( zp)vUCO90$FTOMm8L#>bihJcZbTS!hPu`jfI%=7UrqX^SDAsp+RKi2i#4t&^?D-6Y< zqNne0Wyn;%^^DH~?(##_z~KS7#w@JK&=x@m5CyaNsG5#?$^gx|!j?;xO{xme&ldAA z*^Pku2}jNx^O0rkHW}Y=K5KlzCAoFgqYauK+<%a236lkXquK$8xVvOV!b+7}fzP8J zVGfd37Tn&YXvjI&ndh+T4*YfAR+*5fmkjr3rkLKD1$+Inrt6ZWNNXT)yiR>bkv~yJ zx2e-E*k}_c^#BwKE41CzkPsF2ofk5(BX`|;WPkdvP3;7)UX;ys?x*Zn4)@<XmIIc? zGFco+BLO`RbuLN(RhECEAoI<M);ClWslRJ@A_`$T2(ej9Z2QIfchb^)ug~4?p?70o zSv}jr^c~PW099+%pXdPD4T~r>4k^PM`CF5xzf+Y|+dT`rA|O-08Z0@d)Xp@IP<i~C zj*%RSzI`R$HsZ%`8;DlYZcj(~StlZ}bKAE_Z&bq7a{X9W+c9hwcZxJKg1`EQ?`uBE z4Y?vyk^98s#e>ekb-g81w-N6hbQ?M~GxBHY(bO9H1+WWb4iU;X@r(0<<Q`oJ-4L<L ze9{BK1Mf#uvl|TIkjuWNu&bhL5)D1CFb%NeCzmu0J%(npL2Q89?iS7w7oK@>tVzhR zg$2gHjuQUT$p3NqtvuaF*%4hm`mYb)aeNIjf2T*6xC`4F07MB^K(kR@I2I4~^W?B6 zfYP^J*QY*$wN3Yg{!5J;DoHov%%KIwmruNsWeH}l8|P$;6WFxK)I1IQeB=!(hVrBs zVD(REcxJ;J-182@JY1BOnVSv9@b;lHrXoh+QCu8HA0CIC2{$pYS*F3f{?NsCL|IMP z;863Ss{`L@^Jrlu*z_AfGB_3)aH6pW=pDFHSc$aNZj?Yh0B)FJ=UVgY9EL)qv2`lM z*(T#gQE|D24KdrX!XX@O5K|3#i&9=YevuA}(g1lbl7Gv{n%NMSLyK6_VxuQHw57Q$ z!{Av)qawmj8CQ+<Ut$IzjAVIJSST2q5{5cW1~0Beov2wOFHYiXfF$1odg8c=G+9Rt zIA=j^ikdl<>ofYe4Q%IzU5@(b0ku9_>l`~Zji!KVSF7!ad+RmFh5HhDJlbUmm{%VJ zuium;E|rR|CtmZ9Jt@ujkrAQwr0toEqeXwx8c+b4#r2a!Z8oh^FnGkC7P$qeq6n;E zco)e2?j-s)l{s+39dRwb6su~Z7xq$CiZi@>;Zn?}x!y6YneDXP@{utl9)>IXV|d9n z^ZLY(9W%};mFr(5T4EH>$Y1;xQq#IF#AI<kzW(*Ci)368ZBRvRbu)wj3%0~;_AeUl z%!)lB$>KqrvuziYOOBh;(rt7I3IywPv1;?LM$1Qyfe^`l$z`w!Y8(Irmo6e^)q7y) zwmn$AO~|kl6Ue8H<GDO|fx!$a{YtuvI~$NltT&4K60jp0&6|zW;ZL5GT1ZMVjEw)G zOF-<aBm@^OEN5>VVzN@^)Q4p$W(a(rXN(+}12&`YkI2`YkzMX;a*Yu0<MGBij)+zT zKIVO(*IS<aht3H-yGj7|?b!>H3p?$Ipfp%lj4kC-rcz5|6N#e550w%=FjU~Mkd<Vc zeW#)wy}j0>@wYQkhs{lL%3_Q^0o^6b4jt97#iP#yCBgHeE;jAXzT3H@PnO2z@rs|5 zYnz(mt*u`Rxe(N2=M-^p#8e?r8YY^DyDImWM+plO%P_<jQiKVLSoyjQC=}XJrq?}U z*l(s2-&AwKS0bX76}!MOgQRU2!`cr{w#cd7#)E(8CMHj6v?|BIa11*|h^&q;zkqx` z(Zov({zC^1y|i;}znp7U*TJDs>8!=e?531H!#Bdyuf7)7KYuYpcXPQ#3pHjL1|(3? z7&;FKTTj*oKYKUmf;HURtSil>CjQrC!&`T#+Rb}%6T>k*uirlpN;r4Kco0o~vVa4q zN(TXmMOa&$0P;2Y8Nj#oK(LUxOwi}8D0gYCbydlT+BQ!_rLXDwk}@`b>-z@=HvapR z(v%Yr>RXE<`3`<)T5e{ebxxFs3EM&`_%wE=nT4)KY}*rgg8cKHP0TH9)LhLCnBw&u zF55gvkMeBr%1Ek)jZ{&n9P6sw+tri1^S`x<sJOr5)nmwJJ+Yw61ux{^>UY?=!z`re zA9wzzQ-m_LI&YksS7l`c=Z<<+cwx<;;?(QDK1RkFB;w?b4<lYa+CzxG%jPDK7<uk+ z_a6lC8jV+{JIf3_yW1Nin;k#C;<6p}mSOq5r!u*U#CU-E{t|2_<c@EtI*~!%CP{8- z<{@<g+-*qXxQ;$a-fweays{;_B_UMG1?c@iZSI7dW+GkHLZL$x?wtbzz_IScgW`=N zxn$NC!a<z2Rl<Dr)zpt-<jm12xs2rb7uYeav6%cJL7I1O`^EXI29<)fDH)!T2x#q* zE}}Wj0Mz6Lu|HfNK9N|QpAiEn`R)EI)g-f6q!2zmNu{;p^M>h!3B9{a7a}QsjCP>6 z^cU?!?CMgm%$EzNZ(xQZDQjfw6Sg%BCopWenVj|Hss(wn`F9`H12n*~MwF2|I`qAn zojKRJqQahwL0nTh>9(W9V}p$a-vC?VUwEr~jFPpQMsNvdxiY}z$gx|orPu|`jafI; z;WknFH_eFuL_Ge#<#Txi=`t6r;fI%{3A?*e9~Od^cTIgyCltaM9c6<W8Tkg;u5RhR zdX+(Bm6j=H1!4Rk6z<uB!f~+UfHwX$st3gb<5^3)hzsA&M#t22U)n6FOPEsy4q{bA zDCGTXMj(Yj1yer&NrVg{8hx5}*{7=Om>YF!tcBb8cp`+*450L9^b1tdw!7`pzrO7g zoM?H{&c#o<F1YBnj1<GOJ_C`j?Zhfidjyzjp5DQ;B|aC<JxE}db~Ss_<Q?>)C)xho zdKbOxsi1B)=T*?`&H{TJ@4*j}LkFOi^{5j#3ox^C9e-7kR7#)2#cQ;9>qfSpM?Lnh zxl?o5H;3~=W74&QU&WbvL+KyxY1*az2I{-whU9We4eIk(K!$5S?hVd0To$*G?uEfR z#8DJ{7k;Wi&Z67h3V*58qGwV}P2*10>m^N#u;2J=I3e$WOvT+-jl}~^Vkdq`k9z7y ztt&pWJ(#Mlf{sg+Tg2nVZj@jPaC#EvJCD6euX*hn9T;LnFNufV37=(dw!WY0c~vz) z;^ekZWCtGB%FeaU1)PbbmZ%)KB2$xc4!o$)dfh8arMXF^<nB;vKf6rvDePHs`lEPa zReQ=>7V0}cd#gMnCEz>Q!N2^C8W8ckg?9T%?0?J)i<Ib@+WIZyJbv;lr*-n4UiR5} zw>Z$P(~&WKkKMKkfUAuy97(WQOrD(F(fu{QS$$&Z16{<0Dls#XAa8QXac+3P99V59 zWK&rW_Hg9PKweW<E_RRK=h;A~|NS?)@syrdl11adHXFtd>S_dpiz&B>MwmGHc)J?n zkK^SMzvlMJWRv8O&Tr?7#F%>-4$6nh-{Odnp>wo>IVm8>MQ>o(QJk|rkE}=S64-g2 z(qLh80>85Ah|QzM%7!7)`g_(#x6?C`9atCfqN7!yQe2gvQiA#lC@e7nH7nkj>bRLd zbTE=l;lVs7Z=0gNi*M1;=jP>taIVfwn<*C)o=Brir-l*;TeocJoUztuym#%75z0pz z?8YU@uk!_q=-t`@P?a}Y0Lf>YMGkw6>1yE%yHAYXaVh)R_xbi0$I9&DCU0ZtOP0^S z40<02euX@=<nr0khHy{+GAe;<Lvh%|ht;D4V`!)PnwT7YNxiE2Y_ntuxl<49ZyTFC z>@^;gP?Pp|xM@>1*T@j>Ea#cYK(tdTMctoZZ8~a{RB{cZA8I$=GWsfFx%E(`rUB`8 z6wTa72~1K3u+VK+0n1z%V7=#w0DdURI^PGTIgrY&q0eQdn^vSv7#@}IVV>Y>_qY)? zjSc2P;`fV7q}=0!ltvQ}$Lr;XdAkXMxe24kvy}NCgOdke0Bb{Oq%5`E1M>#WL}P^G zcsv_-&ele6Z_79N^M)pm{FD#*a9bRkq32yGxcw+p!!2>k41?_sAtDygp&E}!7&D?n z+w8zI0Ut!EGC)DhOU4xT(Hk6a&h;(pzFMoay7;j9*^BdZH;=#vMbs$9EhtdP2^n6R z*hXFTac@sUw|!W&_HMV_&cZJx?47(8m6d3!wqrxqz%@eMKV}_JK236-JfMJx-kT>U zUTepz-H<nPD&$3C4LH=#;Vp%;un+HC9xjhRY1ChGUTUh5zCq1j)9RC-6|%^He$8up zCUCRyj$|VakKUCt*md#Hotzf}0vRYS4159SFaYj|$#V9S?*{W|MYtm^3Sbpz+jYzL z-aO?3ZzVDZIWFy(B&eJcS9S+dd=ObmCG13wB1FPaL^H*SY}KSk?XS$|Ro|8?>#g7n zEp}vWee<xfPwLD&y-&SaV5t<o({^;@;4U?-2}aCm16O`yY|RuSqC;jE=OZ;>fUUg$ zy@bV98^PugjoSyNlbJTZYdVY-L&ERXJ-%jj0ri^POk}?kbzn?7>?n0Vuq5pOrBV0> zEPQf?ma|xl2&*)fpMY=*<W4*rZ;#VDi%q+DqG3G9^wjoznQ2;MG|UutF#mO%7VKit zhlcUAq{%l?b4c@B?7*(Du-%;HI44J%e1nuNCa3At4sUt}IL&-rG);V+-|w^R2~T(b zj6ZeD{!-sX`A+tKK188KA|zNW5`>Sy8+s>b!YpblJfIQxuV0Yx6w#Mb$O8MeJxox5 z#bN-#?`cTa%>33Ksob1o6kAnD_9h6Y=Xc?qixJb)T2eQruVjcMjLiJD>OQvXd;P*C z_b<MDeTD)?hfxp!5U`E80f>_jA7Db+NzSeANZo3p{N`2;ysylsr^8u^wN%%yNT#>U zp$58}^)cQ)esS)^x`S8M$Q|I|O~g?`9`2T^OCF&=9P6DE6MN^F8*^8Lj*hNX_&xTY zQEQxOQlHK()mXS?5Eb+f?$iklbo*@jk6}%|aHQYQ*XUUb8Zx+7!5a6W?$*Ym;k$b0 z_}eVp>T8JCjr~ljKRsjex~aMDBvpC3so~X!SA(k=)LTP<*fcXj1oI(%!(`Za*7y9( z51==F_TSSHP&7w=za#E20yIGrT@NlQbC(3Y6X1ZkC1?-bKQZaC6BATF*_+7EjuNqV zD+mEyOOXFQ5_N_#RIFSm*2zz*X6|lHvM3Ku4k&d#bvKy6r)FgOKYstvP9<Ep&Bpp9 z73BIms^E+#LSZ*Y$PKd>S)s!uB2$*hV>D;?LDP3*e}6-tnwqU^D;|ggoLY|PM@okE z+muGvnGJn8s^8g*RJo7sU&)J65n)IcE7DwZ{CqL^UxOL-W8sdu<A<kJYFU5$p-X)D zQPXSTM$o2jG53QJzw4G9rKy+t>&5DGRYVE}mRk33fj>fYc+BcbYD82lZtV%GTxT!f z)_p1#cWPezY0ayib>Nb|^s)xO(|U2~_s-pEm!83;*rmOrvEPq2+yK1VnPgt!=b7%u zBNCw<@nWlE8OML<V$8D>BcCQEMXo|j?=oM||Cw;sorX@jRWjbqtk7fZ7jV@{%IUb` zUFj#*x+(=BrY)1tF1LnW0*J#m-+;UF^dEQS-T{7;PwdAdkqUEhFVmN*!~;+WL`OV< z%j`!eR6*vnMG(CpXpd$jIrRWgmG@GJZ|kvg7**EfhJHH!5mfRd*1N@jZzAbsJAhmC zruYszIZ3%eZi}9XZrb-<4po>*JGi=VdhquCEnqU+6l8}6F4I8d`P<}rJQT!1cCa1+ zR2`^KSd!H;lYB2Of1Eih({L;2h3={Mv6p^}ReMO=etG`QeSZm^i5`?8Ajm3IM#?Sl z0%s4UT^{{=)f@Kek>57Y<r85c2tZ_(yLZFrgihT4$HHp)*^-9_`i5>$=sRZ4_x)8b zf3YhS*@;QAv~p#zU3HRf_T;0hU=HL15+LttP1*J<-;Mu9(3#%e2SUzNKn&xb)#3gp zJgb;Djd$xEKPvph4`5|wf}wdgHkqScUEMO>(lR6U#br36l!f#~ygpe(M>l48tmJ2h zmKXMlS6sL*ksdb@ue5yo-l|C8bw8FTky3i5_du}}SQh0v5tT<^=X6$sg<*w6c^X>A zlm+TGH#Z4_*o6Mek9CBm!|5lmN=H1T3p$?h7W868ESCfY-~77A&M?^zCR)cGX|HYp zxxq8*)!mExydfOyENeX()MPmTgLnS9Y}AA6sw#{xN7*tOQ^V|KCqY&#B@Ydg7@<j% zkSEu)dsY1e(HL6wHLuf(uXctWX5QG?FZz|;t1nSusj2WxP+!ver~hbX=k-fo*3AkN z1=%6o>CS}~maS)jJM%vgF7$x06GU|RLr2L{U*M$%19NlP8-|$t_g?(|uW(}jH;_&L zzy2p<-#pP8{r|ex=q2+}^u~ldmCmdm_n*D};LP#=?cDCa@c*>{!I3uz0KvsHPlwy& z^#4OwAk%PyY61QIvbY6$Ap%GD^~+PGbo@K_-m&dA(8qwb|2ezEe_@9L{httOFaU$@ zWiCnK+&Ksr4+Q#=O@h=j0lN6R0`13e!8gtTrt?1lZ88udUt+uh=@mnn;}Zv^OFbgS z1BW1fv5OMA#;I#GH`p~GWLId>*nn~3>>-zY3VJdx`!8nu>~&2jI;n2)%jRRAm(1y$ zucG@b7C9$jl^OI}zvQQm_fi>EPSRgq)&5ZR7-Y)yIKv@NjtH?l5?D~BTrAKgFD{~) z%yI3AXcQZ9wKL>BpipBYIwD)@5y#WeKFOiOEZbp7{{xycaIQX9_E%UIp@ID@y6r&| zJBe!n(+1-E)gT|S1L=wJlV@{m04JSxQgfN;4{PKN9|?)Jlr5ooO*}hqt9{`N+`&Fz zo}wTJw?6noCxf}q$1RMVukPlR2o&@@+}baH*Te-x^P$ABI4zN1#94|Oxs<&F!ATDH zf$EY!s3ZZ?>Ree7(!trWsg^4}h^6+bZLC+|y=^nrP!m4{SrQ!KiQs}!khHO}eWCkn zI9}yq0Z`3Pjg`S^TdXt#G-8@V{9ROtKm>iFfvPK27TqO3R&-J}<UdP9F9lqmR4AhR z!jQp2N;IgH$z*fhi#wR2mTQTViw_EkO7pBuX1;iI2$~%w<%psqG0)zPM!FTleuy+x zv8{VS&09Z5Kcd<l8rMH^^+rWm23B6Qi3H0#J@AfGO{elxE~&y_`@;5MS<fP+K3@X( z4s`z=k4N?&M64Rm2<Lx<X#tbxVUr6WkZ`!EyC@66pUE%sTy#uei1=Nq=_zYGI9#C9 zSYK5w&Ky-(8eOTwtNxSwX=3CDb+)UUhx;F4S$P+V9^7FN4x4D<pvL2zcj%Ek)b~hV zk|knBy&HxF1#Zc^xNNypyNI48y@)9K!cp^%INQY#=dQ7PyJA)!A<*4P859s3rvU+Z zn}HH8d~)u_h{hvg4`HZ%hsQ_e4uTsOhSbjKax2=fe3ooh|HY8c^~|sZZ@**CmD{_2 zHKKh!c+VfxaQQm(YsaAbzJZYsMKm{-F~LB7Ap5tG=mljM6L}Ty(1i$2>k12%qu4vO zD1E`|?YpQ9FB<lV_!~xyHJ$Zg?(TwdNz(<s!khvxe74~ucMz*OZNQV1QzRL@cSo~8 zhxDR4n4A2$ds?Z~UC&ODIUVj&km|bo4YJf%X>!H-v)<FZul`fV>EA95!jWwoBQ1vH zzYzuY!zgizBN6ge!;qN12x{*|Nk)Xd@x<}MRVHS<!|h^0*mI{M2^O-e3G<5LX3|_A zW9#Okb7Drp3k`r^^4OI|FcV6pZ6QFWYnKeNAT_1QmLIUi73OCjqlZN5_r%|R6}w`d z<8enZ^eTSb(s&IhE~%qlCjZPx?mda$zM$Oql(F>cx3X8~29Q7=e<q6DL4Zsj(wIJy z{JXU-Ou9BH5M=4~45MUC$E4G`T1GEmBl#>|bEX%94M>Qo+5;lc&hN+TcEQ3`VAa5Z zJ0sB1!uiI?$W-$Mv;PMVxT{2(x_PN>O+}5bL&G~Ir#HSYVs6tn-L)Dttg2nWeao+@ zIA(F>gh*0=NZxQ&z7&~9^roG+a3G~GD$TP{9ujK_wQUH2brh(663dL>o0`$(4R_h< zg<>iPoZS_bzVJq5Ua@}_TXKp|>?_)yoh-FL<^#HfC)C8>{<!m$2jp>*ApzDgYh)@U z*)iNz=u`!rwS-nrWcj*zYCO!fU5QZbmx7DGKf|!fstQ<Q3M2a88?TlB-G%|*PR4_> zs0xNFMLQEXHQaM~vQ!8L7^ff@KT6am2SUb_4wX<|jy0(Rq**IVebtC7^_lAKXX9B* zMo!U7>qBilBRGZn&fl<U1Z=E_+HLr#7#dKH>%y^XNs(nt$$uUD`^2?dc7JeHu5;PR z<DB_<SM=jTrZm{^POOPLLsZNLw#-?4{xN1Qk*eceK1B4=syAg*ly)BYCuB*S**w;) zW3BpRC#*$-?0RPQj!OZ#W`Y^IQFpgkqBmCBPAXPFz)nUq>1l6Wxn3#%mr)?T{wHS5 zX&|HeAMuEN|KKMpox-XfsXlP%{$bt?5ph>Op~lG|V9gt8xBz_H)y*f1F;F~fa)Iw+ zv9n%Fug6afC)I<REw>9le^}0PMMb5$q`{ws(Jb}Cn^qY+z|R3J>uMVyyJ$ZY4&z3E z;UGSWA5kSv7HeYZ+@OP_NZ9ZLT+DH;6mbq628?4S{PJHl$qXLIm_dQ%)W(`d`sPGy zNRvj}h7ng$kEZhqA{a(AX}&>lttXVScY&BuauivTLr9Yr?J7TGIM%!XH-W{vBtV|k zDE?qh)<1vmd)A(|A;%Q5YXA`hB0h>yC75;2&NKN;;vrpe!81+5ml{YR??`zexo+zX zp1JW7vz-$uTm(JV&NGVv<q>!27Vx*2oC5S$SlIkVm`?4$WRY}0c{1O}c@fqz;N5*Z z*|8G=W7QH|L-7hLRgk<ROJuW$_nSq^Q{_a`=6q`uB68koUyn7Ze3e^#<{McXSlce& zwZxFNMAcA@JHTGU-T|;rGZH!$%DH?B^lEBHkUH1j{^&ZNS|*-6XHnW=DCn)wIZ%;u zs(Yr<;NWgc8pg`^jgX_F)VgjS5-dsKRc))-P-`kB#w`XCVIfV=-4@Us<e`)EKYm$C zP%IPSN4{FaD~6o!FUzyIau@_1)GQ0f1K+}rJOt?cgNa7$(V5qYq1E2_`3pYij$P|1 zC$Gl)HO4}Wsf|H`r~Teo)GNJj08dO%hMiG11ps6c9(VJ{jY*+j@L`B#i_BifffThK z#e~!#+mmz&66ITO7I$VCI{<so5-2nZ8acP{Ye*?JnJ^>cEa2^1X2;4eIcSmem?iB1 z5rih1Y=EP2d{4>F1Y8LCB8`RIX#IV=8pp1^Xs9lgMPgAQL*G}Y&8&FbxGNqrqjGgt z!0Q~t_~WF+nl;$oAG*uBX3JFhZ^t=X54XEXiQoNxuN_5tXEau1>J6a$X}xITLvJ!r z=3`i+CS8+nx<!&%)a^n?v@q0+*$z|G;@8!>mQ)TZlqa&hHOGc~1Pw<13f0f+?^FC7 z`aJ04i7>iNXA=-|m85>s67#9-Cxn*Fq;#j3v-`l>c~xEy5N^4y)Kr;!_&eW%y)+ir zk8Rz!@LB)LLeuzHS%Zhx@?<5P$&;C=9hwm>?AHWo!$9xit_F^124f~WFQ|3_s4X0R zs7wB|6A&L=u5Oy7NS3Zm^pyx0=FcKL5zEFz2v@w+83{=b#mfSLj6g;E1#ITZ-a#Bu zVxrlbxYIMwmK{sVs=|`&b9qwILRz{!8q9Ojv;|!S1SF>a-fR>e71lQhr|ZxyJ-iQS z0!Y#2diLh!dd<f9G5n0TAs9v9l$}3~)BIa+Zz}2_o9v7L?t|a{{N_dxZOBH0#2(?g zA6i{E5f>Hvq15W<;2PI^=)>zLdJhaXPeH_im}uzID<;9%%&}`%@9Aw!&Q-kvgcP6H zcAHjO3k`k6kR>q`j;Kyp#p;&&!VrfOO@Nv@dx!j5U{gz$NPAP-MF7yKz3-HpUR!Bv z&RSUNi@1x&aHg!>mpZ>x{vB5pM&Z)6`P(P`%sG--XQ?)fNCiaPWb~_D99k{UG+mHb ziTb=z?s)ud^a6uFvjuI{_8ID@`@1IB6P>KPOfzcFHP>1m`yaXpG&}3c^nW-G*anD4 zh6WR0F|Y%KtO~SY58MFqw5(=aDEbAE@q}fvky!kG#zi4K0$d@&m!378SY6lWXn>wl zw0(L40bga($OcR(QK7V6Sk+3!iKY$mNuqhf$hKJzj6+$T$2=fr2_ZVOa`SYL+>(_6 zi_yn=8{Gk$!DLe4^{l%w#jz@Jch-QyBscy-Ve2LC94+(RKXlgMK8BHu`pgp=dSz%3 z7KbAuYTp3$Al!L4AYu);&pyA49c^-k6O8T-?h#C}*K(?P<=uTIUgcEk_-u(O>V3|$ zp00JcMP(aSs>rcuds#Vj?bY218OY@X)AMv^QZp*H^_LP8&5#vCLhuU`QQLtygA0|* zP_$k_@d|L!_y6V|{kI)KO```@BP~+vxU;T*=<vqQ!YsoSZ)Z2wt{k7rLI01!yGpO@ zYcajHN=|F<#N)2zvamx8^LvAJ+J>~kxO2-wKURZPkifyh;7JZUv8E`H*NP~wN%HOe z;D~v?Y~ogJJf4+p7s3kP$ogTZoMR>Xt;o%1l+VDxJb$YF>IH84h!YUHjhl9va*>QC zz1Ib`$_HuPAkDvhL2L;tL0$&HhZCv0YW)X&u86X~K0g_zi@gYIY|=Z&3@hk6U(!U! z=H9xa_eJDE*5j+s={$r}i!86y)Rp^d&1W3}l@Ep!;CPS*^coVtaDlk+;f|AAl&fQT zM3s8Hp+6$b@<oNOQ1f!fbe}_EKQ-@$@<ey=v*8yar=@;MrVa>~w}QxGjGdb9`sC39 z<byF9J4ODxmaNZRG|K=U5j>IhF*8KscjaG;HfeL)I-%;lZ-pP2KYJ*uzT@5s$`58Z z&rv9o`LT$=U~=~CZ4rNZ8rq;*vepo~e=*J58sK5|0uoFqo9GiGq!YQHH~~!mXwqcc z$^1E_;KXwhTfEDHwF-?@yQ?ABt7_(sXOVIr=WO_hLrPzbNt}3{_%%nkJZ>RPSUH8p z)C?@$HxZ>|E1x%=!df_zb@PVNt82E^>76~MdOyOO+C*EuICvcs0}Uu0+xJ4eIio|@ z+3%{4{&iJA{jtj}M&YTFA0Nk$(P=3w?=t+*Q0TsfHtoFbiNXe~#%xoY#E!>=?z74p z0<wV5g{nVJWRJ*}7*}=4S!Gu}Kj$aC6jy3^f<pDHqH7#B$3OeX8<4KGa8A-@?Mr`I z_SQhLqtyZesbyRCKITE!Y+g#&s~3R{4o`oIe*VVD@jcrch9#;~TEkJno+;4fwRGsh zFyQPEGxUVXEg1k(2*P@Yqd4^gi1YWyJ$4v>!PvHxFIGTf?n&Y6aE+P!P3;73$7Jri zfw!JbFA&wh6fXD0g3V=sdEznI!UphP1dyg=UE(P1VoLZ+K<Nw(4)ffQRB^}F?9INc zkJT%?mh}Eoujl)v{BPi2K_TD<wzG<UKx%znHwL<M8ZwdQ2d5%vFQYtmYkMhUWB`52 zU_c7%#!WMJ3p0~eqqGFct39e1o_um~o;A$T%#<cHUf>Lq+%%hbc>hW;Z>&Cn`fXQH zK1IX<{eA^00L)1VA6y&w%W5~`v`Wm021Sb$)}@bq8#>wQmDa?saeeLZS-_;KYNe5z zMy&Adi_di8sLe}pqdQk_seQV&zmg%MBOVm&w>J^PKk5QzhVJTUdeh3wSGp~BqhH;T zlvGw$xj7-x9+*>hMlCg=Cj39@c>JT@{@?yAti#O}c}W;?@@Nglr7ZvE5NIkDD#x93 zY|*Su5Qx!&aZe3+=32dtw>0z*V!Dv6m!9(Nex)4;D^h2Xoh-K637cic5A|q57Uv^S z7pDNL<i7l0ekL6YF+3y+xFA2uYtl6F2Q~k%x@KQ-dwqKD=?hn7IAOUEe!bSp9M12V zW9L#p9$w%SgLH}V2PVHzwx}L7Q729a$pSD5i@t%X4qJzKeJ0y#Q5?g{xVM(58idE; z$Hk;_@rIU$3)1?cw=3?RQrA8TEVKkrpbS9l6D*F@`+J*tOilnc9tT*cUo?t&qDht; z&F(SqVpH~KU!}j%J@l4z>W}w6_CL>E59GG}@pTTi?(n|u5?#Q}T$PGs#%D{cpB6tY zQW%${Ow3jgd2h!@ZM?xZP^W;XUr<Y8qYCL5N60K7dgCWTNQgFX)Wv$@VOz1L$&hX{ zuFes1Kpm(aD@F)y8X}hCL@z2vEX`kW!~8{dKe>b&MPH)HP!tg}l0E2io)8Ag#fb%y zaBK_HsQlJGf^Xe)Vv?t(RxRDQUEpc(BX#YULj1Zi?b(Tk@S5nGE>U%YtAeo#m@=so z4M$^cyV!uWZWn#SV;toMqt^!#TO%+E)1>4g;Aw;WfryfIZXY7Z^N~-?N!BsLY3MJr zGd4c))sBStw>D4F;vr89%}}?W<#_r#P`Gsu-~a^9d1oq-0Pc`ypI>XRsb7>8U;BUd zZF*F<hi*dciQ7vw*4!@Ge~9y>toGfSmJ`;F3QyAK$W7^MNO-JL@@=_j%A#$TKWyEv zBGhmC{>n%B+x_3d_Wa$rKXq^TfwFt*(+@@6IiI}ZWz~}c?(=WXdYyVEy*qQ3nwDyB zdZW3ba)tWxdZ{1kzm@)7*e||6^E~Gt|G!IYJU=v?|FGZx%G*DR3u>%4UkSSweb$Y2 z`|N<d^S*9>=Uu4d$&<PL`<bVknC5SpC6Xc;^LUxR|G&L*E;)``MttrYzy7+GC6@Qv z{a@IhwtJ_3*U$aWVElRi;rkza>-*(51CLt0c{%Eb?W6vdPc>0L%s+hcZ<qQyy*qa+ zXN~##8$Q>Hw@mcUTU{(NF(%UG_3u3vMSN$Mn8_ch|DojGz0aoZl$`yC<wy9%|5$xo z-}`lcxAUWOlgo=2+;x8V*6Ts!+8vwrZSG1mDSIy+<NSN&lM-i{*>?{H|BASF;<&1N z%;Rm9mcKq_`ee@$oO^G%ZPx5O-|egaM%B-9Si9-pmhDf@pW$zo|KM_7qJsUK(vQ0j zmR+<@&u^b+_+vHS{N(KH2im?#vRW2zo*Q-Q<*iql^(egdQ^QK3HPvq1?^Nskbafgx zHb#D*ai!+)1P_T5{~2sw73Z~=pR&u__vLB8V&<jsrdRi`JMu~UPJn^oOW?XI4Pf!a MFp6mt2LEpY0F7OC*8l(j diff --git a/de/assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg b/de/assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg deleted file mode 100644 index a1e864559f67c01d973a3dab33f7f3732733cbc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95840 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 Xl=8V3LhS66yrnuSj!K_qzmNPc=6Yr+ diff --git a/de/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG b/de/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG deleted file mode 100644 index 22b13894a1c0223da21ccd9a40c85835b674ea54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332398 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%0D~jyKha{0xhd(hb<Y&d(zDkHk5k$0NV<HMe^lYGc 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%0AZ^q|N14UQv<*J=PduLGWN~upUSX<POEzV$F#`* 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�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 KF$YM$zWxtUg1t@v diff --git a/de/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG b/de/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG deleted file mode 100644 index ce4de45d151efdf9c78b9b7420c362d7933ebead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24060 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 YJwDvhFBSj$k$}G!A^7jm|1|Ue0Z^AhUjP6A diff --git a/de/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG b/de/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG deleted file mode 100644 index 4f89d1eba8cb401075f9420d73c697b6a30d90ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25238 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 WNM=-^!>@<YepAc;ZZ*>V^#1?|F#<pU diff --git a/de/assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG b/de/assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG deleted file mode 100644 index ceb4283e9ae0aa311b5c04aac48cc09fb110885c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26255 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 diff --git a/de/assets/js/0a1bdeaa.56c24c5c.js b/de/assets/js/0a1bdeaa.56c24c5c.js new file mode 100644 index 000000000..0946f2f52 --- /dev/null +++ b/de/assets/js/0a1bdeaa.56c24c5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[967],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=c(a),u=r,k=m["".concat(s,".").concat(u)]||m[u]||d[u]||i;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var c=2;c<i;c++)l[c]=a[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},3940:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=a(7462),r=(a(7294),a(4137));const i={sidebar_position:2},l="Securing webGUI connections (SSL)",o={unversionedId:"unraid-os/manual/security/secure-webgui-ssl",id:"unraid-os/manual/security/secure-webgui-ssl",title:"Securing webGUI connections (SSL)",description:"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.",source:"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/secure-webgui-ssl",permalink:"/de/unraid-os/manual/security/secure-webgui-ssl",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/secure-webgui-ssl.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"Good Practices",permalink:"/de/unraid-os/manual/security/good-practices"},next:{title:"Data Encryption",permalink:"/de/unraid-os/manual/security/data-encryption"}},s={},c=[{value:"SSL parameters",id:"ssl-parameters",level:2},{value:"How to access the Unraid server webGUI on your LAN",id:"how-to-access-the-unraid-server-webgui-on-your-lan",level:2},{value:"HTTP-only",id:"http-only",level:3},{value:"HTTPS with self-signed certificate",id:"https-with-self-signed-certificate",level:3},{value:"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable",level:3},{value:"HTTPS with Myunraid.net certificate and with no fallback URL",id:"https-with-myunraidnet-certificate-and-with-no-fallback-url",level:3},{value:"Redirects",id:"redirects",level:2},{value:"Unraid Connect remote access",id:"unraid-connect-remote-access",level:2},{value:"Custom certificates",id:"custom-certificates",level:2},{value:"HTTPS with custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:3}],p={toc:c},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"securing-webgui-connections-ssl"},"Securing webGUI connections (SSL)"),(0,r.kt)("p",null,"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/remote-access"},"Unraid Connect Remote Access")," using wildcard SSL Certificates provisioned by ",(0,r.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's Encrypt"),"."),(0,r.kt)("h2",{id:"ssl-parameters"},"SSL parameters"),(0,r.kt)("p",null,"When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Parameter"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"servername")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Identification")),". The default value is ",(0,r.kt)("em",{parentName:"td"},"tower"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"localTLD")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"local"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"Use SSL/TLS")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"No"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTP port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"80"),". If you change this, add ",(0,r.kt)("inlineCode",{parentName:"td"},":[HTTP port]")," to any of the HTTP URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"http://tower.local:8080"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTPS port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),' page. It defaults to "443". If you change this, add ',(0,r.kt)("inlineCode",{parentName:"td"},":[HTTPS port]")," to any of the HTTPS URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"https://tower.local:3443"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"certificate")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Refers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"lan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"wan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"hash")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued")))),(0,r.kt)("h2",{id:"how-to-access-the-unraid-server-webgui-on-your-lan"},"How to access the Unraid server webGUI on your LAN"),(0,r.kt)("h3",{id:"http-only"},"HTTP-only"),(0,r.kt)("p",null,"With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"No"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution."),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-self-signed-certificate"},"HTTPS with self-signed certificate"),(0,r.kt)("p",null,"With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution"),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("admonition",{type:"important"},(0,r.kt)("p",{parentName:"admonition"},"When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable"},"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable"),(0,r.kt)("p",null,"You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate)."),(0,r.kt)("li",{parentName:"ol"},"Leave ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either ",(0,r.kt)("em",{parentName:"li"},"No")," or ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"No"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),". Note that these URLs use a self-signed certificate.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your alternate URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate and with no fallback URL"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned below)."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"If DNS Rebinding is not an issue, the ",(0,r.kt)("em",{parentName:"li"},"Strict")," option for ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," will be available."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Strict")," (or ",(0,r.kt)("em",{parentName:"li"},"Auto")," in earlier versions of Unraid)."),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the optional ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]"),"."),(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," using a self-signed certificate (See ",(0,r.kt)("a",{parentName:"li",href:"#https-with-self-signed-certificate"},"HTTPS with a self-signed certificate")," above)."),(0,r.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," back to ",(0,r.kt)("em",{parentName:"li"},"Strict"),"."))),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"redirects"},"Redirects"),(0,r.kt)("p",null,"When you access ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]"),", the behavior will change depending on the value of the ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Strict"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under ",(0,r.kt)("a",{parentName:"li",href:"#https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate - with no fallback URL")," above."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," as that will likely work even if your Internet goes down."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"No"),", then the HTTP URL will load directly.")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"unraid-connect-remote-access"},"Unraid Connect remote access"),(0,r.kt)("p",null,"Looking for setup instructions for Unraid Connect remote access? See our ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/remote-access"},"dedicated page"),"."),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"custom-certificates"},"Custom certificates"),(0,r.kt)("h3",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"HTTPS with custom certificate - with option to have Unraid Connect Remote Access"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Navigate to the ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access"))," page."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of the certificate.'),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS for this URL."),(0,r.kt)("li",{parentName:"ol"},"You are responsible for managing the certificate. Upload it to ",(0,r.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem"),"."),(0,r.kt)("li",{parentName:"ol"},"The certificate must be valid for ",(0,r.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be ",(0,r.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server\'s URL is not specified in the certificate.'),(0,r.kt)("li",{parentName:"ol"},"As an option, use ",(0,r.kt)("a",{parentName:"li",href:"#unraid-connect-remote-access"},"Unraid Connect Remote Access"),".")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/104dd0b4.4c6e2a66.js b/de/assets/js/104dd0b4.4c6e2a66.js new file mode 100644 index 000000000..6108cecd8 --- /dev/null +++ b/de/assets/js/104dd0b4.4c6e2a66.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h<i;h++)r[h]=n[h];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},4505:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/de/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/de/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/de/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"<strong>Mirror to Flash</strong>: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"<strong>Remote Syslog Server</strong>: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"<strong>Local Syslog Server</strong>: Set this to <strong>Enabled</strong> to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"<strong>Logging to file local to Unraid server</strong> Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using <em>ddrescue</em> to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/getting-started/"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/de/assets/js/104dd0b4.c30f249f.js b/de/assets/js/104dd0b4.c30f249f.js deleted file mode 100644 index e8bf63116..000000000 --- a/de/assets/js/104dd0b4.c30f249f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h<i;h++)r[h]=n[h];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},4505:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/de/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/de/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/de/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"<strong>Mirror to Flash</strong>: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"<strong>Remote Syslog Server</strong>: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"<strong>Local Syslog Server</strong>: Set this to <strong>Enabled</strong> to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"<strong>Logging to file local to Unraid server</strong> Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using <em>ddrescue</em> to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"getting-started.md"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/de/assets/js/10869db1.88f17a27.js b/de/assets/js/10869db1.88f17a27.js new file mode 100644 index 000000000..6fffd121d --- /dev/null +++ b/de/assets/js/10869db1.88f17a27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3563],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>f});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(a),d=n,f=p["".concat(l,".").concat(d)]||p[d]||h[d]||i;return a?r.createElement(f,o(o({ref:t},u),{},{components:a})):r.createElement(f,o({ref:t},u))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,o[1]=s;for(var c=2;c<i;c++)o[c]=a[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},2127:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=a(7462),n=(a(7294),a(4137));const i={sidebar_position:4},o="Flash Drive",s={unversionedId:"unraid-os/manual/security/flash-drive",id:"unraid-os/manual/security/flash-drive",title:"Flash Drive",description:"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.",source:"@site/docs/unraid-os/manual/security/flash-drive.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/flash-drive",permalink:"/de/unraid-os/manual/security/flash-drive",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/flash-drive.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Data Encryption",permalink:"/de/unraid-os/manual/security/data-encryption"},next:{title:"VPN",permalink:"/de/unraid-os/manual/security/vpn"}},l={},c=[{value:"Backups",id:"backups",level:2},{value:"Network Access",id:"network-access",level:2},{value:"Permissions",id:"permissions",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"flash-drive"},"Flash Drive"),(0,n.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed."),(0,n.kt)("h2",{id:"backups"},"Backups"),(0,n.kt)("p",null,"If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change."),(0,n.kt)("p",null,"You can easily achieve this from the Unraid webGUI:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Select the flash drive on the ",(0,n.kt)("strong",{parentName:"li"},"Main")," tab."),(0,n.kt)("li",{parentName:"ol"},"In the ",(0,n.kt)("strong",{parentName:"li"},"Flash Device Settings")," section select the ",(0,n.kt)("strong",{parentName:"li"},"Flash Backup")," button."),(0,n.kt)("li",{parentName:"ol"},"The system will now create a ZIP file that is a backup of the contents of the flash drive."),(0,n.kt)("li",{parentName:"ol"},"When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.")),(0,n.kt)("p",null,"If you later need to recreate your flash drive for any reason, use this backup as input to the ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Limetech USB Creator tool"),"."),(0,n.kt)("h2",{id:"network-access"},"Network Access"),(0,n.kt)("p",null,"The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"*Network visibility"),": You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any access permissions that you want applied.")),(0,n.kt)("h2",{id:"permissions"},"Permissions"),(0,n.kt)("p",null,"As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location."),(0,n.kt)("p",null,"There are a few ways to handle this:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Copy the files to a location from which they can be executed."),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"The location ",(0,n.kt)("inlineCode",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the files on the default search path."),(0,n.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding appropriate commands to the ",(0,n.kt)("inlineCode",{parentName:"li"},"config/go")," file on the flash drive."),(0,n.kt)("li",{parentName:"ul"},"Give the files execute permission after copying them."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"For scripts, prefix the script name with the command that runs the script (e.g. ",(0,n.kt)("em",{parentName:"p"},"bash path-to-script"),")."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/14eb3368.3f60616a.js b/de/assets/js/14eb3368.64ec88ed.js similarity index 98% rename from de/assets/js/14eb3368.3f60616a.js rename to de/assets/js/14eb3368.64ec88ed.js index 5de541b9c..25852f8f9 100644 --- a/de/assets/js/14eb3368.3f60616a.js +++ b/de/assets/js/14eb3368.64ec88ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(3734),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(3734),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(8259),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(8259),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file diff --git a/es/assets/js/17896441.5d44835b.js b/de/assets/js/17896441.63195e72.js similarity index 99% rename from es/assets/js/17896441.5d44835b.js rename to de/assets/js/17896441.63195e72.js index 4bf4e5f5e..0317e0a68 100644 --- a/es/assets/js/17896441.5d44835b.js +++ b/de/assets/js/17896441.63195e72.js @@ -1 +1 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i<r;i++)l[i]=n[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},3899:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(3734),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(P(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function z(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,S.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?<quote>["'])(?<title>.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i<r;i++)l[i]=n[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},3899:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(8259),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(P(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function z(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,S.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?<quote>["'])(?<title>.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/de/assets/js/18ade0c5.053494f9.js b/de/assets/js/18ade0c5.053494f9.js deleted file mode 100644 index 55622ecfd..000000000 --- a/de/assets/js/18ade0c5.053494f9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/de/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/de/unraid-os/manual/getting-started/"},next:{title:"Security",permalink:"/de/unraid-os/manual/security"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/18ade0c5.c8dadadd.js b/de/assets/js/18ade0c5.c8dadadd.js new file mode 100644 index 000000000..ee2999eaa --- /dev/null +++ b/de/assets/js/18ade0c5.c8dadadd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/de/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/de/unraid-os/manual/getting-started/"},next:{title:"Tools",permalink:"/de/unraid-os/manual/tools"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/1942e1e1.b8ff7e1c.js b/de/assets/js/1942e1e1.2eb0ca01.js similarity index 64% rename from de/assets/js/1942e1e1.b8ff7e1c.js rename to de/assets/js/1942e1e1.2eb0ca01.js index de0ab6306..64bb7259d 100644 --- a/de/assets/js/1942e1e1.b8ff7e1c.js +++ b/de/assets/js/1942e1e1.2eb0ca01.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/de/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/de/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/de/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/security#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/de/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/de/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/de/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"security.md#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/1be78505.010a8141.js b/de/assets/js/1be78505.fe92450b.js similarity index 99% rename from fr/assets/js/1be78505.010a8141.js rename to de/assets/js/1be78505.fe92450b.js index 2b4555c18..758818503 100644 --- a/fr/assets/js/1be78505.010a8141.js +++ b/de/assets/js/1be78505.fe92450b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(3734),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(8259),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/de/assets/js/1c36a847.fd007298.js b/de/assets/js/1c36a847.fd007298.js new file mode 100644 index 000000000..0b709084c --- /dev/null +++ b/de/assets/js/1c36a847.fd007298.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5289],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=o,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},7732:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={sidebar_position:5},i="VPN",s={unversionedId:"unraid-os/manual/security/vpn",id:"unraid-os/manual/security/vpn",title:"VPN",description:"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.",source:"@site/docs/unraid-os/manual/security/vpn.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/vpn",permalink:"/de/unraid-os/manual/security/vpn",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/vpn.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Flash Drive",permalink:"/de/unraid-os/manual/security/flash-drive"},next:{title:"Multi-Language Support",permalink:"/de/unraid-os/manual/multi-language"}},l={},u=[{value:"Router",id:"router",level:2},{value:"OpenVPN",id:"openvpn",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Overview",id:"overview",level:3},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:3},{value:"Implementation considerations",id:"implementation-considerations",level:4},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:4},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:4},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:4},{value:"About DNS",id:"about-dns",level:4},{value:"Complex Networks",id:"complex-networks",level:4},{value:"Configurations to avoid",id:"configurations-to-avoid",level:4},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:4},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:3},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:4},{value:"Configuring \u201cVPN tunneled access for Docker\u201d",id:"configuring-vpn-tunneled-access-for-docker",level:4},{value:"Testing the Docker tunnel",id:"testing-the-docker-tunnel",level:5},{value:"Configuring \u201cVPN tunneled access for system\u201d",id:"configuring-vpn-tunneled-access-for-system",level:4},{value:"Testing the System tunnel",id:"testing-the-system-tunnel",level:5},{value:"Support",id:"support",level:3}],c={toc:u},d="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"vpn"},"VPN"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.")),(0,o.kt)("p",null,"If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections."),(0,o.kt)("p",null,"In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki article")),(0,o.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.")),(0,o.kt)("p",null,"There are a wide variety of VPN solutions available both free and commercial."),(0,o.kt)("p",null,"Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet."),(0,o.kt)("p",null,"There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN."),(0,o.kt)("h2",{id:"router"},"Router"),(0,o.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically based on OpenVPN)."),(0,o.kt)("p",null,"Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN."),(0,o.kt)("h2",{id:"openvpn"},"OpenVPN"),(0,o.kt)("p",null,"This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet."),(0,o.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube video")," of use in setting it up."),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("h3",{id:"overview"},"Overview"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Wireguard logo",src:n(2602).Z,width:"128",height:"128"})),(0,o.kt)("p",null,"Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers."),(0,o.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid boot process."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,o.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN."),(0,o.kt)("li",{parentName:"ul"},"The interface is available under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")),".")),(0,o.kt)("p",null,"More information about WireGuard can be found on the ",(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard website"),"."),(0,o.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the connection types:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to server"),": Use your phone or computer to remotely access your Unraid server, including:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Unraid administration via the webGUI"),(0,o.kt)("li",{parentName:"ul"},"Access Docker containers, VMs, and network shares as though you were physically connected to the network"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to LAN"),': Builds on "Remote access to server", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server to server access"),": Allows two Unraid servers to connect to each other."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN to LAN access"),': Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server hub & spoke access"),': Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"VPN tunneled access"),": Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote tunneled access"),": Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.")),(0,o.kt)("p",null,"The following diagram attempts to show these different connection types in a graphical format"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Connection Types",src:n(1998).Z,width:"1000",height:"655"})),(0,o.kt)("h3",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,o.kt)("p",null,"This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network."),(0,o.kt)("h4",{id:"implementation-considerations"},"Implementation considerations"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren\'t around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.'),(0,o.kt)("li",{parentName:"ul"},"This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the ",(0,o.kt)("a",{parentName:"li",href:"#complex-networks"},"Complex Networks")," section."),(0,o.kt)("li",{parentName:"ul"},"Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this ",(0,o.kt)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from SpaceInvaderOne"),"."),(0,o.kt)("li",{parentName:"ul"},"If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port."),(0,o.kt)("li",{parentName:"ul"},"You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at ",(0,o.kt)("a",{parentName:"li",href:"https://www.wireguard.com/install/"},"WireGuard clients"),". Android or iOS make good first client systems because you can get all the details via QR code.")),(0,o.kt)("h4",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -",">",' Management Access and confirm "Use UPnP" is set to Yes'),(0,o.kt)("li",{parentName:"ul"},"On Unraid go to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Initial setup screen",src:n(5372).Z,width:"969",height:"314"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Give the ",(0,o.kt)("strong",{parentName:"li"},"VPN Tunnel")," a name, for example ",(0,o.kt)("em",{parentName:"li"},"MyHome VPN"),"."),(0,o.kt)("li",{parentName:"ul"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Generate Keypair"),". This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this)."),(0,o.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address."),(0,o.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network."),(0,o.kt)("li",{parentName:"ul"},"Select Apply."),(0,o.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP available",src:n(7098).Z,width:"1000",height:"61"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port forwarding',".",'.." you will need to login to your router and setup the port forward as directed by the note:')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP not available",src:n(4546).Z,width:"1000",height:"65"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port."),(0,o.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of your Unraid system shown in the note."),(0,o.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".'))),(0,o.kt)("li",{parentName:"ul"},"Note that after ",(0,o.kt)("strong",{parentName:"li"},"Apply"),', the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Key icon",src:n(6423).Z,width:"128",height:"128"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.'),(0,o.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Activate switch",src:n(711).Z,width:"562",height:"44"})),(0,o.kt)("h4",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Add Peer"),".\n",(0,o.kt)("img",{alt:"Add Peer",src:n(8169).Z,width:"866",height:"284"})),(0,o.kt)("li",{parentName:"ol"},"Give it a name, such as ",(0,o.kt)("em",{parentName:"li"},"MyAndroid"),"."),(0,o.kt)("li",{parentName:"ol"},"For the initial connection type, choose ",(0,o.kt)("em",{parentName:"li"},"Remote access to LAN"),". This will give your device access to Unraid and other items on your network."),(0,o.kt)("li",{parentName:"ol"},'Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)'),(0,o.kt)("li",{parentName:"ol"},'For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.'),(0,o.kt)("li",{parentName:"ol"},"Click Apply.")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.")),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},'It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.')),(0,o.kt)("h4",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer area - Eye icon",src:n(3939).Z,width:"912",height:"108"})),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer details popup",src:n(1967).Z,width:"580",height:"694"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.'),(0,o.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.")),(0,o.kt)("h4",{id:"about-dns"},"About DNS"),(0,o.kt)("p",null,"Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net."),(0,o.kt)("p",null,'Short names such as "tower" probably won\'t work, nor any DNS entries managed by the router.'),(0,o.kt)("p",null,'To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don\'t forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8'),(0,o.kt)("p",null,'This is particularly important for "Remote tunneled access" mode if the client\'s original DNS server is no longer accessible after all traffic is routed through the tunnel.'),(0,o.kt)("p",null,"Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection."),(0,o.kt)("h4",{id:"complex-networks"},"Complex Networks"),(0,o.kt)("p",null,'The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid\'s IP, and that works fine if you have a simple setup.'),(0,o.kt)("p",null,"However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'In the WireGuard tunnel config, set "Use NAT" to No'),(0,o.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)"),(0,o.kt)("li",{parentName:"ul"},"Gateway / Next Hop: IP address of your Unraid system"),(0,o.kt)("li",{parentName:"ul"},"Distance: 1 (your router may not have this option)"),(0,o.kt)("li",{parentName:"ul"},'If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"'))),(0,o.kt)("li",{parentName:"ul"},"Navigate to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > Docker Settings"))," and set ",(0,o.kt)("strong",{parentName:"li"},"Host access to custom networks")," to ",(0,o.kt)("strong",{parentName:"li"},"Enabled"))),(0,o.kt)("h4",{id:"configurations-to-avoid"},"Configurations to avoid"),(0,o.kt)("p",null,"There are some configurations you'll want to avoid, here is how a few key settings interact:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(this is the "simple network" setup assumed by the guide above)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(avoid this config)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and no static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(avoid this, if "Use NAT" = No, you really need to add a static route in your router)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = disabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(You've come this far, just set \"Host access to custom networks\" to enabled you're set)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = enabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - accessible!"),(0,o.kt)("li",{parentName:"ul"},"(woohoo! the recommended setup for complex networks)")))),(0,o.kt)("h4",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,o.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner."),(0,o.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking your work:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.'),(0,o.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config."),(0,o.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.')),(0,o.kt)("p",null,"A few other ideas:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not wifi). This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR code\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working from\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,o.kt)("li",{parentName:"ul"},"If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection."),(0,o.kt)("li",{parentName:"ul"},'Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.'),(0,o.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance."),(0,o.kt)("li",{parentName:"ul"},'If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.'),(0,o.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.'),(0,o.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|"," 192.168.0.0 to 192.168.255.255)"),(0,o.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot:\n",(0,o.kt)("inlineCode",{parentName:"li"},"/boot/config/wireguard/autostart")),(0,o.kt)("li",{parentName:"ul"},'Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.')),(0,o.kt)("h3",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,o.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum thread")," discussing making an outbound VPN connection using WireGuard"),(0,o.kt)("h4",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,o.kt)("p",null,"Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.vpnjantit.com/free-wireguard"},"VPN Jantit")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ovpn.com/en/wireguard"},"OVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://windscribe.com/"},"Windscribe"))),(0,o.kt)("p",null,"Note that any provider that requires a custom WireGuard client will not work with Unraid."),(0,o.kt)("p",null,"Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see ",(0,o.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you."),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-docker"},"Configuring \u201cVPN tunneled access for Docker\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},'On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"The \u201cPeer type of access\u201d will default to \u201cVPN tunneled access for docker\u201d. There are no settings to change, except perhaps to give it a local name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers"),(0,o.kt)("li",{parentName:"ul"},"Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a \"DNS\" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.")),(0,o.kt)("h5",{id:"testing-the-docker-tunnel"},"Testing the Docker tunnel"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},'The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.'),(0,o.kt)("p",{parentName:"admonition"},"Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel ",(0,o.kt)("em",{parentName:"p"},"before")," the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"When setting up the container, set the \u201cNetwork Type\u201d to \u201cCustom: wg2\u201d (or whatever the name of the tunnel was in the previous step)"),(0,o.kt)("li",{parentName:"ul"},'Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.:\n',(0,o.kt)("inlineCode",{parentName:"li"},"--dns=8.8.8.8"),"\n(if you don't set this, the container may leak your ISP's DNS server)"),(0,o.kt)("li",{parentName:"ul"},"The rest of the defaults should be fine, apply the changes and start the container"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider"),(0,o.kt)("li",{parentName:"ul"},"Also visit ",(0,o.kt)("a",{parentName:"li",href:"https://www.dnsleaktest.com/"},"https://www.dnsleaktest.com/")," and run a test, confirm that it only finds IPs related to the DNS provider you specified."),(0,o.kt)("li",{parentName:"ul"},"Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.")),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-system"},"Configuring \u201cVPN tunneled access for system\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN tunnel.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks."),(0,o.kt)("li",{parentName:"ul"},"Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled."),(0,o.kt)("li",{parentName:"ul"},"Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4")))),(0,o.kt)("h5",{id:"testing-the-system-tunnel"},"Testing the System tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider")),(0,o.kt)("h3",{id:"support"},"Support"),(0,o.kt)("p",null,"The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum thread")," on the original Dynamix WireGuard plugin"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum thread")," covering setting up incoming connections."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum thread")," covering setting up outgoing connections.")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}h.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/de/assets/js/26113f5d.634ef45c.js b/de/assets/js/26113f5d.634ef45c.js deleted file mode 100644 index 8f2bc0cd1..000000000 --- a/de/assets/js/26113f5d.634ef45c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/de/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/de/category/faq"},next:{title:"OS",permalink:"/de/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/de/assets/js/26113f5d.e13c53a4.js b/de/assets/js/26113f5d.e13c53a4.js new file mode 100644 index 000000000..4868ec068 --- /dev/null +++ b/de/assets/js/26113f5d.e13c53a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/de/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/de/category/faq"},next:{title:"OS",permalink:"/de/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/getting-started/"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/de/assets/js/277cf690.17346898.js b/de/assets/js/277cf690.17346898.js new file mode 100644 index 000000000..93710f203 --- /dev/null +++ b/de/assets/js/277cf690.17346898.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9821],{4137:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,y=p["".concat(c,".").concat(m)]||p[m]||d[m]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3593:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var n=r(7462),o=(r(7294),r(4137));const i={sidebar_position:7},a="Security",s={unversionedId:"unraid-os/manual/security/security",id:"unraid-os/manual/security/security",title:"Security",description:"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.",source:"@site/docs/unraid-os/manual/security/security.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/",permalink:"/de/unraid-os/manual/security/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/security.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/de/unraid-os/manual/applications"},next:{title:"Good Practices",permalink:"/de/unraid-os/manual/security/good-practices"}},c={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"security"},"Security"),(0,o.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely."),(0,o.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers."),(0,o.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are safe."),(0,o.kt)("p",null,"There is also a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum thread")," that discusses this topic."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/313b9001.cdf21bf4.js b/de/assets/js/313b9001.cdf21bf4.js new file mode 100644 index 000000000..f7c29b15f --- /dev/null +++ b/de/assets/js/313b9001.cdf21bf4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[559],{4137:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):n(n({},t),e)),r},d=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=l(r),y=a,h=c["".concat(u,".").concat(y)]||c[y]||p[y]||s;return r?o.createElement(h,n(n({ref:t},d),{},{components:r})):o.createElement(h,n({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,n=new Array(s);n[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,n[1]=i;for(var l=2;l<s;l++)n[l]=r[l];return o.createElement.apply(null,n)}return o.createElement.apply(null,r)}y.displayName="MDXCreateElement"},3283:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>n,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=r(7462),a=(r(7294),r(4137));const s={sidebar_position:1},n="Good Practices",i={unversionedId:"unraid-os/manual/security/good-practices",id:"unraid-os/manual/security/good-practices",title:"Good Practices",description:"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.",source:"@site/docs/unraid-os/manual/security/good-practices.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/good-practices",permalink:"/de/unraid-os/manual/security/good-practices",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/good-practices.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/de/unraid-os/manual/security/"},next:{title:"Securing webGUI connections (SSL)",permalink:"/de/unraid-os/manual/security/secure-webgui-ssl"}},u={},l=[{value:"#1 Set a strong root password",id:"1-set-a-strong-root-password",level:2},{value:"#2 Review port mappings on your router",id:"2-review-port-mappings-on-your-router",level:2},{value:"#3 Never put your server in your network's DMZ",id:"3-never-put-your-server-in-your-networks-dmz",level:2},{value:"#4 Set security on your shares to private",id:"4-set-security-on-your-shares-to-private",level:2},{value:"#5 Don't expose the flash share, and if you do, make it private",id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private",level:2},{value:"#6 Keep your server up-to-date",id:"6-keep-your-server-up-to-date",level:2},{value:"#7 Use a secure method for remote administration",id:"7-use-a-secure-method-for-remote-administration",level:2}],d={toc:l},c="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,o.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"good-practices"},"Good Practices"),(0,a.kt)("p",null,"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system."),(0,a.kt)("h2",{id:"1-set-a-strong-root-password"},"#","1 Set a strong root password"),(0,a.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the ",(0,a.kt)("strong",{parentName:"p"},"Users")," tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"There is a plugin available in Community Apps called ",(0,a.kt)("strong",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in."),(0,a.kt)("p",{parentName:"admonition"},"You could also use ",(0,a.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this webpage")," to get a very quick assessment of the strength of any specific password.")),(0,a.kt)("h2",{id:"2-review-port-mappings-on-your-router"},"#","2 Review port mappings on your router"),(0,a.kt)("p",null,"Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk."),(0,a.kt)("p",null,"Here are just a few ports you should be extra careful with when forwarding:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 80"),": Used to access the webGUI without SSL - unless you've rebound access to another port on the ",(0,a.kt)("strong",{parentName:"li"},"Management Access"),' settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you\'re doing. If you want to make the webGUI remotely accessible, install the ',(0,a.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 443"),": Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the ",(0,a.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,a.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin to enable simple, safe, and secure remote access to your Unraid systems."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 445"),": Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a ",(0,a.kt)("a",{parentName:"li",href:"/de/unraid-os/manual/security/vpn"},"WireGuard VPN")," to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 111/2049:")," Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Ports in the 57xx range:")," These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the ",(0,a.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.")),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.")),(0,a.kt)("h2",{id:"3-never-put-your-server-in-your-networks-dmz"},"#","3 Never put your server in your network's DMZ"),(0,a.kt)("p",null,'We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.'),(0,a.kt)("p",null,"Never, ",(0,a.kt)("em",{parentName:"p"},"ever"),", do this."),(0,a.kt)("h2",{id:"4-set-security-on-your-shares-to-private"},"#","4 Set security on your shares to private"),(0,a.kt)("p",null,"The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares."),(0,a.kt)("h2",{id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private"},"#","5 Don't expose the flash share, and if you do, make it private"),(0,a.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents."),(0,a.kt)("h2",{id:"6-keep-your-server-up-to-date"},"#","6 Keep your server up-to-date"),(0,a.kt)("p",null,"Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Tools > Update OS"))," to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Settings > Notifications"))," page."),(0,a.kt)("h2",{id:"7-use-a-secure-method-for-remote-administration"},"#","7 Use a secure method for remote administration"),(0,a.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet."),(0,a.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used."),(0,a.kt)("p",null,"An alternative for making the webGUI remotely accessible is to install the ",(0,a.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/4caccc33.55a7fea4.js b/de/assets/js/4caccc33.55a7fea4.js deleted file mode 100644 index 6e88670df..000000000 --- a/de/assets/js/4caccc33.55a7fea4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5602],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/de/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/de/unraid-os/manual/shares"},next:{title:"VM Support",permalink:"/de/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/de/assets/js/4caccc33.e7587a57.js b/de/assets/js/4caccc33.e7587a57.js new file mode 100644 index 000000000..bf8f67380 --- /dev/null +++ b/de/assets/js/4caccc33.e7587a57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5602],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/de/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/de/unraid-os/manual/storage-management"},next:{title:"VM Support",permalink:"/de/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/de/assets/js/55054ac6.15a9a5e7.js b/de/assets/js/55054ac6.15a9a5e7.js deleted file mode 100644 index 97e9f8003..000000000 --- a/de/assets/js/55054ac6.15a9a5e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/de/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/de/unraid-os/manual/what-is-unraid"},next:{title:"Shares",permalink:"/de/unraid-os/manual/shares"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/de/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/security#data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/de/assets/js/55054ac6.1ee0bde6.js b/de/assets/js/55054ac6.1ee0bde6.js new file mode 100644 index 000000000..d247cdfec --- /dev/null +++ b/de/assets/js/55054ac6.1ee0bde6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/de/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/de/unraid-os/manual/what-is-unraid"},next:{title:"Docker Management",permalink:"/de/unraid-os/manual/docker-management"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/de/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/security/data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/de/assets/js/57b01c12.f203cf55.js b/de/assets/js/57b01c12.6146938b.js similarity index 78% rename from de/assets/js/57b01c12.f203cf55.js rename to de/assets/js/57b01c12.6146938b.js index f8b7e8f7b..1e58fb455 100644 --- a/de/assets/js/57b01c12.f203cf55.js +++ b/de/assets/js/57b01c12.6146938b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3065],{8958:e=>{e.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/de/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/de/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Overview","permalink":"/de/unraid-os/manual/what-is-unraid"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3065],{8958:e=>{e.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/de/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/de/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Shares","permalink":"/de/unraid-os/manual/shares/"}}}')}}]); \ No newline at end of file diff --git a/de/assets/js/5f60a020.d4885282.js b/de/assets/js/5f60a020.d4885282.js new file mode 100644 index 000000000..c6c52d7fe --- /dev/null +++ b/de/assets/js/5f60a020.d4885282.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4863],{4137:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},s=Object.keys(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),h=d(r),c=n,m=h["".concat(l,".").concat(c)]||h[c]||u[c]||s;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,i=new Array(s);i[0]=c;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[h]="string"==typeof e?e:n,i[1]=o;for(var d=2;d<s;d++)i[d]=r[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},6260:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var a=r(7462),n=(r(7294),r(4137));const s={sidebar_position:2},i="Disk shares",o={unversionedId:"unraid-os/manual/shares/disk-shares",id:"unraid-os/manual/shares/disk-shares",title:"Disk shares",description:"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.",source:"@site/docs/unraid-os/manual/shares/disk-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/disk-shares",permalink:"/de/unraid-os/manual/shares/disk-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/disk-shares.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"User shares",permalink:"/de/unraid-os/manual/shares/user-shares"},next:{title:"Network access",permalink:"/de/unraid-os/manual/shares/network-access"}},l={},d=[{value:"Overview",id:"overview",level:2},{value:"Disk share constraints",id:"disk-share-constraints",level:2}],p={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"disk-shares"},"Disk shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable disk shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". Disk shares are disabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a ",(0,n.kt)("strong",{parentName:"p"},"Disk Shares")," section on the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. If you create a disk share, you should modify the user ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/shares/network-access#access-permissions-at-share-level"},"access permissions")," to restrict network user access."),(0,n.kt)("p",null,"When viewed at the Linux level, the physical devices or pools will appear directly under ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled."),(0,n.kt)("p",null,"Examples of such names are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/diskX:")," - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be ",(0,n.kt)("em",{parentName:"li"},"diskX"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/pool-name:")," - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be ",(0,n.kt)("inlineCode",{parentName:"li"},"pool-name"),".")),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at ",(0,n.kt)("inlineCode",{parentName:"p"},"/boot"),"."),(0,n.kt)("p",{parentName:"admonition"},"Due to the nature of the Unraid boot device, we recommend you maintain your shares in ",(0,n.kt)("em",{parentName:"p"},"Private")," mode, with read/write access given to trusted users.")),(0,n.kt)("h2",{id:"disk-share-constraints"},"Disk share constraints"),(0,n.kt)("p",null,"If you have both disk shares and user shares enabled in ",(0,n.kt)("strong",{parentName:"p"},"Global Share Settings"),", then there is an important restriction that you must observe to avoid potential data loss."),(0,n.kt)("p",null,"You must ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"never"))," copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, ",(0,n.kt)("inlineCode",{parentName:"p"},"cp /mnt/user/share/file /mnt/disk1/share/file"),"."),(0,n.kt)("p",null,"At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost."),(0,n.kt)("p",null,"There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management#unassigned-drives"},"Unassigned Disk"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/6b42df2b.150721df.js b/de/assets/js/6b42df2b.150721df.js deleted file mode 100644 index 43b7c0499..000000000 --- a/de/assets/js/6b42df2b.150721df.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/de/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/de/unraid-os/manual/applications"},next:{title:"Troubleshooting",permalink:"/de/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABcCAYAAADqBHIiAAAMZ2lDQ1BJQ0MgUHJvZmlsZQAASImVVwdUU8kanluSkJDQAhGQEnqT3kFKCC2CgFTBRkgCCSWGhKBiVxYVXLuIYkVXQGyrKyBrQexlEex9saCirIu6KIrKm5CArvvKef85c+fLN//87c7kzgCg2ceVSHJRLQDyxAXS+IgQ5vjUNCapE2AABXrAAJhxeTIJKy4uGkAZ6v8u724ARNFfdVTY+uf4fxUdvkDGAwCZCHEGX8bLg7gZAHwjTyItAICo4C2mFUgUeB7EulIYIMRrFDhLiWsUOEOJjwzqJMazIW4DQI3K5UqzANC4B3lmIS8L2tH4BLGLmC8SA6A5CuJAnpDLh1gR+6i8vKkKXAGxLdSXQAzjAT4Z39jM+pv9jGH7XG7WMFbmNShqoSKZJJc74/8szf+WvFz5kA9r2KhCaWS8In9Yw1s5U6MUmApxtzgjJlZRa4j7RHxl3QFAKUJ5ZJJSHzXiydiwfoABsQufGxoFsRHE4eLcmGgVn5EpCudADFcLOl1UwEmEWB/ixQJZWIJKZ6t0arzKF1qfKWWzVPw5rnTQr8LXA3lOEktl/41QwFHZxzSKhIkpEFMgtiwUJcdArAGxkywnIUqlM7pIyI4Z0pHK4xXxW0IcLxBHhCjtY4WZ0vB4lX5pnmwoX2yrUMSJUeEDBcLESGV9sFM87mD8MBesTSBmJQ3ZEcjGRw/lwheEhilzx54LxEkJKjt9koKQeOVcnCLJjVPp4+aC3AgFbw6xh6wwQTUXTy6Ai1NpH8+UFMQlKuPEi7K5Y+KU8eArQDRgg1DABHLYMsBUkA1Erd0N3fCXciQccIEUZAEBcFQxQzNSBkfE8JkAisAfEAmAbHheyOCoABRC/vMwq3w6gszB0cLBGTngKcR5IArkwt/ywVniYW/J4AlkRP/wzoWNB+PNhU0x/u/5IfYrw4JMtIqRD3lkag5pEsOIocRIYjjRDjfEA3F/PBo+g2Fzw31w36E8vuoTnhLaCY8I1wkdhNtTRAuk30U5FnRA++GqWmR8WwvcGtr0xEPwAGgdWsYZuCFwxD2gHxYeBD17QpatiltRFeZ3tv+WwTdvQ6VHdiGj5BHkYLLt9zM17DU8h60oav1tfZSxZgzXmz088r1/9jfV58M+6ntNbDF2EDuLncDOY0ewBsDEjmON2CXsqAIPr64ng6tryFv8YDw50I7oH/64Kp+KSspc6ly6XD4pxwoE0wsUG489VTJDKsoSFjBZ8OsgYHLEPKdRTDcXN1cAFN8a5d/XW8bgNwRhXPjK5TcD4FsKyayvHNcCgMNPAaC/+8pZvIHbZgUAR9t4cmmhksMVDwL8l9CEO80AmAALYAvzcQNewB8EgzAwBsSCRJAKJsMqC+E6l4JpYBaYD0pAGVgB1oINYAvYDmrAHnAANIAj4AQ4Ay6CNnAd3IWrpxO8BD3gHehHEISE0BA6YoCYIlaIA+KG+CCBSBgSjcQjqUg6koWIETkyC1mIlCGrkA3INqQW+Rk5jJxAziPtyG3kIdKFvEE+ohhKRXVRY9QadUZ9UBYahSaik9AsNB8tQovRZWgFWoXuRuvRE+hF9Dragb5EezGAqWMMzAxzxHwwNhaLpWGZmBSbg5Vi5VgVthdrgu/5KtaBdWMfcCJOx5m4I1zBkXgSzsPz8Tn4UnwDXoPX46fwq/hDvAf/QqARjAgOBD8ChzCekEWYRighlBN2Eg4RTsO91El4RyQSGUQbojfci6nEbOJM4lLiJuI+YjOxnfiY2EsikQxIDqQAUiyJSyoglZDWk3aTjpOukDpJfWrqaqZqbmrhamlqYrUFauVqu9SOqV1Re6bWT9YiW5H9yLFkPnkGeTl5B7mJfJncSe6naFNsKAGUREo2ZT6lgrKXcppyj/JWXV3dXN1XfZy6SH2eeoX6fvVz6g/VP1B1qPZUNnUiVU5dRq2mNlNvU9/SaDRrWjAtjVZAW0arpZ2kPaD1adA1nDQ4GnyNuRqVGvUaVzReaZI1rTRZmpM1izTLNQ9qXtbs1iJrWWuxtbhac7QqtQ5r3dTq1aZru2rHaudpL9XepX1e+7kOScdaJ0yHr1Oss13npM5jOka3oLPpPPpC+g76aXqnLlHXRpejm61bprtHt1W3R09Hz0MvWW+6XqXeUb0OBsawZnAYuYzljAOMG4yPI4xHsEYIRiwZsXfElRHv9UfqB+sL9Ev19+lf1/9owDQIM8gxWGnQYHDfEDe0NxxnOM1ws+Fpw+6RuiP9R/JGlo48MPKOEWpkbxRvNNNou9Elo15jE+MIY4nxeuOTxt0mDJNgk2yTNSbHTLpM6aaBpiLTNabHTV8w9ZgsZi6zgnmK2WNmZBZpJjfbZtZq1m9uY55kvsB8n/l9C4qFj0WmxRqLFoseS1PLsZazLOss71iRrXyshFbrrM5avbe2sU6xXmTdYP3cRt+GY1NkU2dzz5ZmG2Sbb1tle82OaOdjl2O3ya7NHrX3tBfaV9pfdkAdvBxEDpsc2kcRRvmOEo+qGnXTkerIcix0rHN86MRwinZa4NTg9MrZ0jnNeaXzWecvLp4uuS47XO666riOcV3g2uT6xs3ejedW6XbNneYe7j7XvdH9tYeDh8Bjs8ctT7rnWM9Fni2en728vaRee726vC290703et/00fWJ81nqc86X4BviO9f3iO8HPy+/Ar8Dfn/6O/rn+O/yfz7aZrRg9I7RjwPMA7gB2wI6ApmB6YFbAzuCzIK4QVVBj4ItgvnBO4OfsexY2azdrFchLiHSkEMh79l+7Nns5lAsNCK0NLQ1TCcsKWxD2INw8/Cs8LrwngjPiJkRzZGEyKjIlZE3OcYcHqeW0zPGe8zsMaeiqFEJURuiHkXbR0ujm8aiY8eMXT32XoxVjDimIRbEcmJXx96Ps4nLj/t1HHFc3LjKcU/jXeNnxZ9NoCdMSdiV8C4xJHF54t0k2yR5UkuyZvLE5Nrk9ymhKatSOsY7j589/mKqYaootTGNlJactjOtd0LYhLUTOid6TiyZeGOSzaTpk85PNpycO/noFM0p3CkH0wnpKem70j9xY7lV3N4MTsbGjB4em7eO95IfzF/D7xIECFYJnmUGZK7KfJ4VkLU6q0sYJCwXdovYog2i19mR2Vuy3+fE5lTnDOSm5O7LU8tLzzss1hHniE9NNZk6fWq7xEFSIunI98tfm98jjZLulCGySbLGAl14qL8kt5X/IH9YGFhYWdg3LXnawena08XTL82wn7FkxrOi8KKfZuIzeTNbZpnNmj/r4WzW7G1zkDkZc1rmWswtnts5L2JezXzK/Jz5vy1wWbBqwV8LUxY2FRsXzyt+/EPED3UlGiXSkpuL/BdtWYwvFi1uXeK+ZP2SL6X80gtlLmXlZZ+W8pZe+NH1x4ofB5ZlLmtd7rV88wriCvGKGyuDVtas0l5VtOrx6rGr69cw15Su+WvtlLXnyz3Kt6yjrJOv66iIrmhcb7l+xfpPG4QbrleGVO7baLRxycb3m/ibrmwO3rx3i/GWsi0ft4q23toWsa2+yrqqfDtxe+H2pzuSd5z9yeen2p2GO8t2fq4WV3fUxNecqvWurd1ltGt5HVonr+vaPXF3257QPY17Hfdu28fYV7Yf7Jfvf/Fz+s83DkQdaDnoc3DvL1a/bDxEP1Raj9TPqO9pEDZ0NKY2th8ec7ilyb/p0K9Ov1YfMTtSeVTv6PJjlGPFxwaOFx3vbZY0d5/IOvG4ZUrL3ZPjT147Ne5U6+mo0+fOhJ85eZZ19vi5gHNHzvudP3zB50LDRa+L9Zc8Lx36zfO3Q61erfWXvS83tvm2NbWPbj92JejKiauhV89c41y7eD3mevuNpBu3bk682XGLf+v57dzbr+8U3um/O+8e4V7pfa375Q+MHlT9bvf7vg6vjqMPQx9eepTw6O5j3uOXT2RPPnUWP6U9LX9m+qz2udvzI13hXW0vJrzofCl52d9d8of2Hxtf2b765c/gPy/1jO/pfC19PfBm6VuDt9V/efzV0hvX++Bd3rv+96V9Bn01H3w+nP2Y8vFZ/7RPpE8Vn+0+N32J+nJvIG9gQMKVcgePAhhsaGYmAG+qAaClwrMDvLdRJijvgoOCKO+vgwj8J6y8Lw6KFwDVwQAkzQMgGp5RNsNmBTEV9oojfGIwQN3dh5tKZJnubkpbVHgTIvQNDLw1BoDUBMBn6cBA/6aBgc87YLC3AWjOV95BFUKEd4atzgrU1vkKfC/K++k3OX7fA0UEHuD7/l8VUo9L8LR6iQAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAFigAwAEAAAAAQAAAFwAAAAAQVNDSUkAAABTY3JlZW5zaG90uBRXWAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+OTI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+ODg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K6dpLxQAAABxpRE9UAAAAAgAAAAAAAAAuAAAAKAAAAC4AAAAuAAAB8bPpRuYAAAG9SURBVHgB7NtByoJAGAbgL3HvEaK2grX2DEFCiw7hBVy4DNwJrTpBRjfoGK07g0StRa35N7NI+rV6c4K31TB+8+I8fAwoOXAcpxb+YAIDAsNs/4IJjPUVAhMYLACOZwcTGCwAjmcHExgsAI5nBxMYLACOZwcTGCwAjmcHExgsAI5nBxMYLACOZwcTGCwAjmcHExgsAI5nBxMYLACOZwcT+FHAtu3HyftMWZZS12b9zeOnOng6ncp6vZbxeNwIfL1eJUkS2W63jdf7mPwp4M1mI7PZ7KnT5XIRz/OM6eSfAt7v9+L7/lNgdXE4HEpVVf/WfaOAwGBlAhNYC/CI0BaQEYEhrDqUwNoCMiIwhFWHElhbQEYEhrDqUAJri7dGlmU1rt/tdq2e5EajUeOTnHoR9O2XQUY9aARBIKvVSu4f5jQCvztZFIVkWSZxHL8b1Xq9UcCHw0Fc1219868WTiYTOZ/Pry7vtM4o4CiKJAzDThvoWnw8HmU+nzceIV2z2tQbBazO3jRNZbFYtLn3zjWn00mWy6Xked557asLjAJWm0Ah94Gr9mMcMAK5L1xjgT+J3Ceu0cCfQO4bV+3hBgAA//8YEHZxAAACwUlEQVTtmM+LcVEYxx8yxYqNUna2bCwk+QtsRrJQNpRmQUksLeynJkVqlnYWsrRQSoSiZjFrdtj5UaYmkcy857y57zDe3Ms83nt7H5t77jnn+Z7nfM63c52j0uv1HyDjn1qthmw2C36/X1KWg8EAAoEAzGYzSXE/3Vkld8BswlIhywUuy10RgKVAlhNcRQEWA1lucP8pYJVKxcYX9fv4+POZ+Nt2cQqulDFYIl/HEZWYiE433SLMZjOkUim4v78HrVYrIr3fXVqtFkQiEViv17ziGPIpuNFoFNLptOgxGNxOpwP5fB56vZ7ouHMdbwr46emJf9nPJXWqvdlscsibzYY3M8hsoUwmE5RKJXh7exPCpMIVAn8VJpMJuN1u2O12X6svLt8U8HA4lOTc41k1Gg14eHiAPeTjdvZ+Ddy9ns/ng5eXl/3rVc+bAh6Px1cly4LZdpFIJGA+nx9oaTQavv3E4/GD+ktegsEgtNvtS0K/xSgOMJvBYrGA5+dneH19hff3d7BarRAKhcBms32b4CUV/z3gS6BJiSHAEmhtt1uo1WpgNBrB6XQeRI5GI+h2u+DxeMBgMAhtBFhAcb5QKBTg8fGRdyyXy+ByuXh5tVqBw+GA5XLJwVcqFUGMAAsozhcymQwUi0XekcH2er28zC6BGGDmcIvFwj+eezUCvCch4jmdTiGXy/EtIhaLwd3dnRBVrVahXq9DOBwGu90u1CsWMDtx6XQ6YSJyLSj2f/A1J7lbLYaiT3LsLiKZTPIjrtyczO4i2OGC3UX0+/0fW8+bHjR+LGsFCRFg5MUiwAQYmQCyPDmYACMTQJYnBxNgZALI8uRgAoxMAFmeHEyAkQkgy5ODCTAyAWR5cjABRiaALE8OJsDIBJDlycEEGJkAsjw5mAAjE0CWJwcTYGQCyPLkYAKMTABZnhxMgJEJIMt/AsmdGUt3/EDqAAAAAElFTkSuQmCC"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/de/assets/js/6b42df2b.6c8e10cf.js b/de/assets/js/6b42df2b.6c8e10cf.js new file mode 100644 index 000000000..c78a18ba7 --- /dev/null +++ b/de/assets/js/6b42df2b.6c8e10cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>d});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,d=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(d,i(i({ref:t},u),{},{components:a})):A.createElement(d,i({ref:t},u))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/de/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"VPN",permalink:"/de/unraid-os/manual/security/vpn"},next:{title:"Troubleshooting",permalink:"/de/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/de/assets/js/79722de7.9922385a.js b/de/assets/js/79722de7.3287b8ea.js similarity index 72% rename from de/assets/js/79722de7.9922385a.js rename to de/assets/js/79722de7.3287b8ea.js index 44e20deb8..917601fec 100644 --- a/de/assets/js/79722de7.9922385a.js +++ b/de/assets/js/79722de7.3287b8ea.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/de/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/de/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/de/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/de/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/de/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/de/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/getting-started/#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/798531cc.01db7adb.js b/de/assets/js/798531cc.50fb77d7.js similarity index 99% rename from de/assets/js/798531cc.01db7adb.js rename to de/assets/js/798531cc.50fb77d7.js index 415ae4c7c..9719c833d 100644 --- a/de/assets/js/798531cc.01db7adb.js +++ b/de/assets/js/798531cc.50fb77d7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/de/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/de/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/de/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/security#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/de/unraid-os/manual/shares#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/de/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/de/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/de/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares.md#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/7b378cd1.04331944.js b/de/assets/js/7b378cd1.04331944.js deleted file mode 100644 index e7ebf2354..000000000 --- a/de/assets/js/7b378cd1.04331944.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/de/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/de/unraid-os/manual/vm-management"},next:{title:"Multi-Language Support",permalink:"/de/unraid-os/manual/multi-language"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/de/assets/js/7b378cd1.2086cc56.js b/de/assets/js/7b378cd1.2086cc56.js new file mode 100644 index 000000000..2366d0288 --- /dev/null +++ b/de/assets/js/7b378cd1.2086cc56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/de/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/de/unraid-os/manual/vm-management"},next:{title:"Security",permalink:"/de/unraid-os/manual/security/"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/de/assets/js/7c081f1b.293f9388.js b/de/assets/js/7c081f1b.293f9388.js new file mode 100644 index 000000000..e43a2fc4f --- /dev/null +++ b/de/assets/js/7c081f1b.293f9388.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/de/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/de/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Upgrading Unraid",permalink:"/de/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/7c081f1b.5b7300fe.js b/de/assets/js/7c081f1b.5b7300fe.js deleted file mode 100644 index e09dc0be5..000000000 --- a/de/assets/js/7c081f1b.5b7300fe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/de/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/de/unraid-os/manual/security"},next:{title:"Upgrading Unraid",permalink:"/de/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/81b28c9f.1aa3e404.js b/de/assets/js/81b28c9f.1aa3e404.js deleted file mode 100644 index b685321c9..000000000 --- a/de/assets/js/81b28c9f.1aa3e404.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/de/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/de/unraid-os/faq/licensing-faq"},next:{title:"Redeem License Activation Code",permalink:"/de/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"To reset your ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#connecting-to-the-unraid-webgui"},"root\npassword"),":"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Shutdown your server."),(0,n.kt)("li",{parentName:"ol"},"Plug your USB flash into a laptop or another computer."),(0,n.kt)("li",{parentName:"ol"},'Open the USB folder and delete the files "config/shadow" and\n"config/smbpasswd". ',(0,n.kt)("em",{parentName:"li"},'(DO NOT delete "config/passwd).')," This will\nreset all user passwords, including the root user to blank."),(0,n.kt)("li",{parentName:"ol"},"Now, safely eject your USB and reboot it on your Unraid server and\nyou\u2019re in. You can then set a new password in the Users tab of the\nUnraid webgui.")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/81b28c9f.4d5b544d.js b/de/assets/js/81b28c9f.4d5b544d.js new file mode 100644 index 000000000..375c43d70 --- /dev/null +++ b/de/assets/js/81b28c9f.4d5b544d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/de/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/de/unraid-os/faq/licensing-faq"},next:{title:"Redeem License Activation Code",permalink:"/de/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/troubleshooting/#lost-root-password"},"Lost Root Password")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/8944547a.2fa0db38.js b/de/assets/js/8944547a.2fa0db38.js new file mode 100644 index 000000000..82de6f05f --- /dev/null +++ b/de/assets/js/8944547a.2fa0db38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5450],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,i=function(e,t){if(null==e)return{};var a,r,i={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=r.createContext({}),h=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(a),p=i,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||n;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<n;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3135:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>I,contentTitle:()=>M,default:()=>E,frontMatter:()=>x,metadata:()=>U,toc:()=>O});var r=a(7462),i=a(7294),n=a(4137),o=a(4334),s=a(2957),l=a(6550),h=a(5238),d=a(3609),u=a(2560);function c(e){return function(e){return i.Children.map(e,(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:i}}=e;return{value:t,label:a,attributes:r,default:i}}))}function p(e){const{values:t,children:a}=e;return(0,i.useMemo)((()=>{const e=t??c(a);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const r=(0,l.k6)(),n=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,h._X)(n),(0,i.useCallback)((e=>{if(!n)return;const t=new URLSearchParams(r.location.search);t.set(n,e),r.replace({...r.location,search:t.toString()})}),[n,r])]}function y(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,n=p(e),[o,s]=(0,i.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:n}))),[l,h]=f({queryString:a,groupId:r}),[d,c]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,n]=(0,u.Nk)(a);return[r,(0,i.useCallback)((e=>{a&&n.set(e)}),[a,n])]}({groupId:r}),y=(()=>{const e=l??d;return m({value:e,tabValues:n})?e:null})();(0,i.useLayoutEffect)((()=>{y&&s(y)}),[y]);return{selectedValue:o,selectValue:(0,i.useCallback)((e=>{if(!m({value:e,tabValues:n}))throw new Error(`Can't select invalid tab value=${e}`);s(e),h(e),c(e)}),[h,c,n]),tabValues:n}}var k=a(1048);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:a,selectedValue:n,selectValue:l,tabValues:h}=e;const d=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),c=e=>{const t=e.currentTarget,a=d.indexOf(t),r=h[a].value;r!==n&&(u(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},h.map((e=>{let{value:t,label:a,attributes:s}=e;return i.createElement("li",(0,r.Z)({role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,key:t,ref:e=>d.push(e),onKeyDown:p,onClick:c},s,{className:(0,o.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":n===t})}),a??t)})))}function w(e){let{lazy:t,children:a,selectedValue:r}=e;const n=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=n.find((e=>e.props.value===r));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},n.map(((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function b(e){const t=y(e);return i.createElement("div",{className:(0,o.Z)("tabs-container",v.tabList)},i.createElement(g,(0,r.Z)({},e,t)),i.createElement(w,(0,r.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return i.createElement(b,(0,r.Z)({key:String(t)},e))}const T={tabItem:"tabItem_Ymn6"};function S(e){let{children:t,hidden:a,className:r}=e;return i.createElement("div",{role:"tabpanel",className:(0,o.Z)(T.tabItem,r),hidden:a},t)}const x={sidebar_position:0},M="User shares",U={unversionedId:"unraid-os/manual/shares/user-shares",id:"unraid-os/manual/shares/user-shares",title:"User shares",description:"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.",source:"@site/docs/unraid-os/manual/shares/user-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/user-shares",permalink:"/de/unraid-os/manual/shares/user-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/user-shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/de/unraid-os/manual/shares/"},next:{title:"Disk shares",permalink:"/de/unraid-os/manual/shares/disk-shares"}},I={},O=[{value:"Overview",id:"overview",level:2},{value:"Share settings",id:"share-settings",level:2},{value:"Minimum free space",id:"minimum-free-space",level:3},{value:"Primary and Secondary storage (Unraid 6.12)",id:"primary-and-secondary-storage-unraid-612",level:3},{value:"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)",id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier",level:3},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:3},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:3},{value:"Allocation method",id:"allocation-method",level:3},{value:"High-water method",id:"high-water-method",level:4},{value:"Fill-up method",id:"fill-up-method",level:4},{value:"Most-free method",id:"most-free-method",level:4},{value:"Split level",id:"split-level",level:3},{value:"Automatically split any directory as required",id:"automatically-split-any-directory-as-required",level:4},{value:"Automatically split only the top level directory as required",id:"automatically-split-only-the-top-level-directory-as-required",level:4},{value:"Automatically split only the top "N" level directories as required",id:"automatically-split-only-the-top-n-level-directories-as-required",level:4},{value:"Manual - do not automatically split directories",id:"manual---do-not-automatically-split-directories",level:4},{value:"Included or excluded disks",id:"included-or-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3}],C={toc:O},A="wrapper";function E(e){let{components:t,...a}=e;return(0,n.kt)(A,(0,r.Z)({},C,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"user-shares"},"User shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable user shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". User shares are enabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view."),(0,n.kt)("p",null,"You manage ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes."),(0,n.kt)("p",null,"When viewed at the Linux level, user shares appear under the path ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user"),". This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/shares/disk-shares"},"Disk Shares"),"."),(0,n.kt)("p",null,"Note that current releases of Unraid also include the mount point ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user0")," that shows the files in ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release."),(0,n.kt)("p",null,"The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method"),", ",(0,n.kt)("a",{parentName:"p",href:"#included-or-excluded-disks"},"included or excluded disks"),", and the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),"."),(0,n.kt)("p",null,"If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation."),(0,n.kt)("p",{parentName:"admonition"},"This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.")),(0,n.kt)("h2",{id:"share-settings"},"Share settings"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"When you configure the settings for the share, select the ",(0,n.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the Unraid webGUI for detailed information on the individual settings.")),(0,n.kt)("h3",{id:"minimum-free-space"},"Minimum free space"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting is used with the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method")," and ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),". This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk)."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.")),(0,n.kt)("p",null,"When Unraid receives a request to store a file, say for example ",(0,n.kt)("inlineCode",{parentName:"p"},"file.eg"),", it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer."),(0,n.kt)("p",null,"We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large."),(0,n.kt)("p",null,"The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter ",(0,n.kt)("em",{parentName:"p"},"50GB"),". Note that new user shares will have a default 10% minimum free space assignment."),(0,n.kt)("p",null,"Unraid will still place files on the disk if the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level")," does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is also a ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for cache pools. This is used to determine if a new file for a user share, with the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache")," setting of ",(0,n.kt)("em",{parentName:"p"},"Yes")," or ",(0,n.kt)("em",{parentName:"p"},"Prefer"),", should be written to the\ncache or, instead, bypass the cache and go directly to the array."),(0,n.kt)("p",{parentName:"admonition"},"This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.")),(0,n.kt)("h3",{id:"primary-and-secondary-storage-unraid-612"},"Primary and Secondary storage (Unraid 6.12)"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," parameter defines the location - ",(0,n.kt)("em",{parentName:"p"},"Cache"),", ",(0,n.kt)("em",{parentName:"p"},"Array"),", or any named pool - to which new files will be written for the selected share. The ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," parameter sets the location where files will be moved to if there is not enough room in primary storage."),(0,n.kt)("p",null,"When primary storage is below the ",(0,n.kt)("a",{parentName:"p",href:"#minimum-free-space"},"Minimum Free Space")," value, new files and folders are created in secondary storage."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"If you select an ",(0,n.kt)("em",{parentName:"p"},"array")," or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.")),(0,n.kt)("p",null,"Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users."),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of ",(0,n.kt)("em",{parentName:"li"},"Cache"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"any named pool can be selected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Array")," can be selected.")))),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"None"),": This means that there is no secondary storage set for this share. Note that secondary storage is optional.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"if Primary storage is a pool name, then the only options are ",(0,n.kt)("em",{parentName:"li"},"None")," and ",(0,n.kt)("em",{parentName:"li"},"Array"),"."),(0,n.kt)("li",{parentName:"ul"},"if Primary storage is ",(0,n.kt)("em",{parentName:"li"},"Array"),", then only ",(0,n.kt)("em",{parentName:"li"},"None")," appears as an option.")))),(0,n.kt)("h3",{id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier"},"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)"),(0,n.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently."),(0,n.kt)("admonition",{title:"INFO",type:"note"},(0,n.kt)("p",{parentName:"admonition"},"Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.")),(0,n.kt)("p",null,"Unraid includes an application called ",(0,n.kt)("strong",{parentName:"p"},"Mover")," that is used in conjunction with user shares. It's behavior is controlled by the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache for new files")," setting under each user share. The way these settings operate is as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value. If the free space is below that then bypass the cache and write the files directly to the main array."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation Method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space on the cache is below the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the cache then the write will fail with an out-of-space error."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the share, and if the free space falls below that value then write the files to the main array instead."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the ",(0,n.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache"),(0,n.kt)("p",{parentName:"li"},"It is the default setting for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"system")," shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations."),(0,n.kt)("p",{parentName:"li"},"This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, ",(0,n.kt)("strong",{parentName:"p"},"Mover")," will automatically try and move the files in any share set to ",(0,n.kt)("em",{parentName:"p"},"Prefer")," to the pool defined as the cache for the share. This is why ",(0,n.kt)("em",{parentName:"p"},"Prefer")," is the default for shares that are located on the cache rather than ",(0,n.kt)("em",{parentName:"p"},"Only")," as it caters to those who do not (yet) have a cache drive."))),(0,n.kt)("h3",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,n.kt)("p",null,"This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage."),(0,n.kt)("p",null,"Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Cache -> Array"),"."),(0,n.kt)("li",null,"Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the Use Cache setting for the share to ",(0,n.kt)("i",null,"Yes"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"Only")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,n.kt)("p",null,"You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," or default system shares."),(0,n.kt)("p",null,"The way to proceed to get the files belonging to a share from the main array onto a pool is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Array -> Cache"),"."),(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting for the share to ",(0,n.kt)("i",null,"Prefer"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"No")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,n.kt)("p",null,"When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user\nshare, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation."),(0,n.kt)("p",null,"The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: ",(0,n.kt)("strong",{parentName:"p"},"High-water"),", ",(0,n.kt)("strong",{parentName:"p"},"Most-free"),", or ",(0,n.kt)("strong",{parentName:"p"},"Fill-up"),"."),(0,n.kt)("h4",{id:"high-water-method"},"High-water method"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"High-water")," setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level."),(0,n.kt)("admonition",{title:"Example",type:"important"},(0,n.kt)("p",{parentName:"admonition"},"If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass."),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left."),(0,n.kt)("li",{parentName:"ul"},"When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space"),(0,n.kt)("li",{parentName:"ul"},"Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.")),(0,n.kt)("p",{parentName:"admonition"},"This pattern continues with progressively smaller high-water levels until the disks are full.")),(0,n.kt)("h4",{id:"fill-up-method"},"Fill-up method"),(0,n.kt)("p",null,"The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full."),(0,n.kt)("h4",{id:"most-free-method"},"Most-free method"),(0,n.kt)("p",null,"The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the\nmost free space."),(0,n.kt)("h3",{id:"split-level"},"Split level"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the number 1."),(0,n.kt)("h4",{id:"automatically-split-any-directory-as-required"},"Automatically split any directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"Allocation method"),". If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-level-directory-as-required"},"Automatically split only the top level directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-n-level-directories-as-required"},'Automatically split only the top "N" level directories as required'),(0,n.kt)("p",null,'Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.'),(0,n.kt)("h4",{id:"manual---do-not-automatically-split-directories"},"Manual - do not automatically split directories"),(0,n.kt)("p",null,"When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"In the event of there being conflicts between the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method")," settings in deciding which would be an appropriate drive to use, the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.")),(0,n.kt)("h3",{id:"included-or-excluded-disks"},"Included or excluded disks"),(0,n.kt)("p",null,"These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share settings"))," are allowed."),(0,n.kt)("p",null,"Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file."),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.")),(0,n.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,n.kt)("p",null,'The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.'),(0,n.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,n.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,n.kt)("h3",{id:"default-shares"},"Default Shares"),(0,n.kt)("p",null,"If ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/docker-management"},"Docker")," or ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/vm-support"},"VMs")," are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems."),(0,n.kt)("p",null,"The shares that fall into this category are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"appdata")," - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"system")," - This is the default location for storing the docker application binaries, and VM XML templates"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"domains")," - This is the default location for storing virtual disk images (vdisks) that are used by VMs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"isos")," - This is the default location for storing CD ISO images for use with VMs.")),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the ",(0,n.kt)("inlineCode",{parentName:"p"},"isos")," share that can be shared over the network so you can place new ISOs to use in virtual machines.")))}E.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/8a89048a.f67f006d.js b/de/assets/js/8a89048a.f67f006d.js new file mode 100644 index 000000000..d3a66536a --- /dev/null +++ b/de/assets/js/8a89048a.f67f006d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1770],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=p(a),u=n,h=d["".concat(l,".").concat(u)]||d[u]||m[u]||o;return a?r.createElement(h,i(i({ref:t},c),{},{components:a})):r.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8829:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:5},i="Create a new share",s={unversionedId:"unraid-os/manual/shares/create-a-share",id:"unraid-os/manual/shares/create-a-share",title:"Create a new share",description:"When you create a new share, plan ahead.",source:"@site/docs/unraid-os/manual/shares/create-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/create-a-share",permalink:"/de/unraid-os/manual/shares/create-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/create-a-share.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Network access",permalink:"/de/unraid-os/manual/shares/network-access"},next:{title:"Delete a share",permalink:"/de/unraid-os/manual/shares/delete-a-share"}},l={},p=[],c={toc:p},d="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(d,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-new-share"},"Create a new share"),(0,n.kt)("p",null,"When you create a new share, plan ahead."),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"On the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab select ",(0,n.kt)("strong",{parentName:"p"},"Add Share"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Enter a name for your share in ",(0,n.kt)("strong",{parentName:"p"},"Share name")),(0,n.kt)("admonition",{parentName:"li",title:"Share names",type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so ",(0,n.kt)("inlineCode",{parentName:"p"},"media"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"Media"),", and ",(0,n.kt)("inlineCode",{parentName:"p"},"MEDIA")," would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," Enter a description for the share in the ",(0,n.kt)("strong",{parentName:"p"},"Comments")," field. This is visible when viewed over the network.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Set a ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value, in kilobytes, if you plan to use the setting, otherwise leave it empty.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),": high-water, fill-up, or most-free, depending on your use case. You can read about the differences ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/shares/user-shares#allocation-method"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," method for your data. You can find more information split level, ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/shares/user-shares#split-level"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," choose which disks will be available to the share. By default, all disks will be included.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks")," choose which disks will not be available to the share. Note that if you configure ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," there is no need to configure ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select a ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to ",(0,n.kt)("em",{parentName:"p"},"None"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," If you configure a primary and secondary storage, then ",(0,n.kt)("strong",{parentName:"p"},"Mover action")," option becomes active. This sets the direction of file transfers between Primary and Secondary storage.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select ",(0,n.kt)("strong",{parentName:"p"},"Add share")," to complete the creation."))),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"Note that, by default, a new share will not be shared over the network. You must configure ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/shares/network-access"},"network access")," after the share is created.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/90126b70.6124f2a7.js b/de/assets/js/90126b70.6124f2a7.js deleted file mode 100644 index 0974a08c4..000000000 --- a/de/assets/js/90126b70.6124f2a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[79],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function r(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),p=h(a),u=i,m=p["".concat(l,".").concat(u)]||p[u]||c[u]||s;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=a.length,o=new Array(s);o[0]=u;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,o[1]=r;for(var h=2;h<s;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8693:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const s={sidebar_position:4},o="Shares",r={unversionedId:"unraid-os/manual/shares",id:"unraid-os/manual/shares",title:"Shares",description:"Once you have assigned some devices to Unraid and started the array, you",source:"@site/docs/unraid-os/manual/shares.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/shares",permalink:"/de/unraid-os/manual/shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/de/unraid-os/manual/storage-management"},next:{title:"Docker Management",permalink:"/de/unraid-os/manual/docker-management"}},l={},h=[{value:"User Shares",id:"user-shares",level:2},{value:"Allocation method",id:"allocation-method",level:3},{value:"High Water",id:"high-water",level:4},{value:"Most Free",id:"most-free",level:4},{value:"Fill-Up",id:"fill-up",level:4},{value:"Min. Free Space",id:"min-free-space",level:3},{value:"Split level",id:"split-level",level:3},{value:"Disable Split Level",id:"disable-split-level",level:4},{value:"Split Level = 1 Example",id:"split-level--1-example",level:4},{value:"Split Level 0",id:"split-level-0",level:5},{value:"Example",id:"example",level:6},{value:"Split By Character",id:"split-by-character",level:5},{value:"Included and Excluded disk(s)",id:"included-and-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3},{value:"Unraid 6.12",id:"unraid-612",level:3},{value:"Primary Storage",id:"primary-storage",level:4},{value:"Secondary Storage",id:"secondary-storage",level:4},{value:"Unraid 6.11 and earlier",id:"unraid-611-and-earlier",level:3},{value:"Use Cache (and Mover Behavior with User Shares)",id:"use-cache-and-mover-behavior-with-user-shares",level:4},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:5},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:5},{value:"Disk Shares",id:"disk-shares",level:2},{value:"Network access",id:"network-access",level:2},{value:"Access Permissions",id:"access-permissions",level:2},{value:"Windows 'Gotcha'",id:"windows-gotcha",level:3}],d={toc:h},p="wrapper";function c(e){let{components:t,...s}=e;return(0,i.kt)(p,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"shares"},"Shares"),(0,i.kt)("p",null,"Once you have assigned some devices to Unraid and started the array, you\ncan create ",(0,i.kt)("em",{parentName:"p"},"shares")," to simplify how you store data across multiple disks\nin the array. Unraid will automatically create a handful of shares for\nyou that it needs to support common plugins, containers, and virtual\nmachines, but you can also create your own shares for storing other\ntypes of data. Unraid supports 2 types of share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"User Shares"),(0,i.kt)("li",{parentName:"ul"},"Disk Shares")),(0,i.kt)("p",null,"You can control which of these types of shares are to be used under\nSettings-",">","Global Share Settings. The default on Unraid is to have User\nShares enabled but Disk Shares disabled."),(0,i.kt)("p",null,"It is sometimes important to realize that these are two different views\nof the ",(0,i.kt)("strong",{parentName:"p"},"same")," underlying file system. Every file/folder that appears\nunder a User Share will also appear under the Disk Share for the\nphysical drive that is storing the file/folder."),(0,i.kt)("h2",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"User Shares can be enabled/disabled via Settings-",">","Global Share\nSettings."),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Shares")," tab, you can either ",(0,i.kt)("em",{parentName:"p"},"create")," a new share or ",(0,i.kt)("em",{parentName:"p"},"edit"),"\nan existing share. Click the ",(0,i.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the\nUnraid webGui when configuring shares for more information on the\nsettings available._"),(0,i.kt)("p",null,"User Shares are implemented by using Linux Fuse file system support.\nWhat they do is provide an aggregated view of all top level folders of\nthe same name across the cache and the array drives. The name of this\ntop level folder is used as the share name. From a user perspective this\ngives a view that can span multiple drives when viewed at the network\nlevel. Note that no individual file will span multiple drives - it is\njust the directory level that is given a unified view."),(0,i.kt)("p",null,"When viewed at the Linux level then User Shares will appear under the\npath ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user")),". This includes the files on the main array and also\nany for the share on any pool. It is important to note that a User Share\nis just a logical view imposed on top of the underlying physical file\nsystem so you can see the same files if you look at the physical level\n(as described below for Disk Shares)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Current releases of Unraid also include the mount point\n",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user0"))," that shows the files in User Shares OMITTING any\nfiles for a share that are on any pool. This is just a different\nview of the files on your server. ",(0,i.kt)("em",{parentName:"li"},"However This mount point is now\ndeprecated and may stop being available in a future Unraid release."))),(0,i.kt)("p",null,"Normally one creates User Shares using the Shares tab. However if you\nmanually create a top level folder on any drive the system will\nautomatically consider this to be a user Share and give it default\nsettings."),(0,i.kt)("p",null,"Which physical drive in the main array is used to store a physical file\nis controlled by a number of settings for the share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Allocation method"),": This has various options:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Most Free"),": This option means that new files should go to the\ndisk with the most free space. It has the downside that one is\ncontinually switching drives which keeps the drive involved spun\nup.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Fill Up"),": This option means simply fill up drives in disk\norder until the free space falls below the Minimum Free Space\nsetting, and when that happens move onto the next disk. Many\nusers like this setting because their content is static in\nnature to they find this a simple way to manage their storage.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"High Water"),": (default) This option attempts to provide a\ncompromise between continually switching drives as is caused by\nthe ",(0,i.kt)("strong",{parentName:"p"},"Most Free")," setting and filling up disks in a sensible\nmanner, but not fill each drive to capacity before using the\nnext one. The aim is to allow related files do be kept together\non the same drive and to let unused drives be spun down."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It works with switch points based by continually halving the\nsize of the largest drive in the array."),(0,i.kt)("li",{parentName:"ul"},"Many people find this confusing (particularly in an array with\ndrives of varying size). so as an example if you had an array\nconsisting of drives of 8TB, 3Tb and 2TB",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The largest drive is 8TB so the switch points are 4TB, 2TB,\n1Tb etc."),(0,i.kt)("li",{parentName:"ul"},"The 4TB switch point is active so The 8TB Drive one would be\nfilled to 4TB free space left."),(0,i.kt)("li",{parentName:"ul"},"The 2TB switch point becomes active so the 8TB and 3TB\ndrives each gets used in disk order until it they have 2TB\nfree space"),(0,i.kt)("li",{parentName:"ul"},"The 1TB switch point becomes active so each drive now gets\nused in disk order until it only has 1TB free space."),(0,i.kt)("li",{parentName:"ul"},"etc"))))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Included")," or ",(0,i.kt)("strong",{parentName:"p"},"excluded")," drives: These settings allow you to\ncontrol which array drives can hold files for the share. Never set\nboth values, set only the one that is most convenient for you. If no\ndrives are specified under these settings then all drives allowed\nunder ",(0,i.kt)("em",{parentName:"p"},"Settings ",">",">"," Global Share settings")," are allowed.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Split level"),": This setting controls how files should be grouped."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": in the event of there being contentions between the\n",(0,i.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,i.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,i.kt)("strong",{parentName:"p"},"Allocation\nmethod")," settings in deciding which would be an appropriate drive to\nuse the ",(0,i.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can\nget an out-of-space error even though there is plenty of space on\nother array drives that the share can logically use."),(0,i.kt)("p",null,"Changing any of these settings for a share only affects where any new\nfiles are put. Any files already present in the share are left where\nthey are located when a setting is changed. It takes Manual action to\nmove existing files."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": The Linux file systems used by Unraid are case sensitive\nwhile the SMB share system is not. As an example this means that a\nfolder at the Linux level a folder called 'media' is different to one\ncalled 'Media'. However at the network level case is ignored so for\nexample 'media', Media', 'MEDIA' would all be the same share.\nHowever to take this example further you would only get the content of\none of the underlying 'media' or 'Media' folders to appear at the\nnetwork share level - and it can be non-obvious which one this would be."),(0,i.kt)("p",null,"The following sections proved more detail on how these settings work:"),(0,i.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,i.kt)("p",null,"When a new User share is created, or when any object (file or directory)\nis created within a User share, the system must determine which data\ndisk the User share or object will be created on. In general, a new User\nshare, or object within a User share, will be created on the data disk\nwith the most free space. However there are a set of share configuration\nparameters available to fine tune disk allocation."),(0,i.kt)("p",null,"The basic allocation strategy for a share is defined by the Allocation\nmethod configuration parameter. You may select one of three allocation\nmethods for the system to use."),(0,i.kt)("h4",{id:"high-water"},"High Water"),(0,i.kt)("p",null,"The high water allocation method attempts to step fill each disk so at\nthe end of each step there is an equal free space left on each disk. The\nidea is to progressively fill each disk but not constantly go back and\nforth between disks each time new data is written to the array. Most\ntimes, only a single disk will be needed when writing a series of files\nto the array so the array will only spin-up the needed disk. The high\nwater level is initially set equal to one-half of the size of the\nlargest disk. A new high water level is again set to one-half of the\nprevious high level once all the disks have less free space than the\ncurrent high water level."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8272).Z,width:"836",height:"505"})),(0,i.kt)("p",null,"The above example shows what will occur when there is a mix of 4 disks\nvarying is size from 500gig to 2T in size."),(0,i.kt)("p",null,"First Pass - The high water level is set to one-half of the size of the\n2T drive or 1T. Each disk will be filled until it has <1T of free space\nremaining. This means no data is stored on disk1 or disk2 since both\nalready have <1T of free space. 500gig of data will be stored on disk3\nfollowed by 1T of data being stored on disk4."),(0,i.kt)("p",null,"Second Pass - The high water level is reset to one-half of the previous\nlevel or 500gig. Each disk will be filled until it has <500gig of free\nspace remaining. This means no data is stored on disk1 since it already\nhas <500gig of free space. 500gig of data will be stored on disk2 and\nthen 500gig of data will be stored on disk3 and finally 500gig of data\nwill be stored on disk4."),(0,i.kt)("p",null,"Third Pass - The high water level is again reset to one-half of the\nprevious level or 250gig. Each disk will be filled until it has <250gig\nof free space remaining. 250gig of data will be stored on disk1 and then\n250gig of data will be stored on disk2 and then 250gig of data will be\nstored on disk3 and finally 250gig of data will be stored on disk4. An\ninteresting note is that the 500gig disk does not get used at all until\nthe third pass. Don't be concerned if the smaller sized disks don't\nimmediately get used with this method."),(0,i.kt)("p",null,"This pattern will continue with progressively smaller high water levels\nuntil the disks are full."),(0,i.kt)("h4",{id:"most-free"},"Most Free"),(0,i.kt)("p",null,"The most free allocation method simply picks the disk with the most free\nspace and writes the data to that disk. Each time a file is written\nUnraid will check the free space on the disks and pick the one with the\nmost free space."),(0,i.kt)("h4",{id:"fill-up"},"Fill-Up"),(0,i.kt)("p",null,"The fill-up allocation method simply attempts to fill each disk in order\nfrom the lowest numbered disk to the highest numbered disk. The fill-up\nallocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and\nnot allow any more transfers once the first disk gets close to being\nfull."),(0,i.kt)("h3",{id:"min-free-space"},"Min. Free Space"),(0,i.kt)("p",null,"The minimum free space setting is used with the allocation method and\nsplit level. The Minimum Free space setting doesn't control how much\nspace is kept free, but instead it controls how much space must be free\nfor a drive to be chosen for a new file. The minimum free space setting\ntherefore tells Unraid to stop putting new content onto the disk when\nthe free space falls below the level you set (as long as the Split Level\nsetting indicates it can be split to a new disk). This must be used with\nthe fill-up allocation method or disk full errors will occur when there\nis not enough space to fit a file you are trying to write to the array."),(0,i.kt)("p",null,'First a brief explanation of how Unraid will typically receive a file.\nUnraid typically receives data in this manner. First, Unraid receives\nthe request to store a file, named for example "file.eg". At this\ntime, Unraid has no idea how big "file.eg" is so Unraid will pick a\nspot to place "file.eg" and begin to store the file data as the data\nis transferred over the network. Now, this is important because Unraid\nmay pick a storage disk that does not have enough space to store the\ncomplete "file.eg". Unraid doesn\'t know there is not enough space\nwhen it first places the file so Unraid will only find out the disk\ndoesn\'t have enough space when the disk is full. At this point, the\ntransfer will fail with a disk full error.'),(0,i.kt)("p",null,"So, Unraid will write to a different disk if the minimum free space is\nset to a value larger than the biggest file size you will ever transfer.\nThe recommended setting is 2 times the largest file size you will ever\ntransfer. For example, if the largest file you have is 8gig in size then\nset the minimum free space to 16gig. This allows you to transfer files\nthat may vary in size somewhat and not accidentally transfer one too\nlarge. The minimum free space is set in kilo-bytes."),(0,i.kt)("p",null,"Here are some examples of the minimum free space setting;"),(0,i.kt)("hr",null),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Free Space"),(0,i.kt)("th",{parentName:"tr",align:null},"Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"500 meg"),(0,i.kt)("td",{parentName:"tr",align:null},"500000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"20 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"20000000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"40 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"40000000")))),(0,i.kt)("hr",null),(0,i.kt)("p",null,"Note that unRAID will still place files on the disk if the split level\ndoes not allow the files to be placed on another disk with more free\nspace."),(0,i.kt)("p",null,"Also note that Unraid will typically not move a file onto a new disk if\nyou're over-writing or updating it. For example, a backup file that\ngrows in size over time could end up filling a disk and causing a disk\nfull error."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": There is also a Minimum Free Space setting for cache pools.\nThis is used to determine when a new file for a User Share with the Use\nCache setting having a value of Yes or Prefer should be written to the\ncache or instead bypass the cache and go directly to the array. This\nneeds to be set if you want to avoid filling a cache pool which can\ncause problems. As for this value when used with a User Share it\nshould be larger than the largest file you intend to write, and some\npeople like to make it significantly larger. You get to this setting by\nclicking on a pool on the Main tab."),(0,i.kt)("h3",{id:"split-level"},"Split level"),(0,i.kt)("p",null,"The split level setting tells Unraid how many folder levels are allowed\nto be created on multiple disks. The split level can be used to ensure\nthat the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the\nnumber 1."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": in the event of there being contention between the\nvarious settings for a share over which array drive to select for a file\nthe Split Level setting always takes precedence. This means the\nAllocation Method and Minimum Free Space settings end up being\nover-ridden. This can mean Unraid chooses a drive which does not have\nenough space for the file so that an out-of-space error subsequently\noccurs for the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"The Split level setting is one that many users find confusing to here\nis a more detailed description of how it works."))),(0,i.kt)("p",null,'Here is an example showing a possible directory structure for a user\nshare called "Media".'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," I (the original author of this section) consider combining\nmedia types into a single large share a poor way to store media. I use a\nshare for each media type. Movies is a share and TV shows is a share. I\ncombined the movies and TV shows to show the pitfalls in the split\nlevels when doing this as explained after the figure."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1298).Z,width:"700",height:"255"})),(0,i.kt)("p",null,"Here is an explanation of the different split levels, referenced to the\nfolder structure above;"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Level 1",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select the\n"Automatically split only the top level directory as required"\noption.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Every other folder under the Media share must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting does not allow the SD Movies, HD Movies, Kids\nMovies or TV Shows folders to spread to multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too low for all the media."))),(0,i.kt)("li",{parentName:"ol"},"Level 2",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'this is what you have if in the GUI you select the\n"Automatically split only the top two directory levels as\nrequired" option.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting may work well. It will keep each movie and each TV\nseries together on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting may give issues because it keeps each TV series on\na single disk. So, a disk may fill as new TV seasons are added\nto a TV show which is on a disk which is close to full."))),(0,i.kt)("li",{parentName:"ol"},"Level 3",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top three directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder must remain on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting will allow the contents stored in each Movie Folder\nto be spread out onto multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high for the different movie types."))),(0,i.kt)("li",{parentName:"ol"},"Level 4",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top four directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high because it will allow the contents of\nevery folder to be spread out onto multiple disks. The split\nlevel is not being used to keep similar content together.")))),(0,i.kt)("p",null,"The only valid split level for the above example is 2. This causes a\nsplit level limitation which forces each complete TV series to a single\ndisk. This can force a new TV season to be placed on a disk which is\nalmost full and result in out of space errors once new episodes\ncompletely fill the disk. The split level can't be increased to 3\nbecause each individual movie would not be contained to a single disk."),(0,i.kt)("p",null,"The first way to fix this split level mismatch issue is to create\nseparate shares for the movies and the TV shows. This way, the movies\ncan be set to use a split level of 2 and the TV shows can use a split\nlevel of 3."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3865).Z,width:"726",height:"237"})),(0,i.kt)("p",null,'For Movies use a split level = 2. This allows the "SD Movies", "HD\nMovies" and "Kids Movies" folders to be placed on every disk and it\nkeeps each individual movie folder on a single disk. This way, any\nsingle movie folder and the contents of the movie folder will remain on\na single disk.'),(0,i.kt)("p",null,"For TV_Shows use a split level of either 1 or 2. A split level of 1 will\nkeep each TV series on a single disk and split level of 2 will keep each\nseason on a single disk. The split level of 2 means that the complete TV\nseries can be stored on multiple disks, however each individual season\nof that TV series will be on a single disk."),(0,i.kt)("p",null,"The second way to fix the issue is to add another folder level to the\nmovies, starting first with a Movies folder in the Media share and then\nplacing the different movie types below this."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(2778).Z,width:"644",height:"291"})),(0,i.kt)("p",null,"This user share structure must use split level = 3. SD Movies, HD\nMovies, Kids Movies and each TV series can exist on multiple disks. This\nstructure means each TV season can be on a different disk. This has the\nopposite issue compared to the first example. You can not use split\nlevel 2 to force each complete TV series to remain on a single disk\nwithout messing up the ability of the movies to split to every disk."),(0,i.kt)("p",null,"Some things to keep in mind."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'The above examples are to demonstrate the use of the split level. It\nis not necessary to store your media sorted in the same format as\nthe above example illustrates. You may want to use a Movies share\nand then just place a "Movie Name" folder for each movie directly\ninto the share without sorting the movies by type.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"It is completely valid to force each complete TV series to stay on a\nsingle disk. Just understand that a continuing TV series will keep\nfilling the disk where it is first placed. This may require manual\nintervention to shift some TV series from an almost full disk to an\nempty disk. Using the Most Free allocation method can help eliminate\nthe issue since a completely new TV series would be placed on the\ndisk with the most free space.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The above TV example applies to any similar share. It could apply to\na Pictures share where you store the pictures in folders based on\nthe year (2010, 2011, 2012 etc) or it could apply to a Music share\nwhere you store the music in a folder for each artist. In these\ncases, a split level of 1 would keep a whole year of pictures on a\nsingle disk or it would keep all the music by an artist on a single\ndisk."))),(0,i.kt)("h4",{id:"disable-split-level"},"Disable Split Level"),(0,i.kt)("p",null,"It is also possible to disable the split level by setting a high split\nlevel. A file copy or move will fail if a folder is locked to a full\ndisk and an attempt is made to add more files into that folder. Setting\na high split level will ensure each file will get written to the server\nas long as a disk has space for it."),(0,i.kt)("h4",{id:"split-level--1-example"},"Split Level = 1 Example"),(0,i.kt)("p",null,"The following example demonstrates how the share behaves when the split\nlevel is set to 1. The Share name is New_Movies. Each movie stored in\nthis share has its own folder. Inside the movie folder is the movie file\nas well as some metadata files used by MediaBrowser."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(5154).Z,width:"565",height:"626"})),(0,i.kt)("p",null,"The above Windows Explorer screen shot shows the file structure of the\nNew_Movies share on the left and the contents of the A History of\nViolence movie folder on the right. The levels for this share are\nlabeled on the example. This is what split level = 1 means:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"A New_Movies folder can be created on each disk allowed by the\ninclude and exclude disk settings. A new New_Movies folder will be\ncreated on the next disk in line when the allocation method calls\nfor Unraid to begin filling the next disk. Note that the New_Movies\nfolder will only be created on the next disk in line when it is\nnecessary and not when the share is created.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The A History of Violence folder can only\nexist on one disk. Once it is created on the disk, all of the\ncontents will remain on the same disk. Any changes or additions to\nthis folder will remain on the same disk. For example, a new file\ncalled movie.nfo for the XBMC metadata might be created in this\nfolder in the future. The movie.nfo file will be created in the\nexisting A History of Violence folder. A duplicate A History of\nViolence folder will not be created on another disk to store this new\nfile."))),(0,i.kt)("p",null,"You will notice that the movie folders (500) Days of Summer (2009) and\n2 Fast 2 Furious (2003) both appear in the New_Movies share. The next\nscreen shot will show how each of these files is stored on a separate\ndisk."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8362).Z,width:"1208",height:"705"})),(0,i.kt)("p",null,"The above screen shot shows side by side Window Explorer views of the\nfile structure stored on disk1 and disk2. On the left is disk1 and on\nthe right is disk2. The left Explorer window shows the contents of\ndisk1. The New_Movies share is a folder stored at the top level or the\nroot of disk1 with the individual movie directories stored in this\ndirectory. The right Explorer window shows the contents of disk2. The\nNew_Movies share is a folder stored at the top level or the root of\ndisk2 with the individual movie folders stored in this directory. As\nfiles were being moved into the New_Movies share, Unraid created the\nNew_Movies folder on both disk1 and disk2 to store these files."),(0,i.kt)("p",null,"The windows side by side can be used to examine the contents of the\nNew_Movies share on a disk by disk basis. You will notice that the movie\nfolder (500) Days of Summer (2009) is stored on disk1 and the movie\nfolder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted,\nUnraid combines the movies stored on disk1 and disk2 into one network\nshare called New_Movies and both movies appear in the New_Movies network\nshare."),(0,i.kt)("p",null,"Take note that a share called Movies is also visible on disk2."),(0,i.kt)("h5",{id:"split-level-0"},"Split Level 0"),(0,i.kt)("p",null,'This is what you have if in the GUI you select "Manual: do not\nAutomatically split directories".'),(0,i.kt)("p",null,"Split level 0 is a special case. Split level 0 requires you to create\nthe desired top level or parent folder structure. Unraid will\nunconditionally create an object on the disk that contains the parent\nfolders. Unraid will choose which disk to use according to the\nallocation method if the parent folders exist on multiple disks."),(0,i.kt)("p",null,"If you set the Split level to 0, then all directories/files created\nunder that share will be on the same disk where the directory within\nthat share share was originally created. In other words, use level 0 to\nnot allow the share to split automatically across disks"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")," If you create the same folder structure on multiple disks then\nUnraid will apply the other share settings to decide which disk to use."),(0,i.kt)("h6",{id:"example"},"Example"),(0,i.kt)("p",null,"The server has 4 disks. A user share called Media is desired. Different\ntypes of media will be stored in this share. The desired structure is;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"disk1 - will hold the DVD movies."),(0,i.kt)("li",{parentName:"ul"},"disk2 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk3 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk4 - will hold the TV series.")),(0,i.kt)("p",null,"The desired structure is illustrated below."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3610).Z,width:"1369",height:"388"})),(0,i.kt)("p",null,"On the left side is how the user share will appear and on the right side\nis the folder structure on each disk. The user will go to each disk and\ncreate the folders shown in red to create the storage as listed above.\nThen, the Media folder as well as the DVD Movies, BluRay Movies and TV\nShows folders become the parent folders for everything stored in the\nMedia share. The media will be sorted by disk as follows;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Movies placed in the DVD Movies folder will go to disk1."),(0,i.kt)("li",{parentName:"ul"},"Movies placed in the BluRay Movies folder will go to disk2 or disk3.\nThe disk is selected by the allocation method."),(0,i.kt)("li",{parentName:"ul"},"TV shows placed in the TV Shows folder will go to disk4.")),(0,i.kt)("p",null,"Say one day that disk1 is full and disk5 is added to the server to hold\nnew DVD Movies. The same folders on disk1 must be created on the new\ndisk5. In other words, the folder Media and sub-folder DVD Movies must\nbe created on disk5. Then, Unraid can use either disk1 or disk5 to store\nDVD Movies."),(0,i.kt)("h5",{id:"split-by-character"},"Split By Character"),(0,i.kt)("p",null,"Specify a character in the split level box to use this method. Then,\nUnraid will not allow any folder name containing the character to split.\nFor example, set the split level to an opening square bracket ( [ )\ninstead of a number. Then, create each movie folder with the year\nencased in square brackets after the title in this manner - Iron Man 2\n","[2010]",". Unraid will see the opening square bracket ( [ ) and it will\nnot split this folder or any content stored inside this folder."),(0,i.kt)("p",null,"This type of split level can allow different levels of sub-folders to be\nspecified as not splitting simply by inserting the character into the\nfolder name which should not split. This can overcome the limitation of\nhaving a fixed split level for a share."),(0,i.kt)("h3",{id:"included-and-excluded-disks"},"Included and Excluded disk(s)"),(0,i.kt)("p",null,'The included disk(s) and excluded disk(s) parameters control which disks\nare allowed to be used by each user share. These parameters can be used\nseparately or together to define the group of disks allowed for writing\nfiles to each user share. The disks are entered by disk number with a\ncomma separating each disk, for example "disk2,disk5".'),(0,i.kt)("p",null,"Unraid will first check the included disks(s) set and then the Excluded\ndisk(s) set when deciding which disk to place a file on. Then, Unraid\nwill use the split level and allocation method to pick a disk which is\nallowed to hold the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," The Include/Exclude settings at the individual share level\nonly control which disks new files can be written to. Files on other\ndisks that are in a folder corresponding to the share name will still\nshow up under that share for read purposes."),(0,i.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,i.kt)("p",null,'The included disks(s) parameter defines the set of disks which are\ncandidates for allocation to that share. All disks may be used by the\nuser share when the Included disk(s) parameter is left blank. Specify\nthe disks to include here. For example, set the included disk(s) to\n"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and\ndisk3.'),(0,i.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,i.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are\nexcluded from use by the user share. No disks are excluded from use by\nthe user share when the excluded disk(s) parameter is left blank.\nSpecify the disks to exclude here. For example, set the excluded disk(s)\nto "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,i.kt)("h3",{id:"default-shares"},"Default Shares"),(0,i.kt)("p",null,"If you have Docker or VMs enabled then a number of default shares are\nset up to support their use. It is not mandated that you use these\nshares (and the system will let you remove them if you do not want to\nuse them for their standard purpose) but it is recommended as it tends\nto make it easier to support users who encounter problems."),(0,i.kt)("p",null,"The shares that fall into this category are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"appdata"),": this is the default location for storing working files\nassociated with docker containers. Typically there will be a\nsub-folder for each docker container."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": this is the default location for storing the docker\napplication binaries, and VM XML templates"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": this is the default location for storing virtual disk\nimages (vdisks) that are used by VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": this is the default location for storing CD iso images for\nuse with VMs.")),(0,i.kt)("h3",{id:"unraid-612"},"Unraid 6.12"),(0,i.kt)("p",null,"The Unraid 6.12 release has introduced some new terminology to make it\nclearer to new users where files are initially placed and where they\nwill end up. The same functionality is present in earlier releases, but\nhas often been misunderstood by new users."),(0,i.kt)("h4",{id:"primary-storage"},"Primary Storage"),(0,i.kt)("p",null,"This is the location to which ",(0,i.kt)("strong",{parentName:"p"},"new")," files will be written."),(0,i.kt)("p",null,"If Primary storage is below the Minimum Free Space setting then new\nfiles and folders will be created in Secondary storage, if configured"),(0,i.kt)("p",null,"For the Primary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"this option is mandatory. ie, Primary storage must be selected"),(0,i.kt)("li",{parentName:"ul"},"any named pool can be selected"),(0,i.kt)("li",{parentName:"ul"},'"Array" can be selected (meaning the Unraid array)')),(0,i.kt)("h4",{id:"secondary-storage"},"Secondary Storage"),(0,i.kt)("p",null,"This is the location where files will be moved to if appropriate."),(0,i.kt)("p",null,"For the Secondary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"None: This means that there is no secondary storage set for this\nshare i.e Secondary storage is optional"),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is a pool name, then the only options are\n"none" and "Array"'),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is "Array", then only "none" appears as an\noption')),(0,i.kt)("h3",{id:"unraid-611-and-earlier"},"Unraid 6.11 and earlier"),(0,i.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They\nachieve the same functionality as the settings available in 6.12 but are\npresented differently."),(0,i.kt)("h4",{id:"use-cache-and-mover-behavior-with-user-shares"},"Use Cache (and Mover Behavior with User Shares)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": Starting with Unraid 6.9.0 multiple pools can exist and they\ncan have any name the user chooses. Any of these pools can act act as a\ncache in the way Unraid uses the term. The word cache therefore is\nreferring to this functionality and not necessarily to the pool name."),(0,i.kt)("p",null,"Unraid includes an application called ",(0,i.kt)("strong",{parentName:"p"},"mover"),' that is used in\nconjunction with User Shares. It\'s behavior is controlled by the "Use\nCache for new files" setting under each User Share. The way these\ndifferent settings operate is as follows'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on\nthe cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," value. If the free space\nis below that then by-pass the cache and write the files directly to\nthe main array."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move files to the main array as\nlong as they are not currently open. Which array drive will get the\nfile is controlled by the combination of the ",(0,i.kt)("em",{parentName:"p"},"Allocation method"),",\n",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting for the share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive\nwill get the file is controlled by the combination of the\n",(0,i.kt)("em",{parentName:"p"},"Allocation method"),", ",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting\nfor the share."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the cache that logically belong to this\nshare.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space\non the cache is below the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache\nthen the write will fail with an out-of-space error."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the main array that logically belong to\nthis share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the\ncache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the share, and\nif the free space falls below that value then write the files to the\nmain array instead."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move any files for this share\nthat are on the main array back to the cache as long as the free\nspace on the cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the\ncache"),(0,i.kt)("p",{parentName:"li"}," It is the default setting for the ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"System")," Shares that\nare used to support the Docker and VM sub-systems. In typical use\nyou want the files/folders belonging to these shares to reside on\nthe cache as you get much better performance from Docker containers\nand VMs if their files are not on the main array (due to the cost of\nmaintaining parity on the main array significantly slowing down\nwrite operations)."),(0,i.kt)("p",{parentName:"li"}," This setting works for a share even if you do not have (yet) a\nphysical cache drive(s) as then files will simply be written\ndirectly to the array. If at a later date you add a cache drive\nmover will now automatically try and move the files in any share set\nto Prefer to the pool defined as the cache for the share to improve\nperformance. This is why it is the default for shares that are\ntypically located on the cache rather than ",(0,i.kt)("em",{parentName:"p"},"Only")," as it caters for\nthose who do not (yet) have a cache drive."))),(0,i.kt)("h5",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,i.kt)("p",null,"This is the more traditional usage of a pool for caching where one wants\nthe files for a particular share initially written to a pool acting as a\ncache to maximise write speed, but later you want it to be moved to the\nmain array for long term storage. Most of the time all that is required\nis to set the Use Cache setting for the share to Yes and the default\nbehaviour handles the rest with no further user interaction."),(0,i.kt)("p",null,"Sometimes for one reason or another users find that the files seem to be\n'stuck' on a pool. The way to proceed in such a case to get the files\nbelonging to a share from a pool onto the main array is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)."),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Yes")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move ",(0,i.kt)("em",{parentName:"li"},"Yes"),"\ntype shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use if you disabled them earlier."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"Only")," to say files\nfor this share can never be written to the array.")),(0,i.kt)("h5",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,i.kt)("p",null,"One typically wants files associated with running Docker containers or\nVMs on a pool to maximise performance. It is not unusual for one reason\nor another to find that one has files on the main array which you really\nwant to be on a pool. In particular this is likely to happen for the\nappdata or system shares"),(0,i.kt)("p",null,"The way to proceed to get the files belonging to a share from the main\narray onto a pool is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)"),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Prefer")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move\n",(0,i.kt)("em",{parentName:"li"},"Prefer")," type shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"No")," to say files for\nthis share can never be cached on a pool.")),(0,i.kt)("h2",{id:"disk-shares"},"Disk Shares"),(0,i.kt)("p",null,"These are shares that relate to individual array drives or pools within\nthe Unraid system and that are visible over the network. By default if\nUser Shares are enabled then Disk Shares are not enabled (see the\nIMPORTANT section below for the reason why this is the case). If you\nwant the Disk Shares to be enabled then this is done under\nSettings-",">","Global Share Settings. The Disk Shares will then appear in\nthe Unraid GUI under a Disk Shares section on the Shares tab. You will\nwant to modify the user permissions to restrict network user access if\ndesired, just like User Shares."),(0,i.kt)("p",null,"When viewed at the Linux level the physical devices or pools will appear\ndirectly under ",(0,i.kt)("em",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or\npool. (This happens regardless of whether Disk Shares are enabled) .\nExamples of such names are:"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/diskX:")," these are array drives where X corresponds to the disk\nnumber that shows in the Unraid GUI. The corresponding Disk Share at the\nnetwork level would be ",(0,i.kt)("em",{parentName:"p"},"diskX")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/pool-name:")," These are pools. A single pool can actually consist of\nmultiple drives but Unraid treats them as if they were one drive. The\ncommonest example of a pool-name is ",(0,i.kt)("em",{parentName:"p"},"'cache'")," but it can be any name\ndefined by the user. The corresponding Disk Share at the network level\nwould be ",(0,i.kt)("em",{parentName:"p"},"pool-name.")),(0,i.kt)("p",null,"The Unraid flash device that is used to boot Unraid and store all user\nsettings is also a physical device, but is not normally considered to be\na Disk Share. If you want it visible on the network then you can click\non it in the Main tab and set it to appear at the network level as the\n'",(0,i.kt)("em",{parentName:"p"},"flash"),"' share. At the Linux level it is mounted at /",(0,i.kt)("em",{parentName:"p"},"boot")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),"\nIf you have both ",(0,i.kt)("em",{parentName:"p"},"Disk Shares")," and ",(0,i.kt)("em",{parentName:"p"},"User Shares")," enabled then there\nis an important restriction that you must observe if you want to\navoid potential data loss. What you must ",(0,i.kt)("strong",{parentName:"p"},"NEVER")," do is copy\nbetween a ",(0,i.kt)("strong",{parentName:"p"},"User Share")," and a ",(0,i.kt)("strong",{parentName:"p"},"Disk Share")," in the same copy\noperation where the folder name on the Disk Share corresponds to the\nUser Share name. This is because at the base system level Linux does\nnot understand ",(0,i.kt)("em",{parentName:"p"},"User Shares")," and therefore that a file on a ",(0,i.kt)("em",{parentName:"p"},"Disk\nShare")," and a ",(0,i.kt)("em",{parentName:"p"},"User Share")," can be different views of the ",(0,i.kt)("strong",{parentName:"p"},"same"),"\nfile. If you mix the share types in the same copy command you can\nend up trying to copy the file to itself which results in the file\nbeing truncated to zero length and its content thus being lost."),(0,i.kt)("p",null,"There is no problem if the copy is between shares of the same type,\nor copying to/from a disk mounted as an Unassigned Device."),(0,i.kt)("p",null,"There is another quirk of the interaction between Linux and the Unraid\nUser Share system that users can encounter if they are working at the\nDisk Share level. The Linux command for Move is implemented by first\ntrying a rename on the file (which is fast) and only if that fails does\nit do a copy then delete operation. This can mean that under some\ncircumstances when working locally on the server (e.g. from the command\nline when you try to move files from one user share to another, Linux\nwill often simply rename the files so they have a different path on the\nsame disk, in violation of any user share settings such as included\ndisks. The workaround for this is to instead explicitly copy from source\nto destination so that new files get created following the user share\nsettings, then deleting from the source."),(0,i.kt)("h2",{id:"network-access"},"Network access"),(0,i.kt)("p",null,"You can control what protocols should be supported for accessing the\nUnraid server across the network. Click on Settings-",">","Network Services\nto see the various options available.. These options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"SMB"),": This the standard protocol used by Windows systems. It is\nwidely implemented on other systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"NFS"),": ",(0,i.kt)("strong",{parentName:"li"},"N"),"etwork ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"S"),"ystem. This is a protocol widely\nused on Unix compatible systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"AFP"),": ",(0,i.kt)("strong",{parentName:"li"},"A"),"pple ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol. This is the protocol that\nhas historically been used on Apple Mac systems. It is now a\ndeprecated option as the latest versions of MacOS now use SMB as the\ntransferred protocol for accessing files and folders over the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"FTP"),": ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"T"),"ransfer ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol.")),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the visibility of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes"),": With this setting the share will be visible across the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes (Hidden)"),": With this setting the share can be accessed across\nthe network but will not be listed when browsing the shares on the\nserver. Users can still access the share as long as they know the\nname and the user is prepared to enter in manually."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"No"),": With this option selected then it is not possible to access\nthe share across the network.")),(0,i.kt)("h2",{id:"access-permissions"},"Access Permissions"),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the access rights of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Security")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Public"),": All users have both read and write access to the\ncontents of the share"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Secure"),": All users including guests have read access, you select\nwhich of your users have write access"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Private"),": You select which of your users have access and for each\nuser whether that user has read/write or read-only access.")),(0,i.kt)("h3",{id:"windows-gotcha"},"Windows 'Gotcha'"),(0,i.kt)("p",null,"There is an issue with the way Windows handles network shares that many\nusers fall foul of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"This is the fact that Windows only allows a ",(0,i.kt)("strong",{parentName:"li"},"single")," username to\nbe used to connect to a specific server at any given time. All\nattempts to then connect to a different share on the same server\nthat are not public shares put up a Username/Password prompt and\nthis fails as though you have entered an incorrect password for this\nusername. If you have any shares on the server set to ",(0,i.kt)("strong",{parentName:"li"},"Private")," or\n",(0,i.kt)("strong",{parentName:"li"},"Secure")," access it can therefore be important that you connect to\nsuch a share first before any shares set for ",(0,i.kt)("strong",{parentName:"li"},"Public")," access which\nmay connect as a guest user and make subsequent attempts to connect\nwith a specific user fail."),(0,i.kt)("li",{parentName:"ul"},"A workaround that can help with avoiding this issue is the fact that\nif you access a server both by it's network name and via it's IP\naddress then Windows will treat it a two separate servers as far as\nauthentication is concerned.")))}c.isMDXComponent=!0},8272:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG"},3610:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG"},5154:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg"},8362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG"},1298:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG"},3865:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG"},2778:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG"}}]); \ No newline at end of file diff --git a/de/assets/js/935f2afb.133a30ef.js b/de/assets/js/935f2afb.133a30ef.js new file mode 100644 index 000000000..0ef84170e --- /dev/null +++ b/de/assets/js/935f2afb.133a30ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/de/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/de/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/de/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/de/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/de/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/de/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/de/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/de/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/de/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/de/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/de/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/de/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/de/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/de/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/de/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/de/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/de/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/de/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/de/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/de/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/de/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"Redeem License Activation Code","href":"/de/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/de/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/de/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/de/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/de/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/de/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Shares","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User shares","href":"/de/unraid-os/manual/shares/user-shares","docId":"unraid-os/manual/shares/user-shares"},{"type":"link","label":"Disk shares","href":"/de/unraid-os/manual/shares/disk-shares","docId":"unraid-os/manual/shares/disk-shares"},{"type":"link","label":"Network access","href":"/de/unraid-os/manual/shares/network-access","docId":"unraid-os/manual/shares/network-access"},{"type":"link","label":"Create a new share","href":"/de/unraid-os/manual/shares/create-a-share","docId":"unraid-os/manual/shares/create-a-share"},{"type":"link","label":"Delete a share","href":"/de/unraid-os/manual/shares/delete-a-share","docId":"unraid-os/manual/shares/delete-a-share"}],"href":"/de/unraid-os/manual/shares/"},{"type":"link","label":"Overview","href":"/de/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/de/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Docker Management","href":"/de/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/de/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/de/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/de/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Good Practices","href":"/de/unraid-os/manual/security/good-practices","docId":"unraid-os/manual/security/good-practices"},{"type":"link","label":"Securing webGUI connections (SSL)","href":"/de/unraid-os/manual/security/secure-webgui-ssl","docId":"unraid-os/manual/security/secure-webgui-ssl"},{"type":"link","label":"Data Encryption","href":"/de/unraid-os/manual/security/data-encryption","docId":"unraid-os/manual/security/data-encryption"},{"type":"link","label":"Flash Drive","href":"/de/unraid-os/manual/security/flash-drive","docId":"unraid-os/manual/security/flash-drive"},{"type":"link","label":"VPN","href":"/de/unraid-os/manual/security/vpn","docId":"unraid-os/manual/security/vpn"}],"href":"/de/unraid-os/manual/security/"},{"type":"link","label":"Multi-Language Support","href":"/de/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/de/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/de/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/de/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/de/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/de/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/de/category/getting-started"},{"type":"link","label":"Tools","href":"/de/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/de/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/de/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/de/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/de/category/zfs"}],"href":"/de/category/manual"}],"href":"/de/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/de/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/de/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/de/connect/remote-access","docId":"connect/remote-access"}],"href":"/de/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/de/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/de/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/de/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/de/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/de/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/de/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/de/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/de/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/de/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/de/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/de/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/de/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/de/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/de/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/de/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/de/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/de/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/de/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/de/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/de/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/de/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/de/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/de/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/de/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/de/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/de/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/de/category/tutorial---extras"}],"href":"/de/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"Redeem License Activation Code","description":"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security/data-encryption":{"id":"unraid-os/manual/security/data-encryption","title":"Data Encryption","description":"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.","sidebar":"unraidSidebar"},"unraid-os/manual/security/flash-drive":{"id":"unraid-os/manual/security/flash-drive","title":"Flash Drive","description":"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.","sidebar":"unraidSidebar"},"unraid-os/manual/security/good-practices":{"id":"unraid-os/manual/security/good-practices","title":"Good Practices","description":"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.","sidebar":"unraidSidebar"},"unraid-os/manual/security/secure-webgui-ssl":{"id":"unraid-os/manual/security/secure-webgui-ssl","title":"Securing webGUI connections (SSL)","description":"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let\'s Encrypt.","sidebar":"unraidSidebar"},"unraid-os/manual/security/security":{"id":"unraid-os/manual/security/security","title":"Security","description":"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.","sidebar":"unraidSidebar"},"unraid-os/manual/security/vpn":{"id":"unraid-os/manual/security/vpn","title":"VPN","description":"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/create-a-share":{"id":"unraid-os/manual/shares/create-a-share","title":"Create a new share","description":"When you create a new share, plan ahead.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/delete-a-share":{"id":"unraid-os/manual/shares/delete-a-share","title":"Delete a share","description":"To delete a share on your Unraid server the share must contain no data.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/disk-shares":{"id":"unraid-os/manual/shares/disk-shares","title":"Disk shares","description":"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/network-access":{"id":"unraid-os/manual/shares/network-access","title":"Network access","description":"Communication protocols","sidebar":"unraidSidebar"},"unraid-os/manual/shares/shares":{"id":"unraid-os/manual/shares/shares","title":"Shares","description":"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/user-shares":{"id":"unraid-os/manual/shares/user-shares","title":"User shares","description":"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/de/assets/js/935f2afb.464392bf.js b/de/assets/js/935f2afb.464392bf.js deleted file mode 100644 index f38948384..000000000 --- a/de/assets/js/935f2afb.464392bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/de/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/de/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/de/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/de/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/de/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/de/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/de/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/de/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/de/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/de/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/de/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/de/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/de/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/de/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/de/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/de/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/de/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/de/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/de/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/de/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/de/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"Redeem License Activation Code","href":"/de/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/de/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/de/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/de/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/de/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/de/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/de/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/de/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Shares","href":"/de/unraid-os/manual/shares","docId":"unraid-os/manual/shares"},{"type":"link","label":"Docker Management","href":"/de/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/de/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/de/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/de/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"link","label":"Multi-Language Support","href":"/de/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/de/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/de/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/de/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/de/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/de/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/de/category/getting-started"},{"type":"link","label":"Security","href":"/de/unraid-os/manual/security","docId":"unraid-os/manual/security"},{"type":"link","label":"Tools","href":"/de/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/de/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/de/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/de/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/de/category/zfs"}],"href":"/de/category/manual"}],"href":"/de/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/de/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/de/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/de/connect/remote-access","docId":"connect/remote-access"}],"href":"/de/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/de/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/de/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/de/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/de/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/de/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/de/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/de/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/de/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/de/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/de/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/de/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/de/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/de/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/de/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/de/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/de/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/de/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/de/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/de/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/de/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/de/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/de/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/de/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/de/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/de/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/de/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/de/category/tutorial---extras"}],"href":"/de/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"Redeem License Activation Code","description":"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security":{"id":"unraid-os/manual/security","title":"Security","description":"This section covers various security-related aspects of Unraid","sidebar":"unraidSidebar"},"unraid-os/manual/shares":{"id":"unraid-os/manual/shares","title":"Shares","description":"Once you have assigned some devices to Unraid and started the array, you","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/de/assets/js/9d23aec8.59a08b27.js b/de/assets/js/9d23aec8.59a08b27.js new file mode 100644 index 000000000..68d19219c --- /dev/null +++ b/de/assets/js/9d23aec8.59a08b27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1754],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>u});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),h=p(a),m=n,u=h["".concat(s,".").concat(m)]||h[m]||d[m]||o;return a?r.createElement(u,l(l({ref:t},c),{},{components:a})):r.createElement(u,l({ref:t},c))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[h]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},6419:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:6},l="Delete a share",i={unversionedId:"unraid-os/manual/shares/delete-a-share",id:"unraid-os/manual/shares/delete-a-share",title:"Delete a share",description:"To delete a share on your Unraid server the share must contain no data.",source:"@site/docs/unraid-os/manual/shares/delete-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/delete-a-share",permalink:"/de/unraid-os/manual/shares/delete-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/delete-a-share.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"unraidSidebar",previous:{title:"Create a new share",permalink:"/de/unraid-os/manual/shares/create-a-share"},next:{title:"Overview",permalink:"/de/unraid-os/manual/what-is-unraid"}},s={},p=[{value:"Delete an empty share",id:"delete-an-empty-share",level:2},{value:"Delete a share that contains data",id:"delete-a-share-that-contains-data",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"delete-a-share"},"Delete a share"),(0,n.kt)("p",null,"To delete a share on your Unraid server the share must contain no data."),(0,n.kt)("h2",{id:"delete-an-empty-share"},"Delete an empty share"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted. Select ",(0,n.kt)("strong",{parentName:"li"},"Done"),".")),(0,n.kt)("h2",{id:"delete-a-share-that-contains-data"},"Delete a share that contains data"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Apps"),"."),(0,n.kt)("li",{parentName:"ol"},"Install a file management plugin from Community, such as Dynamix File Manager."),(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive."),(0,n.kt)("li",{parentName:"ol"},"If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion."),(0,n.kt)("li",{parentName:"ol"},"Delete the data or move it to another share on the server."),(0,n.kt)("li",{parentName:"ol"},"Return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete. This will open the share settings. If no data is left in the share, a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox is available."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted."),(0,n.kt)("li",{parentName:"ol"},"Select ",(0,n.kt)("strong",{parentName:"li"},"Done")," to return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"))),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/a78d85c7.6182cd19.js b/de/assets/js/a78d85c7.6182cd19.js deleted file mode 100644 index 48eeec493..000000000 --- a/de/assets/js/a78d85c7.6182cd19.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=i,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var u=2;u<r;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},5536:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),i=(n(7294),n(4137));const r={},o="Security",s={unversionedId:"unraid-os/manual/security",id:"unraid-os/manual/security",title:"Security",description:"This section covers various security-related aspects of Unraid",source:"@site/docs/unraid-os/manual/security.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/security",permalink:"/de/unraid-os/manual/security",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/de/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Tools",permalink:"/de/unraid-os/manual/tools"}},l={},u=[{value:"Good Practices",id:"good-practices",level:2},{value:"Set a strong root password",id:"set-a-strong-root-password",level:3},{value:"Review port mappings on your router",id:"review-port-mappings-on-your-router",level:3},{value:"Never ever ever put your server in the DMZ",id:"never-ever-ever-put-your-server-in-the-dmz",level:3},{value:"Consider setting shares to private with users and passwords",id:"consider-setting-shares-to-private-with-users-and-passwords",level:3},{value:"Don't expose the Flash share, and if you do, make it private",id:"dont-expose-the-flash-share-and-if-you-do-make-it-private",level:3},{value:"Keep your server up-to-date",id:"keep-your-server-up-to-date",level:3},{value:"Use a secure method for remote administration",id:"use-a-secure-method-for-remote-administration",level:3},{value:"Securing webGui connections (SSL)",id:"securing-webgui-connections-ssl",level:2},{value:"A few details before we begin",id:"a-few-details-before-we-begin",level:3},{value:"How would you like to access the Unraid webGui while on your LAN?",id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan",level:3},{value:"Http only",id:"http-only",level:4},{value:"Https with Self-signed certificate",id:"https-with-self-signed-certificate",level:4},{value:"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable",level:4},{value:"Https with Myunraid.net certificate - with no fallback URL",id:"https-with-myunraidnet-certificate---with-no-fallback-url",level:4},{value:"Redirects",id:"redirects",level:3},{value:"Unraid Connect Remote Access",id:"unraid-connect-remote-access",level:3},{value:"Custom Certificates",id:"custom-certificates",level:3},{value:"Https with Custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:4},{value:"Data Encryption",id:"data-encryption",level:2},{value:"Flash Drive",id:"flash-drive",level:2},{value:"Backups",id:"backups",level:3},{value:"Network Access",id:"network-access",level:3},{value:"Permissions",id:"permissions",level:3},{value:"VPN",id:"vpn",level:2},{value:"Router",id:"router",level:3},{value:"OpenVPN",id:"openvpn",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Overview",id:"overview",level:4},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:4},{value:"Prerequisites",id:"prerequisites",level:5},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:5},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:5},{value:"Caution",id:"caution",level:6},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:5},{value:"About DNS",id:"about-dns",level:5},{value:"Complex Networks",id:"complex-networks",level:5},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:5},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:4},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:5},{value:"Configuring VPN tunneled access",id:"configuring-vpn-tunneled-access",level:5},{value:"Testing the tunnel",id:"testing-the-tunnel",level:5},{value:"Support",id:"support",level:4}],c={toc:u},d="wrapper";function h(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"security"},"Security"),(0,i.kt)("p",null,"This section covers various security-related aspects of Unraid"),(0,i.kt)("h2",{id:"good-practices"},"Good Practices"),(0,i.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that a\nuser would hate to lose. Since most users will have their home network\nconnected to the internet then precautions should be taken to avoid an\nUnraid server being compromised by malicious actors trying to access\nthem remotely."),(0,i.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls\nthat some user encounter regarding the security of their Unraid servers."),(0,i.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are\nsafe."),(0,i.kt)("p",null,"There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum\nthread"),"\nthat discusses this topic."),(0,i.kt)("h3",{id:"set-a-strong-root-password"},"Set a strong root password"),(0,i.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by\ndefault. This is to ensure you can quickly and easily access the\nmanagement console immediately after initial installation. However, this\ndoesn't mean you shouldn't set one. Doing this is simple. Just\nnavigate to the Users tab and click on root. Now set a password. From\nthen on, you will be required to authenticate anytime you attempt to\nlogin to the webGui."),(0,i.kt)("p",null,"In addition, there is a plugin available in Community Apps called\n",(0,i.kt)("em",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how\nstrong of a password you're creating based on complexity rules (how\nmany capital vs. lowercase letters, numbers, symbols, and overall\npassword length are used to judge this). Consider installing this for\nextra guidance on password strength. Once installed it is available in\nthe settings for any user to give guidance on the strength of any\npassword you type in."),(0,i.kt)("p",null,"You could also use ",(0,i.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this web\npage")," to get a very quick\nassessment of the strength of any specific password."),(0,i.kt)("h3",{id:"review-port-mappings-on-your-router"},"Review port mappings on your router"),(0,i.kt)("p",null,"Forwarding ports to your server is required for specific services that\nyou want to be Internet-accessible such as Plex, FTP servers, game\nservers, VoIP servers, etc. But forwarding the wrong ports can expose\nyour server to significant security risk. Here are just a few ports you\nshould be extra careful with when forwarding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 80"),": Used to access the webGui without SSL (unless you've\nrebound access to another port on the Management Access settings\npage). Forwarding this port by default will allow you to access the\nwebGui remotely, but without SSL securing the connection, devices in\nbetween your browser and the server could \"sniff\" the packets to\nsee what you're doing. If you want to make the webGui remotely\naccessible, install the ",(0,i.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," plugin, which can provide a\nsecure remote access solution that utilizes SSL to ensure your\nconnection is fully encrypted.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 443"),": Used to access the webGui with SSL. This is only\nbetter than port 80 if you have a root password set. If no root\npassword is set and you forward this port, unauthorized users can\nconnect to your webGui and have full access to your server. In\naddition, if you forward this port without using the ",(0,i.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect"),"\nplugin, attempts to connect to the webGui through a browser will\npresent a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,i.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect"),"\nplugin to enable simple, safe, and secure remote access to your\nUnraid systems.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 445"),": Used for SMB (shares). If you forward this port to\nyour server, any public shares can be connected to by any user over\nthe internet. Generally speaking, it is never advisable to expose\nSMB shares directly over the internet. If you need the ability to\naccess your shares remotely, we suggest utilizing a WireGuard VPN to\ncreate a secure tunnel between your device and the server. In\naddition, if the flash device itself is exported using SMB and this\nport is forwarded, its contents can easily be deleted and your paid\nkey could easily be stolen. Just don't do this.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 111/2049:")," Used for NFS (shares). While NFS is disabled by\ndefault, if you are making use of this protocol, just make sure you\naren't forwarding these ports through your router. Similar to SMB,\njust utilize WireGuard to create a secure tunnel from any remote\ndevices that need to connect to the server over NFS.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all,\nbut rather, suggest users leverage a WireGuard VPN connection for\nthe purposes of connecting using either of these protocols.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Ports in the 57xx range:")," These ports are generally used by VMs\nfor VNC access. While you can forward these ports to enable VNC\naccess remotely for your VMs, the better and easier way to do this\nis through installing the ",(0,i.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections\nare secure via SSL and does not require individual ports to be\nforwarded for each VM."))),(0,i.kt)("p",null,"Generally speaking, you really shouldn't need to forward many ports to\nyour server. If you see a forwarding rule you don't understand,\nconsider removing it, see if anyone complains, and if so, you can always\nput it back."),(0,i.kt)("h3",{id:"never-ever-ever-put-your-server-in-the-dmz"},"Never ever ever put your server in the DMZ"),(0,i.kt)("p",null,'No matter how locked down you think you have your server, it is never\nadvisable to place it in the DMZ on your network. By doing so, you are\nessentially forwarding every port on your public IP address to your\nserver directly, allowing all locally accessible services to be remotely\naccessible as well. Regardless of how "locked down" you think you\nactually have the server, placing it in the DMZ exposes it to\nunnecessary risks. Never ever do this.'),(0,i.kt)("h3",{id:"consider-setting-shares-to-private-with-users-and-passwords"},"Consider setting shares to private with users and passwords"),(0,i.kt)("p",null,"The convenience of password-less share access is pretty great. We know\nthat and its why we don't require you to set passwords for your shares.\nHowever, there is a security risk posed to your data when you do this,\neven if you don't forward any ports to your server and have a strong\nroot password. If another device on your network such as a PC, Mac,\nphone, tablet, IoT device, etc. were to have its security breached, it\ncould be used to make a local connection to your server's shares. By\ndefault, shares are set to be publicly readable/writeable, which means\nthose rogue devices can be used to steal, delete, or encrypt the data\nwithin them. In addition, malicious users could also use this method to\nput data on your server that you don't want. It is for these reasons\nthat if you are going to create public shares, we highly recommend\nsetting access to read-only. Only authorized users with a strong\npassword should be able to write data to your shares."),(0,i.kt)("h3",{id:"dont-expose-the-flash-share-and-if-you-do-make-it-private"},"Don't expose the Flash share, and if you do, make it private"),(0,i.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if\nyou need to make advanced changes to your system such as modifying the\ngo file in the config directory. However, the flash device itself\ncontains the files needed to boot Unraid as well as your configuration\ndata (disk assignments, shares, etc). Exposing this share publicly can\nbe extremely dangerous, so we advise against doing so unless you\nabsolutely have to, and when you do, it is advised to do so privately,\nrequiring a username and password to see and modify the contents."),(0,i.kt)("h3",{id:"keep-your-server-up-to-date"},"Keep your server up-to-date"),(0,i.kt)("p",null,"Regardless of what other measures you take, keeping your server current\nwith the latest release(s) is vital to ensuring security. There are\nconstant security notices (CVEs) published for the various components\nused in Unraid OS. We here at Lime Technology do our best to ensure all\nvulnerabilities are addressed in a timely manner with software updates.\nHowever, these updates are useless to you if you don't apply them in a\ntimely manner as well. Keeping your OS up-to-date is easy. Just navigate\nto Tools -",">"," Update OS to check for and apply any updates. You can\nconfigure notifications to prompt you when a new update is available\nfrom the Settings -",">"," Notifications page."),(0,i.kt)("h3",{id:"use-a-secure-method-for-remote-administration"},"Use a secure method for remote administration"),(0,i.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be\nadministered remotely but this should never be done by simply exposing\nexposing the Unraid webGui to the internet."),(0,i.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology.\nUnraid includes as standard the WireGuard VPN and an OpenVPN plugin and\nDocker container is also available. In addition many routers have built\nin VPN support which can be used."),(0,i.kt)("p",null,"An alternative for making the webGui remotely accessible is to install\nthe ",(0,i.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution\nthat utilizes SSL to ensure your connection is fully encrypted."),(0,i.kt)("h2",{id:"securing-webgui-connections-ssl"},"Securing webGui connections (SSL)"),(0,i.kt)("p",null,"Using wildcard SSL Certificates provisioned by ",(0,i.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's\nEncrypt"),", Unraid OS 6.10 improves the security\nof the SSL implementation for both local access and ",(0,i.kt)("a",{parentName:"p",href:"/de/connect/remote-access"},"Unraid Connect Remote Access"),"."),(0,i.kt)("h3",{id:"a-few-details-before-we-begin"},"A few details before we begin"),(0,i.kt)("p",null,"Some terms:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"servername")," can be changed on the Settings -",">",' Identification\npage. It defaults to "tower".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"localTLD")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "local".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "No".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTP port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "80". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTP port]")," to any of the http URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local:8080"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "443". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTPS port]")," to any of the https URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local:3443"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"certificate")," refers to either a self-signed SSL Certificate, or a\nSSL certificate issued by a Certificate Authority (Let's Encrypt)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"lan-ip")," is your server's LAN IP address with dots changed to\ndashes (example 192-168-100-1)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"wan-ip")," is your internet-facing IP address with dots changed to\ndashes (example 136-26-144-139)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"hash")," is a random 40 character hex string (160 bits) uniquely\nassigned to your server when a certificate is first issued")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Caveats of using a self-signed certificate"),": Note that browsers will\nshow a certificate error because they cannot verify the authenticity of\nself-signed certificates. All traffic will be encrypted once users\nacknowledge the browser warning."),(0,i.kt)("h3",{id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan"},"How would you like to access the Unraid webGui while on your LAN?"),(0,i.kt)("h4",{id:"http-only"},"Http only"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to No"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Traffic between the browser and the server will not be encrypted")),(0,i.kt)("h4",{id:"https-with-self-signed-certificate"},"Https with Self-signed certificate"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},'Unraid will manage the certificate for you. See "Caveats of using a\nself-signed certificate" above.')),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable"},"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate)'),(0,i.kt)("li",{parentName:"ul"},"Leave ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either No or Yes"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to No:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' set to Yes. Note that these\nURLs use a self-signed certificate (See "Caveats of using a\nself-signed certificate" above)',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your alternate URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This personal link\nis shown in the Certificate subject field on the Management Access\npage. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted if using https."),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"If at any point DNS resolution becomes unavailable, the alternate\nURL may not resolve. In this case use the primary URL as a fallback.")),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-no-fallback-url"},"Https with Myunraid.net certificate - with no fallback URL"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate if you run the ',(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned\nbelow)"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},'If DNS Rebinding is not an issue, the "Strict" option for ',(0,i.kt)("strong",{parentName:"li"},"Use\nSSL/TLS")," will be available."),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' to Strict (this was previously called "Auto",\nbut "Strict" is more descriptive)'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),") This\npersonal link is shown in the Certificate subject field on the\nManagement Access page. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"Note: If at any point DNS resolution becomes unavailable (e.g., your\nInternet goes down), use telnet, SSH or local keyboard/monitor to\nlogin. Then:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")),(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]"),'\nusing a self-signed certificate (See\n"Caveats of using a self-signed certificate" above)'),(0,i.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),"\nback to Strict")))),(0,i.kt)("h3",{id:"redirects"},"Redirects"),(0,i.kt)("p",null,"When accessing ",(0,i.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or\n",(0,i.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]")," , the behavior will change\ndepending on the value of the ",(0,i.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Strict, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior\nmakes it more difficult to access your server when DNS is\nunavailable (i.e. your Internet goes down). If that happens see the\nnote under ",(0,i.kt)("inlineCode",{parentName:"li"},"HTTPS with Myunraid.net certificate - with no fallback\nURL")," above."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Yes, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]"),"\nas that will likely work even if your Internet goes down."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to No, then the http url will load\ndirectly.")),(0,i.kt)("p",null,"Note: for the redirects to work, you must start from http urls not https\nurls."),(0,i.kt)("h3",{id:"unraid-connect-remote-access"},"Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect")," plugin"),(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Provision")," if you haven't already"),(0,i.kt)("li",{parentName:"ul"},"Regardless of the value of ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),", you will have the option\nto access the server using\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),")."),(0,i.kt)("li",{parentName:"ul"},"Navigate to Settings -",">"," Management Access -",">"," Unraid Connect page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Allow Remote Access")," to yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you want to use. For added security we\nrecommend you choose a random port over 1000 rather than using the\ndefault of 443. i.e. something like 13856, 48653, etc"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Apply")),(0,i.kt)("li",{parentName:"ul"},"Setup your router to port forward the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe LAN IP address and ",(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a\nnote on the screen telling you the exact port and IP to use."),(0,i.kt)("li",{parentName:"ul"},"Press the ",(0,i.kt)("strong",{parentName:"li"},"Check"),' button. If the port is forwarded correctly you\nwill see a message saying "Your Unraid Server is reachable from the\nInternet"'),(0,i.kt)("li",{parentName:"ul"},"To access your server using Remote Access, login to the Unraid Connect\nDashboard and click the Remote Access link. The URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[wan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856"),").")),(0,i.kt)("h3",{id:"custom-certificates"},"Custom Certificates"),(0,i.kt)("h4",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"Https with Custom certificate - with option to have Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of\nthe certificate.'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS\nfor this URL."),(0,i.kt)("li",{parentName:"ul"},"You are responsible for managing the certificate. Upload it to\n",(0,i.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem")),(0,i.kt)("li",{parentName:"ul"},"The certificate must be valid for ",(0,i.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be\n",(0,i.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be\nspecified in either the "Subject" of the certificate or one of the\n"Subject Alternative Name" fields (prior to 6.10.3, only the\n"Subject" field was used). If you find that Unraid deletes your\ncertificate, it is because the server\'s url is not specified in the\ncertificate.'),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"(optional) If desired, see the Unraid Connect Remote Access section\nabove")),(0,i.kt)("h2",{id:"data-encryption"},"Data Encryption"),(0,i.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the\narray. It does this using the Linux LUKS (Linux Unified Key System)\nencryption modules."),(0,i.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a\nstandard on-disk-format, it does not only facilitate compatibility among\ndistributions but also provides secure management of multiple user\npasswords. In contrast to an existing solution, LUKS stores all\nnecessary setup information in the partition header, enabling the user\nto transport or migrate their data seamlessly."),(0,i.kt)("p",null,"The home page for LUKS can be found\n",(0,i.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,i.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can\nbe read on any standard Linux system even when removed from Unraid as\nlong as one has the key phrase/file needed to unlock the drive."),(0,i.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting\nall drives being used by Unraid. The key for the encryption can be\neither a pass phrase, or provided via a key file. When using a key file\nit is a good idea to use something like an image as there is no chance\nof that ever being guessed. You must make sure that you do not lose the\nencryption key as without it you will not be able to access the data on\nencrypted drives."),(0,i.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the\ndrive)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Click on the drive on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"change the file system to the encrypted type that you want to use"),(0,i.kt)("li",{parentName:"ul"},"click Apply to commit the change"),(0,i.kt)("li",{parentName:"ul"},"click Done to return to the Main tab"),(0,i.kt)("li",{parentName:"ul"},"the drive will now show as unmountable and the option to format\nunmountable drives will be present. Check that the drive is the one\nyou are expecting to be encrypted and if it is correct go ahead and\nformat it.")),(0,i.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the\nencryption key when starting the array. Once this has been done and the\narray successfully started then you can access the data without being\naware of the fact that any drive is encrypted."),(0,i.kt)("p",null,"CAUTION: Encrypting data is good from a security perspective, but users\nshould be aware of the fact that it can complicate recovering from\ncertain types of hardware failure without data loss. On that basis only\nuse encryption if you feel you have a real need for it, and ideally make\nsure you have a good system for backing up any important data."),(0,i.kt)("h2",{id:"flash-drive"},"Flash Drive"),(0,i.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains\nall the configuration information relating to an Unraid server. You\ntherefore want to consider the security of the information it contains\nand how it is accessed."),(0,i.kt)("h3",{id:"backups"},"Backups"),(0,i.kt)("p",null,"If a flash drive ever fails for any reason then as long as you have a\nbackup getting the Unraid server back into normal operation is an easy\nprocess. It is recommended that you make a backup whenever you make a\nsignificant configuration change."),(0,i.kt)("p",null,"You easily achieve this from the Unraid GUI by:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Click on the flash drive on the Main tab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"In the ",(0,i.kt)("em",{parentName:"li"},"Flash Device Settings")," section click on the ",(0,i.kt)("strong",{parentName:"li"},"Flash Backup"),"\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The system will now start creating a zip file that is a backup of\nthe contents of the flash drive"),(0,i.kt)("li",{parentName:"ol"},"When the zip file has been created your browser should prompt you to\nprovide the location where you want the backup saved to. It is\nrecommended that this is a location off the Unraid server so that it\nis available even when the Unraid server is not operational.")),(0,i.kt)("p",null,"If you later need to recreate your flash drive for any reason this\nbackup can be used as input to the Limetech USB Creator tool."),(0,i.kt)("h3",{id:"network-access"},"Network Access"),(0,i.kt)("p",null,"The flash drive can have similar settings applied to it to control\naccess over the network as is the case for other shares on an Unraid\nsystem. The difference is that you set this up by clicking on the\n",(0,i.kt)("strong",{parentName:"p"},"flash")," device on the ",(0,i.kt)("em",{parentName:"p"},"Main")," tab in the GUI rather than doing it via\nthe Shares tab."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network visibility"),": You can specify whether the flash drive\nshould even be accessible via the network, and if it is accessible\nwhether it should be hidden or visible to everyone."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any\naccess permissions that you want applied.")),(0,i.kt)("h3",{id:"permissions"},"Permissions"),(0,i.kt)("p",null,"As part of improving the security of Unraid systems, starting with\nUnraid 6.8 files on the flash drive can no longer be given execute\npermission."),(0,i.kt)("p",null,"The implication of this is that if a user has their own custom scripts\n(or programs) stored on the flash drive they can no longer be executed\nfrom that location. There are a number of ways to handle this:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Copy the files to a location from which they can be executed",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The location ",(0,i.kt)("em",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the\nfiles on the default search path."),(0,i.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding\nappropriate commands to the config/go file on the flash drive."),(0,i.kt)("li",{parentName:"ul"},"Remember to give the files execute permission after copying\nthem."))),(0,i.kt)("li",{parentName:"ul"},"For scripts precede the script name with the command that runs the\nscript (e.g. ",(0,i.kt)("em",{parentName:"li"},"bash path-to-script"),")")),(0,i.kt)("h2",{id:"vpn"},"VPN"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Unraid servers are not hardened against attack via the network so\nshould ",(0,i.kt)("em",{parentName:"strong"},"NEVER")," be exposed directly to the internet.")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"One exception is the WireGuard VPN service introduced in Unraid 6.8\nexplicitly to address secure access to/from the internet."),(0,i.kt)("li",{parentName:"ul"},"If running Docker containers are exposed to the internet then the\nsecurity of these needs to be assessed on a case-by-case basis.")),(0,i.kt)("p",null,"You may need to contact the developer of the container to determine\nhow safe it is to expose it to the internet."),(0,i.kt)("p",null,"There is a level of protection as a docker container runs in a\n'sandboxed' environment so the level of access to the content of\nyour disks is constrained to what you allow in the path mapping\nsettings for the container."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If running VMs that are exposed to the internet then you need to\napply the same security to these that you would apply to a physical\nPC attached to the local LAN.")),(0,i.kt)("p",null,"If you want to make secure connections between an Unraid server and the\nInternet then you want to use a technology known as VPN (Virtual Private\nNetwork). VPN works on a client/server model where you have a server\nthat accepts incoming connections and a client that initiates such\nconnections."),(0,i.kt)("p",null,"In simplistic terms, the idea behind VPN connections is to set up an\nencrypted 'tunnel' between the client and server ends so that no\nmalicious players can intercept or eavesdrop on your interactions. Such\ntunnels are set up so that only authorized users are able to make such\nconnections. More information on VPN as a technology can be found in\n",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki\narticle")),(0,i.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the\ncommonest use case and many users want to be able to safely access\ntheir Unraid servers (and potentially their whole home LAN) when\naway from home. When running in this mode the server end of the VPN\nlink will either be running on the user's router (if it supports\nsuch a feature) or will be hosted on the Unraid server."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you\nwant applications running on Unraid to access the internet. This\ncould be to access generic internet content or to access another\nserver located remotely to the Unraid server. If in is generic\naccess to the internet then it is highly likely that the server end\nof such connection will be via a commercial VPN provider. When\nrunning in this mode Unraid will be acting as the client end of any\nVPN link.")),(0,i.kt)("p",null,"There are a wide variety of VPN solutions available both free and\ncommercial."),(0,i.kt)("h3",{id:"router"},"Router"),(0,i.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically\nbased on OpenVPN)."),(0,i.kt)("p",null,"Using your router to provide the VPN support has the great advantage of\nnot needing any other component on your home LAN to be operational for\nthe VPN to function. Once setup it should allow you to access all\ndevices on your home LAN in a similar manner to when you are directly\nconnected to the LAN."),(0,i.kt)("h3",{id:"openvpn"},"OpenVPN"),(0,i.kt)("p",null,"This has been the way that has historically been advocated to allow\nconnections to be made between an Unraid server and the internet."),(0,i.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN\nthen you can search Community Applications for a plugin or docker\ncontainer that meets your requirements. You may also find the\n",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube\nvideo")," of use in setting it\nup."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is expected that with the introduction of WireGuard support in\nUnraid 6.8 that WireGuard will become the favored way of setting up a\nVPN connection to an Unraid server"),"."),(0,i.kt)("h3",{id:"wireguard"},"WireGuard"),(0,i.kt)("h4",{id:"overview"},"Overview"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2602).Z,width:"128",height:"128"})),(0,i.kt)("p",null,"Unraid 6.8 introduces built-in support for WireGuard VPN connections. The\nintention is to make it as easy as possible for Unraid users to set up\nVPN connections to/from their Unraid servers."),(0,i.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to\nadd 3rd party software to achieve a VPN connection."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid\nboot process."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,i.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be\nbetter than OpenVPN.")),(0,i.kt)("p",null,"More information about WireGuard can be found on the ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard web\nsite"),". It should be noted that WireGuard is\nstill labeled as ''experimental'' by its developers but many users are\nalready finding that it appears to be robust enough for real-world use.\nA number of the commercial VPN services are working on adding WireGuard\nsupport so they must deem it to be mature enough for this to make sense\nto them."),(0,i.kt)("p",null,"The initial Unraid implementation includes adding the WireGuard kernel\nmodules to the standard Unraid distribution and starting the WireGuard\nservices as part of the Unraid boot process, but does not yet have the\nmanagement of WireGuard built-in. At the moment the GUI part is offered\nas a separate plugin, but it is intended that it will be integrated into\nUnraid in the future. This approach allows for quick updates and\nenhancements without dependency on Unraid version releases. The Unraid\nWireGuard GUI plugin can be installed via Community Applications, and\nwhen it is installed you will find that an entry called ",(0,i.kt)("strong",{parentName:"p"},"VPN Manager"),"\nis added to the GUI under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Network Services")),(0,i.kt)("p",null,"Note that the Unraid WireGuard plugin is still evolving so in the event\nof a discrepancy between what is described here and the following forum\nthreads then it is likely that the thread is correct and this wiki needs\nupdating to bring it inline. These threads are also the appropriate\nplace to ask questions regarding Unraid's WireGuard implementation."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the\nconnection types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to server"),": Use your phone or computer to remotely\naccess your Unraid server, including:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid administration via the webgui"),(0,i.kt)("li",{parentName:"ul"},"Access dockers, VMs, and network shares as though you were\nphysically connected to the network"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to LAN"),': Builds on "Remote access to server",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server to server access"),": Allows two Unraid servers to connect to\neach other.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN to LAN access"),': Builds on "Server to server access",\nallowing two entire networks to communicate. May require additional\nsettings, TBD.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server hub & spoke access"),': Builds on "Remote access to\nserver", except that all of the VPN clients can connect to each\nother as well. Note that all traffic passes through the server.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VPN tunneled access"),": Route traffic for specific Dockers and VMs\nthrough a commercial WireGuard VPN provider (see this guide)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote tunneled access"),": Securely access the Internet from\nuntrusted networks by routing all of your traffic through the VPN\nand out Unraid's Internet connection"))),(0,i.kt)("p",null,"The following diagram attempts to show these different connection types\nin a graphical format"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1998).Z,width:"1000",height:"655"})),(0,i.kt)("h4",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,i.kt)("p",null,"This section will walk through how to setup WireGuard so that your\ntrusted devices can VPN into your home network to access Unraid and the\nother systems on your network."),(0,i.kt)("h5",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You must be running Unraid 6.8 with the Dynamix WireGuard plugin\ninstalled via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab (Community Applications).")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Be aware that WireGuard is technically classified as experimental.\nIt has not gone through a full security audit yet and has not\nreached 1.0 status. But it is the first open-source VPN solution\nthat is extremely simple to install, fast, and designed from the\nground up to be secure.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'Understand that giving someone VPN access to your LAN is just like\ngiving them physical access to your LAN, except they have it 24x7\nwhen you aren\'t around to supervise. Only give access to people and\ndevices that you trust, and make certain that the configuration\ndetails (particularly the private keys) are not passed around\ninsecurely. Regardless of the "connection type" you choose, assume\nthat anyone who gets access to this configuration information will\nbe able to get full access to your network.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'This guide works great for simple networks. But if you have Dockers\nwith custom IPs or VMs with strict networking requirements, please\nsee the "Complex Networks" section below.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unraid will automatically configure your WireGuard clients to\nconnect to Unraid using your current public IP address, which will\nwork until that IP address changes. To future-proof the setup, you\ncan use Dynamic DNS instead. There are many ways to do this,\nprobably the easiest is described in this ",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from\nSpaceInvaderOne"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If your router has UPnP enabled, Unraid will be able to\nautomatically forward the port for you. If not, you will need to\nknow how to configure your router to forward a port.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You will need to install WireGuard on a client system. It is\navailable for many operating systems as mentioned at ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/install/"},"WireGuard\nclients"),". Android or iOS make\ngood first client systems because you can get all the details via QR\ncode."))),(0,i.kt)("h5",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"First, go to Settings -",">"," Network Settings -",">",' Interface eth0. If\n"Enable bridging" is "Yes", then WireGuard will work as\ndescribed below. If bridging is disabled, then none of the "Peer\ntype of connections" that involve the local LAN will work properly.\nAs a general rule, bridging should be enabled in Unraid.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7079).Z,width:"739",height:"55"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid,\ngo to Settings -",">",' Management Access and confirm "Use UPnP" is set\nto Yes'),(0,i.kt)("li",{parentName:"ul"},"On Unraid go to Settings -",">"," VPN Manager")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5372).Z,width:"969",height:"314"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give the VPN Tunnel a name, such as "MyHome VPN"'),(0,i.kt)("li",{parentName:"ul"},'Press "Generate Keypair". This will generate a set of public and\nprivate keys for Unraid. Take care not to inadvertently share the\nprivate key with anyone (such as in a screenshot like this)'),(0,i.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current\npublic IP address. If you chose to setup DDNS earlier, change the IP\naddress to the DDNS address."),(0,i.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to\nchange this unless you already have WireGuard running elsewhere on\nyour network."),(0,i.kt)("li",{parentName:"ul"},"Hit Apply"),(0,i.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will\nautomatically setup port forwarding for you:")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7098).Z,width:"1000",height:"61"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port\nforwarding',".",'.." you will need to login to your router and setup the\nport forward as directed by the note:')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(4546).Z,width:"1000",height:"65"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports\nshould be set to the value Unraid provides. If your router\ninterface asks you to put in a range, use the same port for both\nthe starting and ending values. Be sure to specify that it is a\nUDP port and not a TCP port."),(0,i.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of\nyour Unraid system shown in the note."),(0,i.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router,\ni.e. "how to port forward Asus RT-AC68U"'))),(0,i.kt)("li",{parentName:"ul"},'Note that after hitting Apply, the public and private keys are\nremoved from view. If you ever need to access them, click the\n"key" icon on the right-hand side.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(6423).Z,width:"128",height:"128"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the\n"down chevron" on the right-hand side. They are beyond the scope\nof this guide, but you can turn on help to see what they do.'),(0,i.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to\nActive to start WireGuard. You can optionally set the tunnel to\nAutostart when Unraid boots.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(711).Z,width:"562",height:"44"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There have been cases where this step has been omitted and users\nend up wondering why the WireGuard VPN link is not working!")),(0,i.kt)("h5",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click "Add Peer"')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(8169).Z,width:"866",height:"284"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give it a name, such as "MyAndroid"'),(0,i.kt)("li",{parentName:"ul"},'For the initial connection type, choose "Remote access to LAN".\nThis will give your device access to Unraid and other items on your\nnetwork.'),(0,i.kt)("li",{parentName:"ul"},'Click "Generate Keypair" to generate public and private keys for\nthe client. The private key will be given to the client/peer, but\ntake care not to share it with anyone else (such as in a screenshot\nlike this)'),(0,i.kt)("li",{parentName:"ul"},'For an additional layer of security, click "Generate Key" to\ngenerate a preshared key. Again, this should only be shared with\nthis client/peer.'),(0,i.kt)("li",{parentName:"ul"},"Click Apply."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Note:")," Technically, the peer should generate these keys and not\ngive the private key to Unraid. You are welcome to do that, but it\nis less convenient as the config files Unraid generates will not be\ncomplete and you will have to finish configuring the client\nmanually.")),(0,i.kt)("h6",{id:"caution"},"Caution"),(0,i.kt)("p",null,'It can be a little risky to add a new client ("peer") to WireGuard if\nyou are already connected remotely using WireGuard as adding a new peer\n',(0,i.kt)("em",{parentName:"p"},"sometimes")," toggles the WireGuard tunnel off which will render you\nunable to reconnect. This is because a configuration change is made\neffective by inactivating the tunnel with the current (old)\nconfiguration and next activating it with the updated (new)\nconfiguration. If there is any sort of configuration conflict at this\npoint the tunnel stays inactive, and you can no longer connect to the\nUnraid server"),(0,i.kt)("h5",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click the "eye" icon to view the peer configuration. If the button\nis not clickable, you need to apply or reset your unsaved changes\nfirst.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(3939).Z,width:"912",height:"108"})),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1967).Z,width:"580",height:"694"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR\ncode" option in the mobile app and take a picture of the QR code.\nGive it a name and make the connection. The VPN tunnel starts almost\ninstantaneously, once it is up you can open a browser and connect to\nUnraid or another system on your network. Be careful not to share\nscreenshots of the QR code with anyone, or they will be able to use\nit to access your VPN.'),(0,i.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and\ntransfer it to the remote computer via trusted email or dropbox,\netc. Then unzip it and load the configuration into the client.\nProtect this file, anyone who has access to it will be able to\naccess your VPN.")),(0,i.kt)("h5",{id:"about-dns"},"About DNS"),(0,i.kt)("p",null,'The Dynamix WireGuard plugin includes a "Peer DNS Server" option'),(0,i.kt)("p",null,'If you are having trouble with DNS resolution on the WireGuard client,\nreturn to the VPN Manager page in Unraid and switch from Basic to\nAdvanced mode, add the IP address of your desired DNS server into the\n"Peer DNS Server" field, then install the updated config file on the\nclient. You may want to use the IP address of the router on the LAN you\nare connecting to, or you could use a globally available IP like 8.8.8.8'),(0,i.kt)("p",null,'This is required for "Remote tunneled access" mode if the client\'s\noriginal DNS server is no longer accessible after all traffic is routed\nthrough the tunnel.'),(0,i.kt)("p",null,"If you are using any of the split tunneling modes, adding a DNS server\nmay provide name resolution on the remote network, although you will\nlose name resolution on the client's local network in the process. The\nsimplest solution is to add a hosts file on the client that provides\nname resolution for both networks."),(0,i.kt)("h5",{id:"complex-networks"},"Complex Networks"),(0,i.kt)("p",null,'The instructions above should work out of the box for simple networks.\nWith "Use NAT" defaulted to Yes, all network traffic on Unraid uses\nUnraid\'s IP, and that works fine if you have a simple setup.'),(0,i.kt)("p",null,"However, if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, things may not work right (I know, kind of\nvague, but feel free to read the two WireGuard threads for examples)"),(0,i.kt)("p",null,"A partial solution is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'In the WireGuard config, set "Use NAT" to No'),(0,i.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the\nWireGuard "Local tunnel network pool" through the IP address of\nyour Unraid system. For instance, for the default pool of\n10.253.0.0/24 you should add this static route:',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)"),(0,i.kt)("li",{parentName:"ul"},"Gateway: ",(0,i.kt)("inlineCode",{parentName:"li"},"<IP address of your Unraid system>")))),(0,i.kt)("li",{parentName:"ul"},"Note that this covers the entire class B 10.253.x.x network, so you\ncan add other WireGuard tunnels without having to modify your router\nsetup again.")),(0,i.kt)("p",null,"With these changes, your network should work normally. However, your\nWireGuard clients still may not be able to access Dockers on custom IPs\nor VMs. If you find a solution to this, please ask questions in the\nforum threads mentioned earlier."),(0,i.kt)("h5",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,i.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be\ninvisible! There aren't really any error messages if things aren't\nworking, it either works or it doesn't. It cannot be detected by a port\nscanner."),(0,i.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking\nyour work:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Confirm that the tunnel is active (!)"),(0,i.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address,\nand is assigned to your "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router\nto Unraid, and assigned that same port to the "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your\nclients, you will need to set the clients up again so they have the\nlatest config."),(0,i.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config",\notherwise your QR codes/files will not have the latest data.')),(0,i.kt)("p",null,"A few other ideas:"),(0,i.kt)("p",null,"-\xa0For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not\nwifi).\xa0This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR\ncode\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working\nfrom\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Disable any energy-saving features on the client, phones in particular\nmay not use VPNs properly when in low power mode. Also, you may need to\ndisable any "Data Saver" features on the phone so that VPN is not\nthrottled. See this post.\n-\xa0If\xa0your\xa0"Peer\xa0type\xa0of\xa0connection"\xa0includes\xa0one\xa0of\xa0the\xa0LAN\xa0options\xa0but\nyou\xa0can\xa0only\xa0access\xa0Unraid,\xa0go\xa0to\xa0Settings\xa0->\xa0Network\xa0Settings\xa0and\xa0see\nwhether\xa0"Enable\xa0bridging"\xa0is\xa0yes.\xa0\xa0If\xa0bridging\xa0is\xa0disabled,\xa0you\xa0will\xa0not\nbe\xa0able\xa0to\xa0access\xa0your\xa0LAN\xa0over\xa0WireGuard.'),(0,i.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be\nsure that the networks on both sides use different subnets. You\ncan't connect two networks that both use 192.168.1.0/24, for\ninstance."),(0,i.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind\nthat the "broken" remote locations may have a firewall that blocks\nUDP traffic. Hopefully, WireGuard will support TCP in the future,\nbut currently, there is no workaround for this.'),(0,i.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm\nthat the "Local tunnel network pool" is not already in use on your\nnetwork or on one of the networks you are connecting to. If there is\na conflict you will need to change it to a different private network\n(10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|","\n192.168.0.0 to 192.168.255.255)"),(0,i.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webgui for some reason and you need\nto prevent a WireGuard tunnel from automatically starting, delete\nthis file from your flash drive and reboot:")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"/boot/config/wireguard/autostart")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note that if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, you will likely have issues. Please see the\n"Complex Networks" section above.')),(0,i.kt)("h4",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,i.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection\nfrom an Unraid server to a commercial VPN provider. If you are trying to\naccess your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ndiscussing making an outbound VPN connection using WireGuard"),(0,i.kt)("h5",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,i.kt)("p",null,"Several commercial VPN providers now support WireGuard. A few are listed\nbelow but this is not intended to be an exhaustive list. No endorsement\nis implied, you need to research and determine which one meets your\nneeds."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tunsafe.com/vpn"},"TunSafe")," (currently free)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://torguard.net/blog/what-is-wireguard-vpn/"},"TorGuard VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://nordvpn.com/blog/nordlynx-protocol-wireguard/"},"NordVPN")," Not\nsure this works without using the NordLynx client so may not be\ncompatible with the Unraid implementation.")),(0,i.kt)("p",null,"Note that with the current state of WireGuard, VPN providers cannot\nguarantee the same amount of privacy as they can with OpenVPN. See\n",(0,i.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for more detail.\nTypically the objections are not around security, but around the fact\nthat it is harder for them to guarantee that they cannot track you."),(0,i.kt)("h5",{id:"configuring-vpn-tunneled-access"},"Configuring VPN tunneled access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,i.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config"\nbutton and select the file on your hard drive. This will create a\nnew tunnel specific to this provider.'),(0,i.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name.\nClick Apply."),(0,i.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for\nthis type of connection"),(0,i.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,i.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN\ntunnel.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"In the future it may be possible to restrict it so that only\nspecific Dockers use the VPN tunnel. Until then, you may need to\ndisable the tunnel in order to check for plugin updates or\nperform other Unraid administrative tasks."),(0,i.kt)("li",{parentName:"ul"},"Note that currently, Unraid will ignore any DNS server that is\nspecified in the downloaded config file. Unraid's DNS should be\nset to something that will work whether the tunnel is up or\ndown, such as 8.8.8.8 and 8.8.4.4")))),(0,i.kt)("h5",{id:"testing-the-tunnel"},"Testing the tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using Community Applications, install a browser such as the\njlesage/Firefox Docker container"),(0,i.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,i.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,i.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should\nsee that your IP address is in the country you selected when you\nsigned up with the provider")),(0,i.kt)("h4",{id:"support"},"Support"),(0,i.kt)("p",null,"WireGuard is a new feature in Unraid so the forum is the place to\nask questions and get the most up-to-date information on using\nWireGuard with Unraid. The threads most likely to be of interest are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}h.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},7079:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/de/assets/js/aed38285.c2df1fb8.js b/de/assets/js/aed38285.c2df1fb8.js new file mode 100644 index 000000000..3223973f3 --- /dev/null +++ b/de/assets/js/aed38285.c2df1fb8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1932],{4137:(e,r,a)=>{a.d(r,{Zo:()=>d,kt:()=>m});var t=a(7294);function n(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}function s(e,r){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),a.push.apply(a,t)}return a}function o(e){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?s(Object(a),!0).forEach((function(r){n(e,r,a[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(a,r))}))}return e}function i(e,r){if(null==e)return{};var a,t,n=function(e,r){if(null==e)return{};var a,t,n={},s=Object.keys(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||(n[a]=e[a]);return n}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=t.createContext({}),u=function(e){var r=t.useContext(l),a=r;return e&&(a="function"==typeof e?e(r):o(o({},r),e)),a},d=function(e){var r=u(e.components);return t.createElement(l.Provider,{value:r},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},p=t.forwardRef((function(e,r){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),h=u(a),p=n,m=h["".concat(l,".").concat(p)]||h[p]||c[p]||s;return a?t.createElement(m,o(o({ref:r},d),{},{components:a})):t.createElement(m,o({ref:r},d))}));function m(e,r){var a=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=p;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<s;u++)o[u]=a[u];return t.createElement.apply(null,o)}return t.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3976:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var t=a(7462),n=(a(7294),a(4137));const s={sidebar_position:0},o="Shares",i={unversionedId:"unraid-os/manual/shares/shares",id:"unraid-os/manual/shares/shares",title:"Shares",description:"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.",source:"@site/docs/unraid-os/manual/shares/shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/",permalink:"/de/unraid-os/manual/shares/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/de/category/manual"},next:{title:"User shares",permalink:"/de/unraid-os/manual/shares/user-shares"}},l={},u=[],d={toc:u},h="wrapper";function c(e){let{components:r,...a}=e;return(0,n.kt)(h,(0,t.Z)({},d,a,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"shares"},"Shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.")),(0,n.kt)("p",null,"One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives."),(0,n.kt)("p",null,"There are two types of shares in Unraid:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/de/unraid-os/manual/shares/user-shares"},"User Shares")," that rely on Linux FUSE and represent folders in the overall file system."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/de/unraid-os/manual/shares/disk-shares"},"Disk Shares")," that rely on the drives' ",(0,n.kt)("a",{parentName:"li",href:"https://docs.unraid.net/unraid-os/manual/storage-management#creating-a-file-system-format"},"file system")," to share the disk as a whole.")),(0,n.kt)("p",null,"It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder."),(0,n.kt)("p",null,"When you first initialize your array, Unraid automatically creates a ",(0,n.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/shares/user-shares#default-shares"},"handful of user shares"),". These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data."),(0,n.kt)("p",null,"You manage shares from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab in Unraid. You enable or disable shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),", with user shares being enabled by default."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/b13723e0.ea0ac449.js b/de/assets/js/b13723e0.4a95c8fd.js similarity index 58% rename from de/assets/js/b13723e0.ea0ac449.js rename to de/assets/js/b13723e0.4a95c8fd.js index 442cd4a3e..8081a453f 100644 --- a/de/assets/js/b13723e0.ea0ac449.js +++ b/de/assets/js/b13723e0.4a95c8fd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/de/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/de/category/getting-started"},next:{title:"Manual Install Method",permalink:"/de/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/security"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/de/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/de/category/getting-started"},next:{title:"Manual Install Method",permalink:"/de/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/de/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/de/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"../security.md"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file diff --git a/de/assets/js/ba2ffba3.aa6fca37.js b/de/assets/js/ba2ffba3.402517ff.js similarity index 99% rename from de/assets/js/ba2ffba3.aa6fca37.js rename to de/assets/js/ba2ffba3.402517ff.js index 490fba989..c688b9d9d 100644 --- a/de/assets/js/ba2ffba3.aa6fca37.js +++ b/de/assets/js/ba2ffba3.402517ff.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/de/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/de/connect/help"},next:{title:"Legacy Documentation",permalink:"/de/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/security#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/de/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/de/connect/help"},next:{title:"Legacy Documentation",permalink:"/de/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/de/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/de/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file diff --git a/de/assets/js/e8c37b9f.4daaab11.js b/de/assets/js/e8c37b9f.3fc34400.js similarity index 69% rename from de/assets/js/e8c37b9f.4daaab11.js rename to de/assets/js/e8c37b9f.3fc34400.js index 99c119706..3a7fd0df5 100644 --- a/de/assets/js/e8c37b9f.4daaab11.js +++ b/de/assets/js/e8c37b9f.3fc34400.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7436],{4137:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},1779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(4137));const a={},i="Redeem License Activation Code",c={unversionedId:"unraid-os/faq/redeem-license-activation-code",id:"unraid-os/faq/redeem-license-activation-code",title:"Redeem License Activation Code",description:"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.",source:"@site/docs/unraid-os/faq/redeem-license-activation-code.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/redeem-license-activation-code",permalink:"/de/unraid-os/faq/redeem-license-activation-code",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"OS",permalink:"/de/unraid-os/faq/os-faq"},next:{title:"Unraid Account",permalink:"/de/unraid-os/faq/unraid-account"}},u={},l=[],s={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"redeem-license-activation-code"},"Redeem License Activation Code"),(0,o.kt)("p",null,"First, buy an activation code via ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website"),". Your unique activation code will be on your purchase receipt."),(0,o.kt)("p",null,"Next, follow our ",(0,o.kt)("a",{parentName:"p",href:"../manual/getting-started.md"},"Getting Started")," guide to set up an Unraid server."),(0,o.kt)("p",null,"Once your server is up and running:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Login to your Unraid server's webgui. (",(0,o.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac by default)"),(0,o.kt)("li",{parentName:"ol"},"For Unraid 6.10 and newer, Sign in to your Unraid.net account (or\n",(0,o.kt)("a",{parentName:"li",href:"https://account.unraid.net/"},"create one"),') from the\ntop-right of the webgui and select "Redeem Activation Code" and enter the activation code to\nactivate your license. For Unraid 6.9 and older, navigate to the\nTools -',">",' Registration page in the webGui and click "Purchase Key."'),(0,o.kt)("li",{parentName:"ol"},'Select the corresponding license you purchased via activation code\nand enter the activation code in the "Your Activation Code" box to\ncomplete the activation process. Your registration key will be\nemailed to you with instructions for installation! ',(0,o.kt)("em",{parentName:"li"},"Note: Activation\nCodes are one-time use for generating your Unraid license keyfile."))),(0,o.kt)("p",null,"If you have any issues or questions with the above, there is also a walk\nthrough video: ",(0,o.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional\nVideo")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7436],{4137:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},1779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(4137));const a={},i="Redeem License Activation Code",c={unversionedId:"unraid-os/faq/redeem-license-activation-code",id:"unraid-os/faq/redeem-license-activation-code",title:"Redeem License Activation Code",description:"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.",source:"@site/docs/unraid-os/faq/redeem-license-activation-code.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/redeem-license-activation-code",permalink:"/de/unraid-os/faq/redeem-license-activation-code",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"OS",permalink:"/de/unraid-os/faq/os-faq"},next:{title:"Unraid Account",permalink:"/de/unraid-os/faq/unraid-account"}},u={},l=[],s={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"redeem-license-activation-code"},"Redeem License Activation Code"),(0,o.kt)("p",null,"First, buy an activation code via ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website"),". Your unique activation code will be on your purchase receipt."),(0,o.kt)("p",null,"Next, follow our ",(0,o.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/getting-started/"},"Getting Started")," guide to set up an Unraid server."),(0,o.kt)("p",null,"Once your server is up and running:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Login to your Unraid server's webgui. (",(0,o.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac by default)"),(0,o.kt)("li",{parentName:"ol"},"For Unraid 6.10 and newer, Sign in to your Unraid.net account (or\n",(0,o.kt)("a",{parentName:"li",href:"https://account.unraid.net/"},"create one"),') from the\ntop-right of the webgui and select "Redeem Activation Code" and enter the activation code to\nactivate your license. For Unraid 6.9 and older, navigate to the\nTools -',">",' Registration page in the webGui and click "Purchase Key."'),(0,o.kt)("li",{parentName:"ol"},'Select the corresponding license you purchased via activation code\nand enter the activation code in the "Your Activation Code" box to\ncomplete the activation process. Your registration key will be\nemailed to you with instructions for installation! ',(0,o.kt)("em",{parentName:"li"},"Note: Activation\nCodes are one-time use for generating your Unraid license keyfile."))),(0,o.kt)("p",null,"If you have any issues or questions with the above, there is also a walk\nthrough video: ",(0,o.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional\nVideo")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/f0844d9f.da6a1766.js b/de/assets/js/f0844d9f.da6a1766.js deleted file mode 100644 index 7be001e6e..000000000 --- a/de/assets/js/f0844d9f.da6a1766.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=d(a),p=i,m=h["".concat(l,".").concat(p)]||h[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},c),{},{components:a})):n.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/de/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/de/category/manual"},next:{title:"Storage Management",permalink:"/de/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],c={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/de/assets/js/f0844d9f.f2d9f43d.js b/de/assets/js/f0844d9f.f2d9f43d.js new file mode 100644 index 000000000..163fdfb59 --- /dev/null +++ b/de/assets/js/f0844d9f.f2d9f43d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=d(a),p=i,m=c["".concat(l,".").concat(p)]||c[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/de/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Delete a share",permalink:"/de/unraid-os/manual/shares/delete-a-share"},next:{title:"Storage Management",permalink:"/de/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],h={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/de/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/de/assets/js/f7b0b541.aebce8e6.js b/de/assets/js/f7b0b541.aebce8e6.js new file mode 100644 index 000000000..03d7d4a67 --- /dev/null +++ b/de/assets/js/f7b0b541.aebce8e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2454],{4137:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(7294);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,s=function(e,t){if(null==e)return{};var r,a,s={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,s=e.mdxType,n=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),d=s,m=p["".concat(l,".").concat(d)]||p[d]||h[d]||n;return r?a.createElement(m,o(o({ref:t},u),{},{components:r})):a.createElement(m,o({ref:t},u))}));function m(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=r.length,o=new Array(n);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:s,o[1]=i;for(var c=2;c<n;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7088:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var a=r(7462),s=(r(7294),r(4137));const n={sidebar_position:4},o="Network access",i={unversionedId:"unraid-os/manual/shares/network-access",id:"unraid-os/manual/shares/network-access",title:"Network access",description:"Communication protocols",source:"@site/docs/unraid-os/manual/shares/network-access.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/network-access",permalink:"/de/unraid-os/manual/shares/network-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/network-access.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Disk shares",permalink:"/de/unraid-os/manual/shares/disk-shares"},next:{title:"Create a new share",permalink:"/de/unraid-os/manual/shares/create-a-share"}},l={},c=[{value:"Communication protocols",id:"communication-protocols",level:2},{value:"Protocol selection",id:"protocol-selection",level:2},{value:"Access permissions at share level",id:"access-permissions-at-share-level",level:2},{value:"Share security",id:"share-security",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...r}=e;return(0,s.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"network-access"},"Network access"),(0,s.kt)("h2",{id:"communication-protocols"},"Communication protocols"),(0,s.kt)("p",null,"For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"SMB"),", or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"NFS"),", or Network File System, is a widely-used protocol on Unix-compatible systems."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"FTP"),", or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.")),(0,s.kt)("admonition",{type:"important"},(0,s.kt)("p",{parentName:"admonition"},"As of Unraid 6.9, ",(0,s.kt)("strong",{parentName:"p"},"AFP")," support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in ",(0,s.kt)("strong",{parentName:"p"},(0,s.kt)("em",{parentName:"strong"},"Settings > SMB"))," set the ",(0,s.kt)("strong",{parentName:"p"},"Enhanced macOS interoperability")," parameter to ",(0,s.kt)("em",{parentName:"p"},"Yes"),".")),(0,s.kt)("h2",{id:"protocol-selection"},"Protocol selection"),(0,s.kt)("p",null,"Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases."),(0,s.kt)("p",null,"For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer."),(0,s.kt)("h2",{id:"access-permissions-at-share-level"},"Access permissions at share level"),(0,s.kt)("p",null,"Each protocol can be configured at the share level. On the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled ",(0,s.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes")," - The share will be visible across the network."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes (Hidden)")," - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"No")," - This will disable network access through that protocol, for that share.")),(0,s.kt)("h2",{id:"share-security"},"Share security"),(0,s.kt)("p",null,"Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available."),(0,s.kt)("p",null,"For example, you may configure a ",(0,s.kt)("inlineCode",{parentName:"p"},"movies")," share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials."),(0,s.kt)("p",null,"When you select an existing share on the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols ",(0,s.kt)("a",{parentName:"p",href:"#access-permissions-at-share-level"},"you have enabled"),"."),(0,s.kt)("p",null,"The ",(0,s.kt)("strong",{parentName:"p"},"Security")," setting has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Public")," - The share is unsecured and all users have both read and write access to the contents of the share."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Secure")," - The share is secured and all users, including guests, have read access. You can select which of your users have write access."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Private")," - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.")),(0,s.kt)("admonition",{title:"Windows 'Gotcha'",type:"caution"},(0,s.kt)("p",{parentName:"admonition"},"There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails."),(0,s.kt)("p",{parentName:"admonition"},"If you have any shares on the server set to ",(0,s.kt)("em",{parentName:"p"},"Private")," or ",(0,s.kt)("em",{parentName:"p"},"Secure")," access, it is important that you connect to that share first, before any shares set for ",(0,s.kt)("em",{parentName:"p"},"Public")," access."),(0,s.kt)("p",{parentName:"admonition"},"As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/fee3ac30.87c6d149.js b/de/assets/js/fee3ac30.87c6d149.js new file mode 100644 index 000000000..420928f30 --- /dev/null +++ b/de/assets/js/fee3ac30.87c6d149.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,h=p["".concat(c,".").concat(y)]||p[y]||d[y]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var l=2;l<i;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},8330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(4137));const i={sidebar_position:3},o="Data Encryption",s={unversionedId:"unraid-os/manual/security/data-encryption",id:"unraid-os/manual/security/data-encryption",title:"Data Encryption",description:"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.",source:"@site/docs/unraid-os/manual/security/data-encryption.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/data-encryption",permalink:"/de/unraid-os/manual/security/data-encryption",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/data-encryption.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Securing webGUI connections (SSL)",permalink:"/de/unraid-os/manual/security/secure-webgui-ssl"},next:{title:"Flash Drive",permalink:"/de/unraid-os/manual/security/flash-drive"}},c={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"data-encryption"},"Data Encryption"),(0,a.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup"},"Linux Unified Key System"),") encryption modules."),(0,a.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly."),(0,a.kt)("p",null,"The home page for LUKS can be found ",(0,a.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,a.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive."),(0,a.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives."),(0,a.kt)("hr",null),(0,a.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the drive)."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Go to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab."),(0,a.kt)("li",{parentName:"ol"},"Stop the array."),(0,a.kt)("li",{parentName:"ol"},"Select the drive."),(0,a.kt)("li",{parentName:"ol"},"In ",(0,a.kt)("strong",{parentName:"li"},"File system type")," change the file system to the encrypted type that you want."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Apply")," to commit the change."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Done")," to return to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab. The drive will now show as unmountable and the option to format unmountable drives will be present."),(0,a.kt)("li",{parentName:"ol"},"Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.")),(0,a.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/main.76054a9f.js b/de/assets/js/main.76054a9f.js deleted file mode 100644 index fe22bb7ec..000000000 --- a/de/assets/js/main.76054a9f.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.76054a9f.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942de99":[()=>n.e(7286).then(n.t.bind(n,2363,19)),"~docs/default/category-de-unraidsidebar-category-zfs-491.json",2363],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"2041380e":[()=>n.e(3967).then(n.t.bind(n,3530,19)),"~docs/default/category-de-unraidsidebar-category-unraid-os-3b3.json",3530],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(5602).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"57b01c12":[()=>n.e(3065).then(n.t.bind(n,8958,19)),"~docs/default/category-de-unraidsidebar-category-manual-f00.json",8958],"595ec535":[()=>n.e(6852).then(n.t.bind(n,9409,19)),"~docs/default/category-de-unraidsidebar-category-getting-started-974.json",9409],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5c2ee5c0":[()=>n.e(3214).then(n.t.bind(n,1603,19)),"~docs/default/category-de-unraidsidebar-category-legacy-documentation-c3f.json",1603],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"6752b32a":[()=>n.e(224).then(n.t.bind(n,3390,19)),"~docs/default/category-de-unraidsidebar-category-faq-64b.json",3390],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"75efc0e4":[()=>n.e(1402).then(n.t.bind(n,903,19)),"~docs/default/category-de-unraidsidebar-category-guides-791.json",903],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7ab24f84":[()=>n.e(6848).then(n.t.bind(n,1427,19)),"~docs/default/category-de-unraidsidebar-category-unraid-connect-13c.json",1427],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"90126b70":[()=>n.e(79).then(n.bind(n,8693)),"@site/docs/unraid-os/manual/shares.md",8693],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9379555f":[()=>n.e(8781).then(n.t.bind(n,444,19)),"~docs/default/category-de-unraidsidebar-category-tutorial-basics-d0a.json",444],"961882ba":[()=>n.e(582).then(n.t.bind(n,3551,19)),"~docs/default/category-de-unraidsidebar-category-contribute-44e.json",3551],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],a78d85c7:[()=>n.e(7328).then(n.bind(n,5536)),"@site/docs/unraid-os/manual/security.md",5536],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d2515c17:[()=>n.e(2677).then(n.t.bind(n,9581,19)),"~docs/default/category-de-unraidsidebar-category-release-notes-c8e.json",9581],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],d7d2fc80:[()=>n.e(6575).then(n.t.bind(n,4737,19)),"~docs/default/category-de-unraidsidebar-category-tutorial-extras-7d6.json",4737],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],e8c37b9f:[()=>n.e(7436).then(n.bind(n,1779)),"@site/docs/unraid-os/faq/redeem-license-activation-code.md",1779],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/de/search/",component:f("/de/search/","464"),exact:!0},{path:"/de/",component:f("/de/","c03"),routes:[{path:"/de/",component:f("/de/","caf"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/contribute/",component:f("/de/category/contribute/","95d"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/faq/",component:f("/de/category/faq/","d84"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/getting-started/",component:f("/de/category/getting-started/","fbc"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/guides/",component:f("/de/category/guides/","fbf"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/legacy-documentation/",component:f("/de/category/legacy-documentation/","347"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/manual/",component:f("/de/category/manual/","d3a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/release-notes/",component:f("/de/category/release-notes/","215"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/tutorial---basics/",component:f("/de/category/tutorial---basics/","621"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/tutorial---extras/",component:f("/de/category/tutorial---extras/","e09"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/unraid-connect/",component:f("/de/category/unraid-connect/","3f1"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/unraid-os/",component:f("/de/category/unraid-os/","a3f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/zfs/",component:f("/de/category/zfs/","c96"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/connect/about/",component:f("/de/connect/about/","b8a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/connect/help/",component:f("/de/connect/help/","e09"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/connect/remote-access/",component:f("/de/connect/remote-access/","7ba"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/intro/",component:f("/de/contribute-to-docs/intro/","5c1"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/congratulations/",component:f("/de/contribute-to-docs/tutorial-basics/congratulations/","c59"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:f("/de/contribute-to-docs/tutorial-basics/create-a-blog-post/","f12"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/create-a-document/",component:f("/de/contribute-to-docs/tutorial-basics/create-a-document/","8ae"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/create-a-page/",component:f("/de/contribute-to-docs/tutorial-basics/create-a-page/","aeb"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/markdown-features/",component:f("/de/contribute-to-docs/tutorial-basics/markdown-features/","3df"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:f("/de/contribute-to-docs/tutorial-extras/manage-docs-versions/","f1c"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-extras/translate-your-site/",component:f("/de/contribute-to-docs/tutorial-extras/translate-your-site/","dbe"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/Articles/dual-boot-unraid-and-windows/",component:f("/de/legacy/Articles/dual-boot-unraid-and-windows/","f34"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:f("/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/","f7d"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/Articles/upgrading-to-unraid-6/",component:f("/de/legacy/Articles/upgrading-to-unraid-6/","a07"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/cache-disk/",component:f("/de/legacy/FAQ/cache-disk/","c5f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/check-disk-filesystems/",component:f("/de/legacy/FAQ/check-disk-filesystems/","36a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/check-harddrive-speed/",component:f("/de/legacy/FAQ/check-harddrive-speed/","a9f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/console/",component:f("/de/legacy/FAQ/console/","146"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/parity-swap-procedure/",component:f("/de/legacy/FAQ/parity-swap-procedure/","d95"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/Parity/",component:f("/de/legacy/FAQ/Parity/","c62"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/replacing-a-data-drive/",component:f("/de/legacy/FAQ/replacing-a-data-drive/","c40"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/replacing-multiple-data-drives/",component:f("/de/legacy/FAQ/replacing-multiple-data-drives/","01c"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:f("/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","e61"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:f("/de/legacy/FAQ/setup-sleep-and-wake-on-lan/","c3b"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/shrink-array/",component:f("/de/legacy/FAQ/shrink-array/","de3"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/terminal-access/",component:f("/de/legacy/FAQ/terminal-access/","1e7"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:f("/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","dad"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/transferring-files-within-the-unraid-server/",component:f("/de/legacy/FAQ/transferring-files-within-the-unraid-server/","6ff"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/understanding-smart-reports/",component:f("/de/legacy/FAQ/understanding-smart-reports/","869"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/usb-flash-drive-preparation/",component:f("/de/legacy/FAQ/usb-flash-drive-preparation/","750"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/licensing-faq/",component:f("/de/unraid-os/faq/licensing-faq/","23a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/os-faq/",component:f("/de/unraid-os/faq/os-faq/","c13"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/redeem-license-activation-code/",component:f("/de/unraid-os/faq/redeem-license-activation-code/","0ed"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/unraid-account/",component:f("/de/unraid-os/faq/unraid-account/","f78"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/guides/configuring-time-machine/",component:f("/de/unraid-os/guides/configuring-time-machine/","0da"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/guides/wol-setup-for-unraid/",component:f("/de/unraid-os/guides/wol-setup-for-unraid/","f73"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/additional-settings/",component:f("/de/unraid-os/manual/additional-settings/","137"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/applications/",component:f("/de/unraid-os/manual/applications/","45a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/changing-the-flash-device/",component:f("/de/unraid-os/manual/changing-the-flash-device/","b64"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/docker-management/",component:f("/de/unraid-os/manual/docker-management/","08f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/getting-started/",component:f("/de/unraid-os/manual/getting-started/","4b5"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/getting-started/manual-install-method/",component:f("/de/unraid-os/manual/getting-started/manual-install-method/","0b2"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/multi-language/",component:f("/de/unraid-os/manual/multi-language/","92b"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/security/",component:f("/de/unraid-os/manual/security/","345"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/shares/",component:f("/de/unraid-os/manual/shares/","1c0"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/storage-management/",component:f("/de/unraid-os/manual/storage-management/","091"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/tools/",component:f("/de/unraid-os/manual/tools/","fe2"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/troubleshooting/",component:f("/de/unraid-os/manual/troubleshooting/","c54"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/upgrade-instructions/",component:f("/de/unraid-os/manual/upgrade-instructions/","807"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/users/",component:f("/de/unraid-os/manual/users/","58c"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/vm-management/",component:f("/de/unraid-os/manual/vm-management/","e14"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/vm-support/",component:f("/de/unraid-os/manual/vm-support/","c56"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/what-is-unraid/",component:f("/de/unraid-os/manual/what-is-unraid/","3d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/zfs/placeholder/",component:f("/de/unraid-os/manual/zfs/placeholder/","461"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.0/",component:f("/de/unraid-os/release-notes/6.10.0/","cec"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.1/",component:f("/de/unraid-os/release-notes/6.10.1/","063"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.2/",component:f("/de/unraid-os/release-notes/6.10.2/","e5f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.3/",component:f("/de/unraid-os/release-notes/6.10.3/","daa"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.0/",component:f("/de/unraid-os/release-notes/6.11.0/","d75"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.1/",component:f("/de/unraid-os/release-notes/6.11.1/","eb5"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.2/",component:f("/de/unraid-os/release-notes/6.11.2/","327"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.3/",component:f("/de/unraid-os/release-notes/6.11.3/","f59"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.4/",component:f("/de/unraid-os/release-notes/6.11.4/","76b"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.5/",component:f("/de/unraid-os/release-notes/6.11.5/","458"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.0/",component:f("/de/unraid-os/release-notes/6.12.0/","c0d"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.1/",component:f("/de/unraid-os/release-notes/6.12.1/","3da"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.2/",component:f("/de/unraid-os/release-notes/6.12.2/","424"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.3/",component:f("/de/unraid-os/release-notes/6.12.3/","272"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.9.0/",component:f("/de/unraid-os/release-notes/6.9.0/","32f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.9.1/",component:f("/de/unraid-os/release-notes/6.9.1/","c60"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.9.2/",component:f("/de/unraid-os/release-notes/6.9.2/","4cb"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:f("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const T=new Map;function C(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:C(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/de/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/de/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/de/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/de/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/de/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/de/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/de/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/de/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/de/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/de/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/de/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/de/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/de/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/de/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/de/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/de/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/de/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/de/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/de/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/de/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/de/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/de/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/de/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/de/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/de/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/de/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/de/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/de/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/de/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/de/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/de/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/de/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/de/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/de/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/de/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/de/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/de/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/de/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/de/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/de/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/de/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/de/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/de/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security","path":"/de/unraid-os/manual/security","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares","path":"/de/unraid-os/manual/shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/de/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/de/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/de/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/de/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/de/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/de/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/de/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/de/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/de/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/de/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/de/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/de/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/de/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/de/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/de/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/de/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/de/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/de/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/de/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/de/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/de/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/de/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/de/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/de/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/de/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/de/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/de/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/de/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/de/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/de/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/de/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/de/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/de/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/de/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/de/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/de/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/de/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/de/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/de/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"de","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const _=(0,s.Z)(x),T=x?.replace("pathname://","");let C=void 0!==T?(A=T,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;C&&_&&(C=(0,i.applyTrailingSlash)(C,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==C||(window.docusaurus.preload(C),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=C&&window.docusaurus.prefetch(C),()=>{P&&N.current&&N.current.disconnect()})),[N,C,P,_]);const I=C?.startsWith("#")??!1,D=!C||!_||I;return D||g||S.collectLink(C),D?a.createElement("a",(0,r.Z)({ref:E,href:C},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),N.current.observe(e))},to:C},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function T(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const C={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:C.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:C.announcementBarPlaceholder}),r.createElement(T,{className:C.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:C.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Te=n(5358),Ce=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Te.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Ce.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,T=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,C=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:T,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:C},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(3734);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function pt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Tt=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Ct(e){let{children:t}=e;return r.createElement(Tt,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Ct,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(3734),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3734:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>f,jA:()=>h,xz:()=>p,hI:()=>x,lO:()=>k,vY:()=>E,oz:()=>S,s1:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432);function c(e){return Array.from(new Set(e))}var d=n(9003);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>T,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function T(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function C(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(T(e.state))}function P(){O(T(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=T(y()),D=[I.key];function M(e){return _+f(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=p(e,t,C(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,C(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function T(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function T(){var e=w(x());return b&&(e=c(e,b)),p(e)}var C=m();function A(e){(0,r.Z)(z,e),z.length=t.length,C.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=T(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===f(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";C.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(f(t));-1===n&&(n=0);var r=D.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=T(),D=[f(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);C.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(f(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);C.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(f(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=C.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=C.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function C(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=C(l,0,o.length-1),b=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),v=f;function y(e){var t=C(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=f(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,T=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var C=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;C>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)T++,L+=R.value.length;T--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;C=_.index;var P=_[0],N=x.slice(0,C),O=x.slice(C+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),u(t,D,T),S=s(t,D,new a(f,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),T>1){var M={cause:f+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in p(b))if(v in c){f[b]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(f.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,T=60114,C=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),T=j("react.profiler"),C=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case T:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Te=null,Ce=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Te)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Te(e.stateNode,e.type,t))}}function Re(e){Ce?Ae?Ae.push(e):Ae=[e]:Ce=e}function Pe(){if(Ce){var e=Ce,t=Ae;if(Ae=Ce=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Ce&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Tt(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Ct=Tt("animationend"),At=Tt("animationiteration"),Lt=Tt("animationstart"),Rt=Tt("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Ct,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),mn=ln(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Cn(){return Tn}var An=a({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Tr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Cr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Cr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Cr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Tr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Tr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Pt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Pn;break;case Ct:case At:case Lt:s=yn;break;case Rt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==f&&(null!=(h=je(m,f))&&c.push(Dr(m,h,p)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",f="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",f="onPointerEnter",m="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=p,h=null,ta(a)===r&&((c=new c(f,m+"enter",u,n,a)).target=p,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(f=u,m=0,p=c=s;p;p=Fr(p))m++;for(p=0,h=f;h;h=Fr(h))p++;for(;0<m-p;)c=Fr(c),m--;for(;0<p-m;)f=Fr(f),p--;for(;m--;){if(c===f||null!==f&&c===f.alternate)break e;c=Fr(c),f=Fr(f)}c=null}else c=null;null!==s&&Br(i,l,s,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=je(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=je(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(pa),ua(fa)}function va(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=fa.current,ca(fa,e),ca(pa,pa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ta=o.unstable_cancelCallback,Ca=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ta(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,s);break e}f=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(p,f,s):m))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=f}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:fa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:fa.current,a.context=ha(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=p(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=f(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var To=_o(!0),Co=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),Po=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=pe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,m=p.getSnapshot,h=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return pi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ti(){}function Ci(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ti,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ci,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ti,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ci,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ti,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?Co(t,null,n,r):To(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:fa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var m=t.memoizedState;l!==d||f!==m||pa.current||io?("function"==typeof p&&(go(t,n,p,r),m=t.memoizedState),(u=io||vo(t,n,u,r,f,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=To(t,e.child,null,o),t.child=To(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(pa),ua(fa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(pa),ua(fa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Tl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Cl(t);case 19:return void Cl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Cl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=jt(12,ss):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Bl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ta(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ta(n)}15===t?(n=ys.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Ts();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Cs(e,n))),1===r)throw t=jl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Cs(e,t);0!=(zl&$l)&&(n=Cs(e,t=Ft(e,t)))}else n=Cs(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Cs(e,t))),1===n)throw n=jl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ua(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(pa),ua(fa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Pl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),f=i;do{var p;if(p=13===f.tag){var m=f.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=f.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var b=new Set;b.add(u),f.updateQueue=b}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var k=f.type,S=f.stateNode;if(0==(64&f.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ps(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Ts(){var e=Rl.current;return Rl.current=Pi,null===e?Pi:e}function Cs(e,t){var n=Nl;Nl|=16;var r=Ts();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Rl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Ca();)Rs(Il)}function Rs(e){var t=Ql(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ps(e):Il=t,Pl.current=null}function Ps(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,zr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(T){s=null;break e}var d=0,f=-1,p=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(f=d),b===u&&++h===c&&(p=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Is()}catch(T){if(null===Wl)throw Error(i(330));zs(Wl,T),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Tl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Tl(Wl.alternate,Wl);break;case 4:Tl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(T){if(null===Wl)throw Error(i(330));zs(Wl,T),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=pr(y,S),o=pr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(T){if(null===Wl)throw Error(i(330));zs(Wl,T),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(T){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Wl=Wl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function js(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case T:return(e=Gs(12,n,t,8|a)).elementType=T,e.type=T,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gs(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Ws(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=Co(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=To(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Te=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,Pe,Ds,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},T=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},C=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,f,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var f={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:C(["href"],e),bodyAttributes:T("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:T("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:T("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,T=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(x,n),n),s=i.pathname,C=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=C?(0,r.LX)(n.pathname,{path:C,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,l.Z)({},P,p));var N=(0,l.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},T);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),f=(n(9864),n(3366)),p=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function T(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function C(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function C(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+T(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),C(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+T(l=e[u],u);s+=C(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=C(l=l.value,t,n,c=r+T(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return C(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(p(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=f((function(){e(t.unstable_now())}),n)},a=function(){p(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var T=[],C=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(C);null!==t;){if(null===t.callback)x(C);else{if(!(t.startTime<=e))break;x(C),t.sortIndex=t.expirationTime,S(T,t)}t=E(C)}}function D(e){if(O=!1,I(e),!N)if(null!==E(T))N=!0,n(M);else{var t=E(C);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(T);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(T)&&x(T),I(n)}else x(T);L=E(T)}if(null!==L)var s=!0;else{var u=E(C);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(T)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(C,e),null===E(T)&&e===E(C)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(T,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/de/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"Schlie\xdfen","theme.BackToTopButton.buttonAriaLabel":"Zur\xfcck nach oben scrollen","theme.CodeBlock.copied":"Kopiert","theme.CodeBlock.copy":"Kopieren","theme.CodeBlock.copyButtonAriaLabel":"In die Zwischenablage kopieren","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"Umschalten der Seitenleiste mit einklappbarer Kategorie \'{label}\'","theme.ErrorPageContent.title":"Die Seite ist abgest\xfcrzt.","theme.ErrorPageContent.tryAgain":"Nochmal versuchen","theme.NavBar.navAriaLabel":"Main","theme.NotFound.p1":"Wir konnten nicht finden, wonach Sie gesucht haben.","theme.NotFound.p2":"Bitte kontaktieren Sie den Besitzer der Seite, die Sie mit der urspr\xfcnglichen URL verlinkt hat, und teilen Sie ihm mit, dass der Link nicht mehr funktioniert.","theme.NotFound.title":"Seite nicht gefunden","theme.TOCCollapsible.toggleButtonLabel":"Auf dieser Seite","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.blog.archive.description":"Archiv","theme.blog.archive.title":"Archiv","theme.blog.paginator.navAriaLabel":"Navigation der Blog-Listenseite","theme.blog.paginator.newerEntries":"Neuere Eintr\xe4ge","theme.blog.paginator.olderEntries":"\xc4ltere Eintr\xe4ge","theme.blog.post.paginator.navAriaLabel":"Blog Post Seiten Navigation","theme.blog.post.paginator.newerPost":"Neuer Post","theme.blog.post.paginator.olderPost":"\xc4lterer Post","theme.blog.post.plurals":"Ein Post|{count} Posts","theme.blog.post.readMore":"Mehr lesen","theme.blog.post.readMoreLabel":"Mehr lesen \xfcber {title}","theme.blog.post.readingTime.plurals":"Eine Minute Lesezeit|{readingTime} Minuten Lesezeit","theme.blog.sidebar.navAriaLabel":"Navigation der letzten Beitr\xe4ge im Blog","theme.blog.tagTitle":"{nPosts} getaggt mit \\"{tagName}\\"","theme.colorToggle.ariaLabel":"Umschalten zwischen dunkler und heller Ansicht (momentan {mode})","theme.colorToggle.ariaLabel.mode.dark":"dunkler Modus","theme.colorToggle.ariaLabel.mode.light":"heller Modus","theme.common.editThisPage":"Diese Seite bearbeiten","theme.common.headingLinkTitle":"Direkter Link zur {heading}","theme.common.skipToMainContent":"Zum Hauptinhalt springen","theme.docs.DocCard.categoryDescription":"{count} Eintr\xe4ge","theme.docs.breadcrumbs.home":"Home page","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"Dokumentation Seiten","theme.docs.paginator.next":"Weiter","theme.docs.paginator.previous":"Zur\xfcck","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.docs.sidebar.collapseButtonAriaLabel":"Seitenleiste einklappen","theme.docs.sidebar.collapseButtonTitle":"Seitenleiste einklappen","theme.docs.sidebar.expandButtonAriaLabel":"Seitenleiste ausklappen","theme.docs.sidebar.expandButtonTitle":"Seitenleiste ausklappen","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.docs.tagDocListPageTitle":"{nDocsTagged} mit \\"{tagName}\\"","theme.docs.tagDocListPageTitle.nDocsTagged":"Ein doc getaggt|{count} docs getaggt","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.latestVersionLinkLabel":"letzte Version","theme.docs.versions.latestVersionSuggestionLabel":"F\xfcr die aktuellste Dokumentation bitte auf {latestVersionLink} ({versionLabel}) gehen.","theme.docs.versions.unmaintainedVersionLabel":"Das ist die Dokumentation f\xfcr {siteTitle} {versionLabel} und wird nicht weiter gewartet.","theme.docs.versions.unreleasedVersionLabel":"Das ist die unver\xf6ffentlichte Dokumentation f\xfcr {siteTitle} {versionLabel}.","theme.lastUpdated.atDate":" am {date}","theme.lastUpdated.byUser":" von {user}","theme.lastUpdated.lastUpdatedAtBy":"Letztes Update{atDate}{byUser}","theme.navbar.mobileLanguageDropdown.label":"Sprachen","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Zur\xfcck zum Hauptmen\xfc","theme.navbar.mobileVersionsDropdown.label":"Versionen","theme.tags.tagsListLabel":"Tags:","theme.tags.tagsPageLink":"Alle Tags anzeigen","theme.tags.tagsPageTitle":"Tags","theme.SearchBar.label":"Suche","theme.SearchBar.seeAll":"Alle {count} Ergebnisse anzeigen","theme.SearchModal.errorScreen.helpText":"You might want to check your network connection.","theme.SearchModal.errorScreen.titleText":"Unable to fetch results","theme.SearchModal.footer.closeKeyAriaLabel":"Escape key","theme.SearchModal.footer.closeText":"to close","theme.SearchModal.footer.navigateDownKeyAriaLabel":"Arrow down","theme.SearchModal.footer.navigateText":"to navigate","theme.SearchModal.footer.navigateUpKeyAriaLabel":"Arrow up","theme.SearchModal.footer.searchByText":"Search by","theme.SearchModal.footer.selectKeyAriaLabel":"Enter key","theme.SearchModal.footer.selectText":"to select","theme.SearchModal.noResultsScreen.noResultsText":"No results for","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"Let us know.","theme.SearchModal.noResultsScreen.reportMissingResultsText":"Believe this query should return results?","theme.SearchModal.noResultsScreen.suggestedQueryText":"Try searching for","theme.SearchModal.placeholder":"Search docs","theme.SearchModal.searchBox.cancelButtonText":"Cancel","theme.SearchModal.searchBox.resetButtonTitle":"Clear the query","theme.SearchModal.startScreen.favoriteSearchesTitle":"Favorite","theme.SearchModal.startScreen.noRecentSearchesText":"No recent searches","theme.SearchModal.startScreen.recentSearchesTitle":"Recent","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"Remove this search from favorites","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"Remove this search from history","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"Save this search","theme.SearchPage.algoliaLabel":"Suche von Algolia","theme.SearchPage.documentsFound.plurals":"Ein Dokument gefunden|{count} Dokumente gefunden","theme.SearchPage.emptyResultsTitle":"Suche in der Dokumentation","theme.SearchPage.existingResultsTitle":"Suchergebnisse f\xfcr \\"{query}\\"","theme.SearchPage.fetchingNewResults":"Neue Ergebnisse abrufen...","theme.SearchPage.inputLabel":"Suche","theme.SearchPage.inputPlaceholder":"Geben Sie hier Ihre Suche ein","theme.SearchPage.noResultsText":"Es wurden keine Ergebnisse gefunden","theme.IdealImageMessage.404error":"404. Bild nicht gefunden.","theme.IdealImageMessage.error":"Fehler. Zum neu laden klicken","theme.IdealImageMessage.load":"Zum Laden klicken {sizeMessage}","theme.IdealImageMessage.loading":"Wird geladen...","theme.IdealImageMessage.offline":"Browser ist offline. Bild nicht geladen"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/de/search/-464":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/de/-c03":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/de/-caf":{"__comp":"17896441","content":"6e7e0dfd"},"/de/category/contribute/-95d":{"__comp":"14eb3368","categoryGeneratedIndex":"961882ba"},"/de/category/faq/-d84":{"__comp":"14eb3368","categoryGeneratedIndex":"6752b32a"},"/de/category/getting-started/-fbc":{"__comp":"14eb3368","categoryGeneratedIndex":"595ec535"},"/de/category/guides/-fbf":{"__comp":"14eb3368","categoryGeneratedIndex":"75efc0e4"},"/de/category/legacy-documentation/-347":{"__comp":"14eb3368","categoryGeneratedIndex":"5c2ee5c0"},"/de/category/manual/-d3a":{"__comp":"14eb3368","categoryGeneratedIndex":"57b01c12"},"/de/category/release-notes/-215":{"__comp":"14eb3368","categoryGeneratedIndex":"d2515c17"},"/de/category/tutorial---basics/-621":{"__comp":"14eb3368","categoryGeneratedIndex":"9379555f"},"/de/category/tutorial---extras/-e09":{"__comp":"14eb3368","categoryGeneratedIndex":"d7d2fc80"},"/de/category/unraid-connect/-3f1":{"__comp":"14eb3368","categoryGeneratedIndex":"7ab24f84"},"/de/category/unraid-os/-a3f":{"__comp":"14eb3368","categoryGeneratedIndex":"2041380e"},"/de/category/zfs/-c96":{"__comp":"14eb3368","categoryGeneratedIndex":"1942de99"},"/de/connect/about/-b8a":{"__comp":"17896441","content":"bd5544b1"},"/de/connect/help/-e09":{"__comp":"17896441","content":"54fe4512"},"/de/connect/remote-access/-7ba":{"__comp":"17896441","content":"ba2ffba3"},"/de/contribute-to-docs/intro/-5c1":{"__comp":"17896441","content":"9c8e01a5"},"/de/contribute-to-docs/tutorial-basics/congratulations/-c59":{"__comp":"17896441","content":"06cd2fd6"},"/de/contribute-to-docs/tutorial-basics/create-a-blog-post/-f12":{"__comp":"17896441","content":"e62fd64a"},"/de/contribute-to-docs/tutorial-basics/create-a-document/-8ae":{"__comp":"17896441","content":"73c1707a"},"/de/contribute-to-docs/tutorial-basics/create-a-page/-aeb":{"__comp":"17896441","content":"6937eda1"},"/de/contribute-to-docs/tutorial-basics/markdown-features/-3df":{"__comp":"17896441","content":"fd47d4b7"},"/de/contribute-to-docs/tutorial-extras/manage-docs-versions/-f1c":{"__comp":"17896441","content":"0993abe5"},"/de/contribute-to-docs/tutorial-extras/translate-your-site/-dbe":{"__comp":"17896441","content":"f568d666"},"/de/legacy/Articles/dual-boot-unraid-and-windows/-f34":{"__comp":"17896441","content":"c5b893f4"},"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/-f7d":{"__comp":"17896441","content":"69f90a2c"},"/de/legacy/Articles/upgrading-to-unraid-6/-a07":{"__comp":"17896441","content":"39304afb"},"/de/legacy/FAQ/cache-disk/-c5f":{"__comp":"17896441","content":"88a1b883"},"/de/legacy/FAQ/check-disk-filesystems/-36a":{"__comp":"17896441","content":"5034631f"},"/de/legacy/FAQ/check-harddrive-speed/-a9f":{"__comp":"17896441","content":"039cd775"},"/de/legacy/FAQ/console/-146":{"__comp":"17896441","content":"2dd62328"},"/de/legacy/FAQ/parity-swap-procedure/-d95":{"__comp":"17896441","content":"f2577e9f"},"/de/legacy/FAQ/Parity/-c62":{"__comp":"17896441","content":"54f4a7b0"},"/de/legacy/FAQ/replacing-a-data-drive/-c40":{"__comp":"17896441","content":"74287a25"},"/de/legacy/FAQ/replacing-multiple-data-drives/-01c":{"__comp":"17896441","content":"d441ea6d"},"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-e61":{"__comp":"17896441","content":"6618ba01"},"/de/legacy/FAQ/setup-sleep-and-wake-on-lan/-c3b":{"__comp":"17896441","content":"036bad42"},"/de/legacy/FAQ/shrink-array/-de3":{"__comp":"17896441","content":"9d093beb"},"/de/legacy/FAQ/terminal-access/-1e7":{"__comp":"17896441","content":"e624f8a6"},"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-dad":{"__comp":"17896441","content":"67a4e8b6"},"/de/legacy/FAQ/transferring-files-within-the-unraid-server/-6ff":{"__comp":"17896441","content":"38c3fa26"},"/de/legacy/FAQ/understanding-smart-reports/-869":{"__comp":"17896441","content":"dec1eefe"},"/de/legacy/FAQ/usb-flash-drive-preparation/-750":{"__comp":"17896441","content":"79722de7"},"/de/unraid-os/faq/licensing-faq/-23a":{"__comp":"17896441","content":"26113f5d"},"/de/unraid-os/faq/os-faq/-c13":{"__comp":"17896441","content":"81b28c9f"},"/de/unraid-os/faq/redeem-license-activation-code/-0ed":{"__comp":"17896441","content":"e8c37b9f"},"/de/unraid-os/faq/unraid-account/-f78":{"__comp":"17896441","content":"5565d3f9"},"/de/unraid-os/guides/configuring-time-machine/-0da":{"__comp":"17896441","content":"f9ab548b"},"/de/unraid-os/guides/wol-setup-for-unraid/-f73":{"__comp":"17896441","content":"0a18b2d8"},"/de/unraid-os/manual/additional-settings/-137":{"__comp":"17896441","content":"1942e1e1"},"/de/unraid-os/manual/applications/-45a":{"__comp":"17896441","content":"7b378cd1"},"/de/unraid-os/manual/changing-the-flash-device/-b64":{"__comp":"17896441","content":"0ca4c500"},"/de/unraid-os/manual/docker-management/-08f":{"__comp":"17896441","content":"4caccc33"},"/de/unraid-os/manual/getting-started/-4b5":{"__comp":"17896441","content":"b13723e0"},"/de/unraid-os/manual/getting-started/manual-install-method/-0b2":{"__comp":"17896441","content":"18ade0c5"},"/de/unraid-os/manual/multi-language/-92b":{"__comp":"17896441","content":"6b42df2b"},"/de/unraid-os/manual/security/-345":{"__comp":"17896441","content":"a78d85c7"},"/de/unraid-os/manual/shares/-1c0":{"__comp":"17896441","content":"90126b70"},"/de/unraid-os/manual/storage-management/-091":{"__comp":"17896441","content":"55054ac6"},"/de/unraid-os/manual/tools/-fe2":{"__comp":"17896441","content":"7c081f1b"},"/de/unraid-os/manual/troubleshooting/-c54":{"__comp":"17896441","content":"104dd0b4"},"/de/unraid-os/manual/upgrade-instructions/-807":{"__comp":"17896441","content":"7436a388"},"/de/unraid-os/manual/users/-58c":{"__comp":"17896441","content":"40147886"},"/de/unraid-os/manual/vm-management/-e14":{"__comp":"17896441","content":"3d3d1f9d"},"/de/unraid-os/manual/vm-support/-c56":{"__comp":"17896441","content":"88941ca4"},"/de/unraid-os/manual/what-is-unraid/-3d8":{"__comp":"17896441","content":"f0844d9f"},"/de/unraid-os/manual/zfs/placeholder/-461":{"__comp":"17896441","content":"5df36282"},"/de/unraid-os/release-notes/6.10.0/-cec":{"__comp":"17896441","content":"798531cc"},"/de/unraid-os/release-notes/6.10.1/-063":{"__comp":"17896441","content":"b3a9d7ab"},"/de/unraid-os/release-notes/6.10.2/-e5f":{"__comp":"17896441","content":"caa9baff"},"/de/unraid-os/release-notes/6.10.3/-daa":{"__comp":"17896441","content":"54219b20"},"/de/unraid-os/release-notes/6.11.0/-d75":{"__comp":"17896441","content":"096fb135"},"/de/unraid-os/release-notes/6.11.1/-eb5":{"__comp":"17896441","content":"6b97f0f9"},"/de/unraid-os/release-notes/6.11.2/-327":{"__comp":"17896441","content":"a0c90937"},"/de/unraid-os/release-notes/6.11.3/-f59":{"__comp":"17896441","content":"d31ea43a"},"/de/unraid-os/release-notes/6.11.4/-76b":{"__comp":"17896441","content":"c8335b6e"},"/de/unraid-os/release-notes/6.11.5/-458":{"__comp":"17896441","content":"ae93aaeb"},"/de/unraid-os/release-notes/6.12.0/-c0d":{"__comp":"17896441","content":"e1256ee6"},"/de/unraid-os/release-notes/6.12.1/-3da":{"__comp":"17896441","content":"98a2ad9f"},"/de/unraid-os/release-notes/6.12.2/-424":{"__comp":"17896441","content":"0ba4e87b"},"/de/unraid-os/release-notes/6.12.3/-272":{"__comp":"17896441","content":"7a2d53ea"},"/de/unraid-os/release-notes/6.9.0/-32f":{"__comp":"17896441","content":"06988216"},"/de/unraid-os/release-notes/6.9.1/-c60":{"__comp":"17896441","content":"49332cbb"},"/de/unraid-os/release-notes/6.9.2/-4cb":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/de/assets/js/main.85bcca4b.js b/de/assets/js/main.85bcca4b.js new file mode 100644 index 000000000..4b861f515 --- /dev/null +++ b/de/assets/js/main.85bcca4b.js @@ -0,0 +1,2 @@ +/*! For license information please see main.85bcca4b.js.LICENSE.txt */ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0a1bdeaa":[()=>n.e(967).then(n.bind(n,3940)),"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",3940],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"10869db1":[()=>n.e(3563).then(n.bind(n,2127)),"@site/docs/unraid-os/manual/security/flash-drive.md",2127],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942de99":[()=>n.e(7286).then(n.t.bind(n,2363,19)),"~docs/default/category-de-unraidsidebar-category-zfs-491.json",2363],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"1c36a847":[()=>n.e(5289).then(n.bind(n,7732)),"@site/docs/unraid-os/manual/security/vpn.md",7732],"2041380e":[()=>n.e(3967).then(n.t.bind(n,3530,19)),"~docs/default/category-de-unraidsidebar-category-unraid-os-3b3.json",3530],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"277cf690":[()=>n.e(9821).then(n.bind(n,3593)),"@site/docs/unraid-os/manual/security/security.md",3593],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"313b9001":[()=>n.e(559).then(n.bind(n,3283)),"@site/docs/unraid-os/manual/security/good-practices.md",3283],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(5602).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"57b01c12":[()=>n.e(3065).then(n.t.bind(n,8958,19)),"~docs/default/category-de-unraidsidebar-category-manual-f00.json",8958],"595ec535":[()=>n.e(6852).then(n.t.bind(n,9409,19)),"~docs/default/category-de-unraidsidebar-category-getting-started-974.json",9409],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5c2ee5c0":[()=>n.e(3214).then(n.t.bind(n,1603,19)),"~docs/default/category-de-unraidsidebar-category-legacy-documentation-c3f.json",1603],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"5f60a020":[()=>n.e(4863).then(n.bind(n,6260)),"@site/docs/unraid-os/manual/shares/disk-shares.md",6260],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"6752b32a":[()=>n.e(224).then(n.t.bind(n,3390,19)),"~docs/default/category-de-unraidsidebar-category-faq-64b.json",3390],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"75efc0e4":[()=>n.e(1402).then(n.t.bind(n,903,19)),"~docs/default/category-de-unraidsidebar-category-guides-791.json",903],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7ab24f84":[()=>n.e(6848).then(n.t.bind(n,1427,19)),"~docs/default/category-de-unraidsidebar-category-unraid-connect-13c.json",1427],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"8944547a":[()=>Promise.all([n.e(532),n.e(5450)]).then(n.bind(n,3135)),"@site/docs/unraid-os/manual/shares/user-shares.md",3135],"8a89048a":[()=>n.e(1770).then(n.bind(n,8829)),"@site/docs/unraid-os/manual/shares/create-a-share.md",8829],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9379555f":[()=>n.e(8781).then(n.t.bind(n,444,19)),"~docs/default/category-de-unraidsidebar-category-tutorial-basics-d0a.json",444],"961882ba":[()=>n.e(582).then(n.t.bind(n,3551,19)),"~docs/default/category-de-unraidsidebar-category-contribute-44e.json",3551],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],"9d23aec8":[()=>n.e(1754).then(n.bind(n,6419)),"@site/docs/unraid-os/manual/shares/delete-a-share.md",6419],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],aed38285:[()=>n.e(1932).then(n.bind(n,3976)),"@site/docs/unraid-os/manual/shares/shares.md",3976],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d2515c17:[()=>n.e(2677).then(n.t.bind(n,9581,19)),"~docs/default/category-de-unraidsidebar-category-release-notes-c8e.json",9581],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],d7d2fc80:[()=>n.e(6575).then(n.t.bind(n,4737,19)),"~docs/default/category-de-unraidsidebar-category-tutorial-extras-7d6.json",4737],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],e8c37b9f:[()=>n.e(7436).then(n.bind(n,1779)),"@site/docs/unraid-os/faq/redeem-license-activation-code.md",1779],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f7b0b541:[()=>n.e(2454).then(n.bind(n,7088)),"@site/docs/unraid-os/manual/shares/network-access.md",7088],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219],fee3ac30:[()=>n.e(7328).then(n.bind(n,8330)),"@site/docs/unraid-os/manual/security/data-encryption.md",8330]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function p(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],p={},f=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const f=[{path:"/de/search/",component:p("/de/search/","464"),exact:!0},{path:"/de/",component:p("/de/","fab"),routes:[{path:"/de/",component:p("/de/","caf"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/contribute/",component:p("/de/category/contribute/","95d"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/faq/",component:p("/de/category/faq/","d84"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/getting-started/",component:p("/de/category/getting-started/","fbc"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/guides/",component:p("/de/category/guides/","fbf"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/legacy-documentation/",component:p("/de/category/legacy-documentation/","347"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/manual/",component:p("/de/category/manual/","d3a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/release-notes/",component:p("/de/category/release-notes/","215"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/tutorial---basics/",component:p("/de/category/tutorial---basics/","621"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/tutorial---extras/",component:p("/de/category/tutorial---extras/","e09"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/unraid-connect/",component:p("/de/category/unraid-connect/","3f1"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/unraid-os/",component:p("/de/category/unraid-os/","a3f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/category/zfs/",component:p("/de/category/zfs/","c96"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/connect/about/",component:p("/de/connect/about/","b8a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/connect/help/",component:p("/de/connect/help/","e09"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/connect/remote-access/",component:p("/de/connect/remote-access/","7ba"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/intro/",component:p("/de/contribute-to-docs/intro/","5c1"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/congratulations/",component:p("/de/contribute-to-docs/tutorial-basics/congratulations/","c59"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:p("/de/contribute-to-docs/tutorial-basics/create-a-blog-post/","f12"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/create-a-document/",component:p("/de/contribute-to-docs/tutorial-basics/create-a-document/","8ae"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/create-a-page/",component:p("/de/contribute-to-docs/tutorial-basics/create-a-page/","aeb"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-basics/markdown-features/",component:p("/de/contribute-to-docs/tutorial-basics/markdown-features/","3df"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:p("/de/contribute-to-docs/tutorial-extras/manage-docs-versions/","f1c"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/contribute-to-docs/tutorial-extras/translate-your-site/",component:p("/de/contribute-to-docs/tutorial-extras/translate-your-site/","dbe"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/Articles/dual-boot-unraid-and-windows/",component:p("/de/legacy/Articles/dual-boot-unraid-and-windows/","f34"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:p("/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/","f7d"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/Articles/upgrading-to-unraid-6/",component:p("/de/legacy/Articles/upgrading-to-unraid-6/","a07"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/cache-disk/",component:p("/de/legacy/FAQ/cache-disk/","c5f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/check-disk-filesystems/",component:p("/de/legacy/FAQ/check-disk-filesystems/","36a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/check-harddrive-speed/",component:p("/de/legacy/FAQ/check-harddrive-speed/","a9f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/console/",component:p("/de/legacy/FAQ/console/","146"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/parity-swap-procedure/",component:p("/de/legacy/FAQ/parity-swap-procedure/","d95"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/Parity/",component:p("/de/legacy/FAQ/Parity/","c62"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/replacing-a-data-drive/",component:p("/de/legacy/FAQ/replacing-a-data-drive/","c40"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/replacing-multiple-data-drives/",component:p("/de/legacy/FAQ/replacing-multiple-data-drives/","01c"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:p("/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","e61"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:p("/de/legacy/FAQ/setup-sleep-and-wake-on-lan/","c3b"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/shrink-array/",component:p("/de/legacy/FAQ/shrink-array/","de3"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/terminal-access/",component:p("/de/legacy/FAQ/terminal-access/","1e7"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:p("/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","dad"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/transferring-files-within-the-unraid-server/",component:p("/de/legacy/FAQ/transferring-files-within-the-unraid-server/","6ff"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/understanding-smart-reports/",component:p("/de/legacy/FAQ/understanding-smart-reports/","869"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/legacy/FAQ/usb-flash-drive-preparation/",component:p("/de/legacy/FAQ/usb-flash-drive-preparation/","750"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/licensing-faq/",component:p("/de/unraid-os/faq/licensing-faq/","23a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/os-faq/",component:p("/de/unraid-os/faq/os-faq/","c13"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/redeem-license-activation-code/",component:p("/de/unraid-os/faq/redeem-license-activation-code/","0ed"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/faq/unraid-account/",component:p("/de/unraid-os/faq/unraid-account/","f78"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/guides/configuring-time-machine/",component:p("/de/unraid-os/guides/configuring-time-machine/","0da"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/guides/wol-setup-for-unraid/",component:p("/de/unraid-os/guides/wol-setup-for-unraid/","f73"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/additional-settings/",component:p("/de/unraid-os/manual/additional-settings/","137"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/applications/",component:p("/de/unraid-os/manual/applications/","45a"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/changing-the-flash-device/",component:p("/de/unraid-os/manual/changing-the-flash-device/","b64"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/docker-management/",component:p("/de/unraid-os/manual/docker-management/","08f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/getting-started/",component:p("/de/unraid-os/manual/getting-started/","4b5"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/getting-started/manual-install-method/",component:p("/de/unraid-os/manual/getting-started/manual-install-method/","0b2"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/multi-language/",component:p("/de/unraid-os/manual/multi-language/","92b"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/security/",component:p("/de/unraid-os/manual/security/","207"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/security/data-encryption/",component:p("/de/unraid-os/manual/security/data-encryption/","007"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/security/flash-drive/",component:p("/de/unraid-os/manual/security/flash-drive/","55b"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/security/good-practices/",component:p("/de/unraid-os/manual/security/good-practices/","590"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/security/secure-webgui-ssl/",component:p("/de/unraid-os/manual/security/secure-webgui-ssl/","64f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/security/vpn/",component:p("/de/unraid-os/manual/security/vpn/","34e"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/shares/",component:p("/de/unraid-os/manual/shares/","dea"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/shares/create-a-share/",component:p("/de/unraid-os/manual/shares/create-a-share/","141"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/shares/delete-a-share/",component:p("/de/unraid-os/manual/shares/delete-a-share/","28d"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/shares/disk-shares/",component:p("/de/unraid-os/manual/shares/disk-shares/","3d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/shares/network-access/",component:p("/de/unraid-os/manual/shares/network-access/","741"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/shares/user-shares/",component:p("/de/unraid-os/manual/shares/user-shares/","666"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/storage-management/",component:p("/de/unraid-os/manual/storage-management/","091"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/tools/",component:p("/de/unraid-os/manual/tools/","fe2"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/troubleshooting/",component:p("/de/unraid-os/manual/troubleshooting/","c54"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/upgrade-instructions/",component:p("/de/unraid-os/manual/upgrade-instructions/","807"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/users/",component:p("/de/unraid-os/manual/users/","58c"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/vm-management/",component:p("/de/unraid-os/manual/vm-management/","e14"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/vm-support/",component:p("/de/unraid-os/manual/vm-support/","c56"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/what-is-unraid/",component:p("/de/unraid-os/manual/what-is-unraid/","3d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/manual/zfs/placeholder/",component:p("/de/unraid-os/manual/zfs/placeholder/","461"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.0/",component:p("/de/unraid-os/release-notes/6.10.0/","cec"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.1/",component:p("/de/unraid-os/release-notes/6.10.1/","063"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.2/",component:p("/de/unraid-os/release-notes/6.10.2/","e5f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.10.3/",component:p("/de/unraid-os/release-notes/6.10.3/","daa"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.0/",component:p("/de/unraid-os/release-notes/6.11.0/","d75"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.1/",component:p("/de/unraid-os/release-notes/6.11.1/","eb5"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.2/",component:p("/de/unraid-os/release-notes/6.11.2/","327"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.3/",component:p("/de/unraid-os/release-notes/6.11.3/","f59"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.4/",component:p("/de/unraid-os/release-notes/6.11.4/","76b"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.11.5/",component:p("/de/unraid-os/release-notes/6.11.5/","458"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.0/",component:p("/de/unraid-os/release-notes/6.12.0/","c0d"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.1/",component:p("/de/unraid-os/release-notes/6.12.1/","3da"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.2/",component:p("/de/unraid-os/release-notes/6.12.2/","424"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.12.3/",component:p("/de/unraid-os/release-notes/6.12.3/","272"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.9.0/",component:p("/de/unraid-os/release-notes/6.9.0/","32f"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.9.1/",component:p("/de/unraid-os/release-notes/6.9.1/","c60"),exact:!0,sidebar:"unraidSidebar"},{path:"/de/unraid-os/release-notes/6.9.2/",component:p("/de/unraid-os/release-notes/6.9.2/","4cb"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:p("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/de/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/de/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/de/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/de/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/de/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/de/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/de/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/de/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/de/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/de/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/de/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/de/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/de/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/de/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/de/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/de/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/de/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/de/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/de/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/de/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/de/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/de/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/de/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/de/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/de/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/de/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/de/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/de/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/de/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/de/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/de/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/de/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/de/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/de/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/de/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/de/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/de/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/de/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/de/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/de/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/de/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/de/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/de/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/data-encryption","path":"/de/unraid-os/manual/security/data-encryption","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/flash-drive","path":"/de/unraid-os/manual/security/flash-drive","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/good-practices","path":"/de/unraid-os/manual/security/good-practices","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/secure-webgui-ssl","path":"/de/unraid-os/manual/security/secure-webgui-ssl","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/security","path":"/de/unraid-os/manual/security/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/vpn","path":"/de/unraid-os/manual/security/vpn","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/create-a-share","path":"/de/unraid-os/manual/shares/create-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/delete-a-share","path":"/de/unraid-os/manual/shares/delete-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/disk-shares","path":"/de/unraid-os/manual/shares/disk-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/network-access","path":"/de/unraid-os/manual/shares/network-access","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/shares","path":"/de/unraid-os/manual/shares/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/user-shares","path":"/de/unraid-os/manual/shares/user-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/de/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/de/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/de/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/de/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/de/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/de/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/de/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/de/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/de/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/de/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/de/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/de/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/de/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/de/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/de/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/de/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/de/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/de/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/de/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/de/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/de/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/de/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/de/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/de/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/de/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/de/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/de/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/de/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/de/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/de/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/de/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/de/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/de/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/de/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/de/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/de/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/de/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/de/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/de/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"de","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=p||f;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=a.forwardRef(p)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>p,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return l(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(a),f=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var fe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],p=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:f,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(8259);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function pt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function ft(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(pt,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(ft,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},f,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},p)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{c.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(8259),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8259:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>p,hI:()=>x,jA:()=>h,lO:()=>k,oz:()=>S,s1:()=>w,vY:()=>E,xz:()=>f});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432),c=n(3609),d=n(9003);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l,_X:()=>s});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},3609:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d,o5:()=>p});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+p(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),f(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===p(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[p(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(p(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(p(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=l[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var p=s(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var P=_[0],N=x.slice(0,T),O=x.slice(T+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),u(t,D,C),S=s(t,D,new a(p,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),C>1){var M={cause:p+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),a.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),f=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),u=l.alias,d=Array.isArray(u)?u[0]:u,f=e.languages[d];if(!f)continue;i[1]=c(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),C=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Te&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=ft(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<pt.indexOf(e))return e=ft(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=ln(dn),fn=a({},dn,{view:0,detail:0}),mn=ln(fn),hn=a({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},fn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},fn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=ln(a({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Pt.get(e);if(void 0!==l){var s=pn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Pn;break;case Tt:case At:case Lt:s=yn;break;case Rt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=je(m,p))&&c.push(Dr(m,h,f)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:ra(s),f=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=f,h=null,ta(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(p=u,m=0,f=c=s;f;f=Fr(f))m++;for(f=0,h=p;h;h=Fr(h))f++;for(;0<m-f;)c=Fr(c),m--;for(;0<f-m;)p=Fr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Fr(c),p=Fr(p)}c=null}else c=null;null!==s&&Br(i,l,s,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=je(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=je(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},pa=sa(da),fa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(fa),ua(pa)}function va(e,t,n){if(pa.current!==da)throw Error(i(168));ca(pa,t),ca(fa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=pa.current,ca(pa,e),ca(fa,fa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(fa),ua(pa),ca(pa,e)):ua(fa),ca(fa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ca(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fo(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=c:p.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(p=o.baseState,l=0,d=c=u=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=a({},p,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=f,u=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=p),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=p}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:pa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:pa.current,a.context=ha(e,o)),fo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=p(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),Po=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=fe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function fi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return pi(a,t,n)})),c=u[1],d=u[0];u=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Jo;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=fs(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=pi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return fi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=ps(),a=fs(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:pa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:pa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var p=t.memoizedState;i.state=p,fo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||fa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:pa.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&wo(t,i,r,s),io=!1,p=t.memoizedState,i.state=p,fo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||fa.current||io?("function"==typeof f&&(go(t,n,f,r),m=t.memoizedState),(u=io||vo(t,n,u,r,p,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(fa),ua(pa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(fa),ua(pa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function fl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function ps(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=jt(12,ss):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Bl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=ys.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Cs();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=jl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Ft(e,t)))}else n=Ts(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=jl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ua(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(fa),ua(pa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Pl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(u),p.updateQueue=b}else g.add(u);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),p=i;do{switch(p.tag){case 3:o=s,p.flags|=4096,t&=-t,p.lanes|=t,po(p,pl(0,o,t));break e;case 1:o=s;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,po(p,fl(p,o,t));break e}}p=p.return}while(null!==p)}Ps(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Pi,null===e?Pi:e}function Ts(e,t){var n=Nl;Nl|=16;var r=Cs();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Rl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Ta();)Rs(Il)}function Rs(e){var t=Ql(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ps(e):Il=t,Pl.current=null}function Ps(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,zr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(p=d+o),g!==u||0!==c&&3!==g.nodeType||(f=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(p=d),b===u&&++h===c&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Is()}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=fr(y,S),o=fr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Wl=Wl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function js(e,t,n){co(e,t=pl(0,t=ul(n,t),1)),t=ps(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=fl(n,e=ul(t,e),1);if(co(n,a),a=ps(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gs(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Ws(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=ps(),l=fs(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,pa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),fo(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!fa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,ps()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,ps()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,Pe,Ds,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,p,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=f!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(c||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=p(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,l.Z)({},P,f));var N=(0,l.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},a=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/de/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"Schlie\xdfen","theme.BackToTopButton.buttonAriaLabel":"Zur\xfcck nach oben scrollen","theme.CodeBlock.copied":"Kopiert","theme.CodeBlock.copy":"Kopieren","theme.CodeBlock.copyButtonAriaLabel":"In die Zwischenablage kopieren","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"Umschalten der Seitenleiste mit einklappbarer Kategorie \'{label}\'","theme.ErrorPageContent.title":"Die Seite ist abgest\xfcrzt.","theme.ErrorPageContent.tryAgain":"Nochmal versuchen","theme.NavBar.navAriaLabel":"Main","theme.NotFound.p1":"Wir konnten nicht finden, wonach Sie gesucht haben.","theme.NotFound.p2":"Bitte kontaktieren Sie den Besitzer der Seite, die Sie mit der urspr\xfcnglichen URL verlinkt hat, und teilen Sie ihm mit, dass der Link nicht mehr funktioniert.","theme.NotFound.title":"Seite nicht gefunden","theme.TOCCollapsible.toggleButtonLabel":"Auf dieser Seite","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.blog.archive.description":"Archiv","theme.blog.archive.title":"Archiv","theme.blog.paginator.navAriaLabel":"Navigation der Blog-Listenseite","theme.blog.paginator.newerEntries":"Neuere Eintr\xe4ge","theme.blog.paginator.olderEntries":"\xc4ltere Eintr\xe4ge","theme.blog.post.paginator.navAriaLabel":"Blog Post Seiten Navigation","theme.blog.post.paginator.newerPost":"Neuer Post","theme.blog.post.paginator.olderPost":"\xc4lterer Post","theme.blog.post.plurals":"Ein Post|{count} Posts","theme.blog.post.readMore":"Mehr lesen","theme.blog.post.readMoreLabel":"Mehr lesen \xfcber {title}","theme.blog.post.readingTime.plurals":"Eine Minute Lesezeit|{readingTime} Minuten Lesezeit","theme.blog.sidebar.navAriaLabel":"Navigation der letzten Beitr\xe4ge im Blog","theme.blog.tagTitle":"{nPosts} getaggt mit \\"{tagName}\\"","theme.colorToggle.ariaLabel":"Umschalten zwischen dunkler und heller Ansicht (momentan {mode})","theme.colorToggle.ariaLabel.mode.dark":"dunkler Modus","theme.colorToggle.ariaLabel.mode.light":"heller Modus","theme.common.editThisPage":"Diese Seite bearbeiten","theme.common.headingLinkTitle":"Direkter Link zur {heading}","theme.common.skipToMainContent":"Zum Hauptinhalt springen","theme.docs.DocCard.categoryDescription":"{count} Eintr\xe4ge","theme.docs.breadcrumbs.home":"Home page","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"Dokumentation Seiten","theme.docs.paginator.next":"Weiter","theme.docs.paginator.previous":"Zur\xfcck","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.docs.sidebar.collapseButtonAriaLabel":"Seitenleiste einklappen","theme.docs.sidebar.collapseButtonTitle":"Seitenleiste einklappen","theme.docs.sidebar.expandButtonAriaLabel":"Seitenleiste ausklappen","theme.docs.sidebar.expandButtonTitle":"Seitenleiste ausklappen","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.docs.tagDocListPageTitle":"{nDocsTagged} mit \\"{tagName}\\"","theme.docs.tagDocListPageTitle.nDocsTagged":"Ein doc getaggt|{count} docs getaggt","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.latestVersionLinkLabel":"letzte Version","theme.docs.versions.latestVersionSuggestionLabel":"F\xfcr die aktuellste Dokumentation bitte auf {latestVersionLink} ({versionLabel}) gehen.","theme.docs.versions.unmaintainedVersionLabel":"Das ist die Dokumentation f\xfcr {siteTitle} {versionLabel} und wird nicht weiter gewartet.","theme.docs.versions.unreleasedVersionLabel":"Das ist die unver\xf6ffentlichte Dokumentation f\xfcr {siteTitle} {versionLabel}.","theme.lastUpdated.atDate":" am {date}","theme.lastUpdated.byUser":" von {user}","theme.lastUpdated.lastUpdatedAtBy":"Letztes Update{atDate}{byUser}","theme.navbar.mobileLanguageDropdown.label":"Sprachen","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Zur\xfcck zum Hauptmen\xfc","theme.navbar.mobileVersionsDropdown.label":"Versionen","theme.tags.tagsListLabel":"Tags:","theme.tags.tagsPageLink":"Alle Tags anzeigen","theme.tags.tagsPageTitle":"Tags","theme.SearchBar.label":"Suche","theme.SearchBar.seeAll":"Alle {count} Ergebnisse anzeigen","theme.SearchModal.errorScreen.helpText":"You might want to check your network connection.","theme.SearchModal.errorScreen.titleText":"Unable to fetch results","theme.SearchModal.footer.closeKeyAriaLabel":"Escape key","theme.SearchModal.footer.closeText":"to close","theme.SearchModal.footer.navigateDownKeyAriaLabel":"Arrow down","theme.SearchModal.footer.navigateText":"to navigate","theme.SearchModal.footer.navigateUpKeyAriaLabel":"Arrow up","theme.SearchModal.footer.searchByText":"Search by","theme.SearchModal.footer.selectKeyAriaLabel":"Enter key","theme.SearchModal.footer.selectText":"to select","theme.SearchModal.noResultsScreen.noResultsText":"No results for","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"Let us know.","theme.SearchModal.noResultsScreen.reportMissingResultsText":"Believe this query should return results?","theme.SearchModal.noResultsScreen.suggestedQueryText":"Try searching for","theme.SearchModal.placeholder":"Search docs","theme.SearchModal.searchBox.cancelButtonText":"Cancel","theme.SearchModal.searchBox.resetButtonTitle":"Clear the query","theme.SearchModal.startScreen.favoriteSearchesTitle":"Favorite","theme.SearchModal.startScreen.noRecentSearchesText":"No recent searches","theme.SearchModal.startScreen.recentSearchesTitle":"Recent","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"Remove this search from favorites","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"Remove this search from history","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"Save this search","theme.SearchPage.algoliaLabel":"Suche von Algolia","theme.SearchPage.documentsFound.plurals":"Ein Dokument gefunden|{count} Dokumente gefunden","theme.SearchPage.emptyResultsTitle":"Suche in der Dokumentation","theme.SearchPage.existingResultsTitle":"Suchergebnisse f\xfcr \\"{query}\\"","theme.SearchPage.fetchingNewResults":"Neue Ergebnisse abrufen...","theme.SearchPage.inputLabel":"Suche","theme.SearchPage.inputPlaceholder":"Geben Sie hier Ihre Suche ein","theme.SearchPage.noResultsText":"Es wurden keine Ergebnisse gefunden","theme.IdealImageMessage.404error":"404. Bild nicht gefunden.","theme.IdealImageMessage.error":"Fehler. Zum neu laden klicken","theme.IdealImageMessage.load":"Zum Laden klicken {sizeMessage}","theme.IdealImageMessage.loading":"Wird geladen...","theme.IdealImageMessage.offline":"Browser ist offline. Bild nicht geladen"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/de/search/-464":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/de/-fab":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/de/-caf":{"__comp":"17896441","content":"6e7e0dfd"},"/de/category/contribute/-95d":{"__comp":"14eb3368","categoryGeneratedIndex":"961882ba"},"/de/category/faq/-d84":{"__comp":"14eb3368","categoryGeneratedIndex":"6752b32a"},"/de/category/getting-started/-fbc":{"__comp":"14eb3368","categoryGeneratedIndex":"595ec535"},"/de/category/guides/-fbf":{"__comp":"14eb3368","categoryGeneratedIndex":"75efc0e4"},"/de/category/legacy-documentation/-347":{"__comp":"14eb3368","categoryGeneratedIndex":"5c2ee5c0"},"/de/category/manual/-d3a":{"__comp":"14eb3368","categoryGeneratedIndex":"57b01c12"},"/de/category/release-notes/-215":{"__comp":"14eb3368","categoryGeneratedIndex":"d2515c17"},"/de/category/tutorial---basics/-621":{"__comp":"14eb3368","categoryGeneratedIndex":"9379555f"},"/de/category/tutorial---extras/-e09":{"__comp":"14eb3368","categoryGeneratedIndex":"d7d2fc80"},"/de/category/unraid-connect/-3f1":{"__comp":"14eb3368","categoryGeneratedIndex":"7ab24f84"},"/de/category/unraid-os/-a3f":{"__comp":"14eb3368","categoryGeneratedIndex":"2041380e"},"/de/category/zfs/-c96":{"__comp":"14eb3368","categoryGeneratedIndex":"1942de99"},"/de/connect/about/-b8a":{"__comp":"17896441","content":"bd5544b1"},"/de/connect/help/-e09":{"__comp":"17896441","content":"54fe4512"},"/de/connect/remote-access/-7ba":{"__comp":"17896441","content":"ba2ffba3"},"/de/contribute-to-docs/intro/-5c1":{"__comp":"17896441","content":"9c8e01a5"},"/de/contribute-to-docs/tutorial-basics/congratulations/-c59":{"__comp":"17896441","content":"06cd2fd6"},"/de/contribute-to-docs/tutorial-basics/create-a-blog-post/-f12":{"__comp":"17896441","content":"e62fd64a"},"/de/contribute-to-docs/tutorial-basics/create-a-document/-8ae":{"__comp":"17896441","content":"73c1707a"},"/de/contribute-to-docs/tutorial-basics/create-a-page/-aeb":{"__comp":"17896441","content":"6937eda1"},"/de/contribute-to-docs/tutorial-basics/markdown-features/-3df":{"__comp":"17896441","content":"fd47d4b7"},"/de/contribute-to-docs/tutorial-extras/manage-docs-versions/-f1c":{"__comp":"17896441","content":"0993abe5"},"/de/contribute-to-docs/tutorial-extras/translate-your-site/-dbe":{"__comp":"17896441","content":"f568d666"},"/de/legacy/Articles/dual-boot-unraid-and-windows/-f34":{"__comp":"17896441","content":"c5b893f4"},"/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/-f7d":{"__comp":"17896441","content":"69f90a2c"},"/de/legacy/Articles/upgrading-to-unraid-6/-a07":{"__comp":"17896441","content":"39304afb"},"/de/legacy/FAQ/cache-disk/-c5f":{"__comp":"17896441","content":"88a1b883"},"/de/legacy/FAQ/check-disk-filesystems/-36a":{"__comp":"17896441","content":"5034631f"},"/de/legacy/FAQ/check-harddrive-speed/-a9f":{"__comp":"17896441","content":"039cd775"},"/de/legacy/FAQ/console/-146":{"__comp":"17896441","content":"2dd62328"},"/de/legacy/FAQ/parity-swap-procedure/-d95":{"__comp":"17896441","content":"f2577e9f"},"/de/legacy/FAQ/Parity/-c62":{"__comp":"17896441","content":"54f4a7b0"},"/de/legacy/FAQ/replacing-a-data-drive/-c40":{"__comp":"17896441","content":"74287a25"},"/de/legacy/FAQ/replacing-multiple-data-drives/-01c":{"__comp":"17896441","content":"d441ea6d"},"/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-e61":{"__comp":"17896441","content":"6618ba01"},"/de/legacy/FAQ/setup-sleep-and-wake-on-lan/-c3b":{"__comp":"17896441","content":"036bad42"},"/de/legacy/FAQ/shrink-array/-de3":{"__comp":"17896441","content":"9d093beb"},"/de/legacy/FAQ/terminal-access/-1e7":{"__comp":"17896441","content":"e624f8a6"},"/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-dad":{"__comp":"17896441","content":"67a4e8b6"},"/de/legacy/FAQ/transferring-files-within-the-unraid-server/-6ff":{"__comp":"17896441","content":"38c3fa26"},"/de/legacy/FAQ/understanding-smart-reports/-869":{"__comp":"17896441","content":"dec1eefe"},"/de/legacy/FAQ/usb-flash-drive-preparation/-750":{"__comp":"17896441","content":"79722de7"},"/de/unraid-os/faq/licensing-faq/-23a":{"__comp":"17896441","content":"26113f5d"},"/de/unraid-os/faq/os-faq/-c13":{"__comp":"17896441","content":"81b28c9f"},"/de/unraid-os/faq/redeem-license-activation-code/-0ed":{"__comp":"17896441","content":"e8c37b9f"},"/de/unraid-os/faq/unraid-account/-f78":{"__comp":"17896441","content":"5565d3f9"},"/de/unraid-os/guides/configuring-time-machine/-0da":{"__comp":"17896441","content":"f9ab548b"},"/de/unraid-os/guides/wol-setup-for-unraid/-f73":{"__comp":"17896441","content":"0a18b2d8"},"/de/unraid-os/manual/additional-settings/-137":{"__comp":"17896441","content":"1942e1e1"},"/de/unraid-os/manual/applications/-45a":{"__comp":"17896441","content":"7b378cd1"},"/de/unraid-os/manual/changing-the-flash-device/-b64":{"__comp":"17896441","content":"0ca4c500"},"/de/unraid-os/manual/docker-management/-08f":{"__comp":"17896441","content":"4caccc33"},"/de/unraid-os/manual/getting-started/-4b5":{"__comp":"17896441","content":"b13723e0"},"/de/unraid-os/manual/getting-started/manual-install-method/-0b2":{"__comp":"17896441","content":"18ade0c5"},"/de/unraid-os/manual/multi-language/-92b":{"__comp":"17896441","content":"6b42df2b"},"/de/unraid-os/manual/security/-207":{"__comp":"17896441","content":"277cf690"},"/de/unraid-os/manual/security/data-encryption/-007":{"__comp":"17896441","content":"fee3ac30"},"/de/unraid-os/manual/security/flash-drive/-55b":{"__comp":"17896441","content":"10869db1"},"/de/unraid-os/manual/security/good-practices/-590":{"__comp":"17896441","content":"313b9001"},"/de/unraid-os/manual/security/secure-webgui-ssl/-64f":{"__comp":"17896441","content":"0a1bdeaa"},"/de/unraid-os/manual/security/vpn/-34e":{"__comp":"17896441","content":"1c36a847"},"/de/unraid-os/manual/shares/-dea":{"__comp":"17896441","content":"aed38285"},"/de/unraid-os/manual/shares/create-a-share/-141":{"__comp":"17896441","content":"8a89048a"},"/de/unraid-os/manual/shares/delete-a-share/-28d":{"__comp":"17896441","content":"9d23aec8"},"/de/unraid-os/manual/shares/disk-shares/-3d8":{"__comp":"17896441","content":"5f60a020"},"/de/unraid-os/manual/shares/network-access/-741":{"__comp":"17896441","content":"f7b0b541"},"/de/unraid-os/manual/shares/user-shares/-666":{"__comp":"17896441","content":"8944547a"},"/de/unraid-os/manual/storage-management/-091":{"__comp":"17896441","content":"55054ac6"},"/de/unraid-os/manual/tools/-fe2":{"__comp":"17896441","content":"7c081f1b"},"/de/unraid-os/manual/troubleshooting/-c54":{"__comp":"17896441","content":"104dd0b4"},"/de/unraid-os/manual/upgrade-instructions/-807":{"__comp":"17896441","content":"7436a388"},"/de/unraid-os/manual/users/-58c":{"__comp":"17896441","content":"40147886"},"/de/unraid-os/manual/vm-management/-e14":{"__comp":"17896441","content":"3d3d1f9d"},"/de/unraid-os/manual/vm-support/-c56":{"__comp":"17896441","content":"88941ca4"},"/de/unraid-os/manual/what-is-unraid/-3d8":{"__comp":"17896441","content":"f0844d9f"},"/de/unraid-os/manual/zfs/placeholder/-461":{"__comp":"17896441","content":"5df36282"},"/de/unraid-os/release-notes/6.10.0/-cec":{"__comp":"17896441","content":"798531cc"},"/de/unraid-os/release-notes/6.10.1/-063":{"__comp":"17896441","content":"b3a9d7ab"},"/de/unraid-os/release-notes/6.10.2/-e5f":{"__comp":"17896441","content":"caa9baff"},"/de/unraid-os/release-notes/6.10.3/-daa":{"__comp":"17896441","content":"54219b20"},"/de/unraid-os/release-notes/6.11.0/-d75":{"__comp":"17896441","content":"096fb135"},"/de/unraid-os/release-notes/6.11.1/-eb5":{"__comp":"17896441","content":"6b97f0f9"},"/de/unraid-os/release-notes/6.11.2/-327":{"__comp":"17896441","content":"a0c90937"},"/de/unraid-os/release-notes/6.11.3/-f59":{"__comp":"17896441","content":"d31ea43a"},"/de/unraid-os/release-notes/6.11.4/-76b":{"__comp":"17896441","content":"c8335b6e"},"/de/unraid-os/release-notes/6.11.5/-458":{"__comp":"17896441","content":"ae93aaeb"},"/de/unraid-os/release-notes/6.12.0/-c0d":{"__comp":"17896441","content":"e1256ee6"},"/de/unraid-os/release-notes/6.12.1/-3da":{"__comp":"17896441","content":"98a2ad9f"},"/de/unraid-os/release-notes/6.12.2/-424":{"__comp":"17896441","content":"0ba4e87b"},"/de/unraid-os/release-notes/6.12.3/-272":{"__comp":"17896441","content":"7a2d53ea"},"/de/unraid-os/release-notes/6.9.0/-32f":{"__comp":"17896441","content":"06988216"},"/de/unraid-os/release-notes/6.9.1/-c60":{"__comp":"17896441","content":"49332cbb"},"/de/unraid-os/release-notes/6.9.2/-4cb":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/de/assets/js/main.76054a9f.js.LICENSE.txt b/de/assets/js/main.85bcca4b.js.LICENSE.txt similarity index 100% rename from de/assets/js/main.76054a9f.js.LICENSE.txt rename to de/assets/js/main.85bcca4b.js.LICENSE.txt diff --git a/de/assets/js/runtime~main.4d0a043d.js b/de/assets/js/runtime~main.4d0a043d.js deleted file mode 100644 index 4a313963a..000000000 --- a/de/assets/js/runtime~main.4d0a043d.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,d,f,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i<e.length;i++){d=e[i][0],f=e[i][1],b=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&b||c>=b)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,b<c&&(c=b));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",79:"90126b70",224:"6752b32a",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",563:"6618ba01",582:"961882ba",879:"d441ea6d",909:"b3a9d7ab",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1402:"75efc0e4",1698:"49332cbb",1791:"5df36282",2121:"6e7e0dfd",2197:"935f2afb",2269:"54fe4512",2677:"d2515c17",2697:"f0844d9f",2926:"54f4a7b0",3065:"57b01c12",3203:"67a4e8b6",3214:"5c2ee5c0",3659:"6e6b2999",3923:"6937eda1",3967:"2041380e",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5602:"4caccc33",5832:"caa9baff",5833:"7a2d53ea",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6575:"d7d2fc80",6596:"dec1eefe",6617:"81b28c9f",6848:"7ab24f84",6852:"595ec535",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7286:"1942de99",7317:"73c1707a",7328:"a78d85c7",7415:"ae93aaeb",7436:"e8c37b9f",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7748:"798531cc",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8781:"9379555f",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368"}[e]||e)+"."+{53:"053494f9",79:"6124f2a7",224:"e53325c0",322:"c475c769",335:"fcbe2bca",347:"eaf6a066",496:"0417b128",563:"c40cbc06",582:"ec6395ba",879:"57183119",909:"fcc954d5",1036:"4df077fc",1317:"b8ff7e1c",1367:"04331944",1377:"a2c6993a",1402:"b65a1f8c",1698:"75305498",1791:"85c125cf",2121:"938feb21",2153:"6676c42e",2197:"464392bf",2269:"ff448cad",2677:"86d32b97",2697:"da6a1766",2926:"334c870e",3065:"f203cf55",3203:"de4f84db",3214:"393d0a67",3659:"1519feaf",3923:"1df79fdc",3967:"40feb16f",4077:"52f9a455",4149:"35163a43",4248:"f946246d",4262:"c30f249f",4321:"aa6fca37",4399:"5163f9d7",4472:"e9efe345",4567:"ea0ac449",4579:"19e5e998",4618:"88648da9",4622:"491e5431",4688:"d859710b",4710:"cc82ecc5",4813:"634ef45c",5069:"5b7300fe",5078:"01c67c8e",5236:"adc8988a",5275:"1e6ab131",5602:"55a7fea4",5832:"0521c2a9",5833:"cffd62a1",6279:"d4d445f1",6299:"081db28c",6305:"93afb44d",6385:"9bf402a8",6461:"826fed2f",6575:"770c917d",6596:"2de1a76e",6617:"1aa3e404",6848:"8e8076a4",6852:"d6693b74",6945:"e6ca558a",7044:"150721df",7054:"35190afa",7124:"3e51099a",7286:"67c45ed3",7317:"4a435a50",7328:"6182cd19",7415:"a75ed838",7436:"4daaab11",7537:"15a9a5e7",7570:"a0a72898",7603:"5123099c",7748:"01db7adb",7918:"5d44835b",7920:"2a186628",8078:"5d67960e",8145:"00444ba4",8298:"fa7f204e",8781:"fbe699b1",8868:"25d09c37",8882:"40ad9dcc",8894:"361766b0",8925:"f1c30669",9114:"9c5305de",9185:"bf7e40ae",9334:"dadfb5a6",9347:"660fd3ce",9401:"960cbe8c",9514:"010a8141",9554:"2037ef07",9724:"62312122",9725:"9922385a",9817:"3f60616a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="docs:",r.l=(e,a,d,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+d){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+d),t.src=e),f[e]=[a];var l=(a,d)=>{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/de/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","90126b70":"79","6752b32a":"224","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","6618ba01":"563","961882ba":"582",d441ea6d:"879",b3a9d7ab:"909","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","75efc0e4":"1402","49332cbb":"1698","5df36282":"1791","6e7e0dfd":"2121","935f2afb":"2197","54fe4512":"2269",d2515c17:"2677",f0844d9f:"2697","54f4a7b0":"2926","57b01c12":"3065","67a4e8b6":"3203","5c2ee5c0":"3214","6e6b2999":"3659","6937eda1":"3923","2041380e":"3967","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","4caccc33":"5602",caa9baff:"5832","7a2d53ea":"5833","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461",d7d2fc80:"6575",dec1eefe:"6596","81b28c9f":"6617","7ab24f84":"6848","595ec535":"6852","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","1942de99":"7286","73c1707a":"7317",a78d85c7:"7328",ae93aaeb:"7415",e8c37b9f:"7436","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","798531cc":"7748","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298","9379555f":"8781","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((d,b)=>f=e[a]=[d,b]));d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,(d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,c=d[0],t=d[1],o=d[2],n=0;if(c.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n<c.length;n++)b=c[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},d=self.webpackChunkdocs=self.webpackChunkdocs||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})(); \ No newline at end of file diff --git a/de/assets/js/runtime~main.7fb1f846.js b/de/assets/js/runtime~main.7fb1f846.js new file mode 100644 index 000000000..7ca526336 --- /dev/null +++ b/de/assets/js/runtime~main.7fb1f846.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,d,b,f,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,b,f)=>{if(!d){var c=1/0;for(i=0;i<e.length;i++){d=e[i][0],b=e[i][1],f=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&f||c>=f)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,f<c&&(c=f));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[d,b,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(f,c),f},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",224:"6752b32a",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",559:"313b9001",563:"6618ba01",582:"961882ba",879:"d441ea6d",909:"b3a9d7ab",967:"0a1bdeaa",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1402:"75efc0e4",1698:"49332cbb",1754:"9d23aec8",1770:"8a89048a",1791:"5df36282",1932:"aed38285",2121:"6e7e0dfd",2197:"935f2afb",2269:"54fe4512",2454:"f7b0b541",2677:"d2515c17",2697:"f0844d9f",2926:"54f4a7b0",3065:"57b01c12",3203:"67a4e8b6",3214:"5c2ee5c0",3563:"10869db1",3659:"6e6b2999",3923:"6937eda1",3967:"2041380e",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",4863:"5f60a020",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5289:"1c36a847",5450:"8944547a",5602:"4caccc33",5832:"caa9baff",5833:"7a2d53ea",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6575:"d7d2fc80",6596:"dec1eefe",6617:"81b28c9f",6848:"7ab24f84",6852:"595ec535",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7286:"1942de99",7317:"73c1707a",7328:"fee3ac30",7415:"ae93aaeb",7436:"e8c37b9f",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7748:"798531cc",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8781:"9379555f",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368",9821:"277cf690"}[e]||e)+"."+{53:"c8dadadd",224:"e53325c0",322:"c475c769",335:"fcbe2bca",347:"eaf6a066",496:"0417b128",559:"cdf21bf4",563:"c40cbc06",582:"ec6395ba",879:"57183119",909:"fcc954d5",967:"56c24c5c",1036:"4df077fc",1317:"2eb0ca01",1367:"2086cc56",1377:"a2c6993a",1402:"b65a1f8c",1698:"75305498",1754:"59a08b27",1770:"f67f006d",1791:"85c125cf",1932:"c2df1fb8",2121:"938feb21",2153:"6676c42e",2197:"133a30ef",2269:"ff448cad",2454:"aebce8e6",2677:"86d32b97",2697:"f2d9f43d",2926:"334c870e",3065:"6146938b",3203:"de4f84db",3214:"393d0a67",3563:"88f17a27",3659:"1519feaf",3923:"1df79fdc",3967:"40feb16f",4077:"52f9a455",4149:"35163a43",4248:"f946246d",4262:"4c6e2a66",4321:"402517ff",4399:"5163f9d7",4472:"e9efe345",4567:"4a95c8fd",4579:"19e5e998",4618:"88648da9",4622:"491e5431",4688:"d859710b",4710:"cc82ecc5",4813:"e13c53a4",4863:"d4885282",5069:"293f9388",5078:"01c67c8e",5236:"adc8988a",5275:"1e6ab131",5289:"fd007298",5450:"2fa0db38",5602:"e7587a57",5832:"0521c2a9",5833:"cffd62a1",6279:"d4d445f1",6299:"081db28c",6305:"93afb44d",6385:"9bf402a8",6461:"826fed2f",6575:"770c917d",6596:"2de1a76e",6617:"4d5b544d",6848:"8e8076a4",6852:"d6693b74",6945:"e6ca558a",7044:"6c8e10cf",7054:"35190afa",7124:"3e51099a",7286:"67c45ed3",7317:"4a435a50",7328:"87c6d149",7415:"a75ed838",7436:"3fc34400",7537:"1ee0bde6",7570:"a0a72898",7603:"5123099c",7748:"50fb77d7",7918:"63195e72",7920:"2a186628",8078:"5d67960e",8145:"00444ba4",8298:"fa7f204e",8781:"fbe699b1",8868:"25d09c37",8882:"40ad9dcc",8894:"361766b0",8925:"f1c30669",9114:"9c5305de",9185:"bf7e40ae",9334:"dadfb5a6",9347:"660fd3ce",9401:"960cbe8c",9514:"fe92450b",9554:"2037ef07",9724:"62312122",9725:"3287b8ea",9817:"64ec88ed",9821:"17346898"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="docs:",r.l=(e,a,d,c)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==f+d){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",f+d),t.src=e),b[e]=[a];var l=(a,d)=>{t.onerror=t.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/de/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","6752b32a":"224","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","313b9001":"559","6618ba01":"563","961882ba":"582",d441ea6d:"879",b3a9d7ab:"909","0a1bdeaa":"967","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","75efc0e4":"1402","49332cbb":"1698","9d23aec8":"1754","8a89048a":"1770","5df36282":"1791",aed38285:"1932","6e7e0dfd":"2121","935f2afb":"2197","54fe4512":"2269",f7b0b541:"2454",d2515c17:"2677",f0844d9f:"2697","54f4a7b0":"2926","57b01c12":"3065","67a4e8b6":"3203","5c2ee5c0":"3214","10869db1":"3563","6e6b2999":"3659","6937eda1":"3923","2041380e":"3967","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813","5f60a020":"4863","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","1c36a847":"5289","8944547a":"5450","4caccc33":"5602",caa9baff:"5832","7a2d53ea":"5833","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461",d7d2fc80:"6575",dec1eefe:"6596","81b28c9f":"6617","7ab24f84":"6848","595ec535":"6852","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","1942de99":"7286","73c1707a":"7317",fee3ac30:"7328",ae93aaeb:"7415",e8c37b9f:"7436","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","798531cc":"7748","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298","9379555f":"8781","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817","277cf690":"9821"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,d)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)d.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var f=new Promise(((d,f)=>b=e[a]=[d,f]));d.push(b[2]=f);var c=r.p+r.u(a),t=new Error;r.l(c,(d=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+c+")",t.name="ChunkLoadError",t.type=f,t.request=c,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var b,f,c=d[0],t=d[1],o=d[2],n=0;if(c.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(d);n<c.length;n++)f=c[n],r.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return r.O(i)},d=self.webpackChunkdocs=self.webpackChunkdocs||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})(); \ No newline at end of file diff --git a/de/category/contribute/index.html b/de/category/contribute/index.html index 75f147c39..dadbae7fd 100644 --- a/de/category/contribute/index.html +++ b/de/category/contribute/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contribute</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Contribute</h1><p>How to contribute to the Unraid Docs</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/intro/"><h2 class="text--truncate cardTitle_rnsV" title="Contributing to Unraid Documentation">📄️<!-- --> <!-- -->Contributing to Unraid Documentation</h2><p class="text--truncate cardDescription_PWke" title="Contribute to a Docs Page that already Exists">Contribute to a Docs Page that already Exists</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/tutorial---basics/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Basics">🗃️<!-- --> <!-- -->Tutorial - Basics</h2><p class="text--truncate cardDescription_PWke" title="5 Einträge">5 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/tutorial---extras/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Extras">🗃️<!-- --> <!-- -->Tutorial - Extras</h2><p class="text--truncate cardDescription_PWke" title="2 Einträge">2 Einträge</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/faq/index.html b/de/category/faq/index.html index ec82f5bf1..5a671a3dc 100644 --- a/de/category/faq/index.html +++ b/de/category/faq/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/redeem-license-activation-code/">Redeem License Activation Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">FAQ</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">FAQ</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/faq/licensing-faq/"><h2 class="text--truncate cardTitle_rnsV" title="Licensing">📄️<!-- --> <!-- -->Licensing</h2><p class="text--truncate cardDescription_PWke" title="Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/faq/os-faq/"><h2 class="text--truncate cardTitle_rnsV" title="OS">📄️<!-- --> <!-- -->OS</h2><p class="text--truncate cardDescription_PWke" title="I Need Help with a Build / System Configuration. Where do I go?">I Need Help with a Build / System Configuration. Where do I go?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/faq/redeem-license-activation-code/"><h2 class="text--truncate cardTitle_rnsV" title="Redeem License Activation Code">📄️<!-- --> <!-- -->Redeem License Activation Code</h2><p class="text--truncate cardDescription_PWke" title="First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.">First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/faq/unraid-account/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Account">📄️<!-- --> <!-- -->Unraid Account</h2><p class="text--truncate cardDescription_PWke" title="What is an Unraid.net Account?">What is an Unraid.net Account?</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/release-notes/6.9.2/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">6.9.2</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Licensing</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/getting-started/index.html b/de/category/getting-started/index.html index 99fd8d37c..4d8bf8974 100644 --- a/de/category/getting-started/index.html +++ b/de/category/getting-started/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/guides/index.html b/de/category/guides/index.html index ab5dfd4ff..e95b426f3 100644 --- a/de/category/guides/index.html +++ b/de/category/guides/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Guides</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Guides</h1><p>Unraid OS Guides</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/guides/configuring-time-machine/"><h2 class="text--truncate cardTitle_rnsV" title="Apple Time Machine">📄️<!-- --> <!-- -->Apple Time Machine</h2><p class="text--truncate cardDescription_PWke" title="Guide: Setting up a Time Machine Share on your Unraid Server">Guide: Setting up a Time Machine Share on your Unraid Server</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/guides/wol-setup-for-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="How To Setup Wake On LAN (WOL) for UNRAID">📄️<!-- --> <!-- -->How To Setup Wake On LAN (WOL) for UNRAID</h2><p class="text--truncate cardDescription_PWke" title="(assuming onboard NIC and WOL activated in motherboard's BIOS)">(assuming onboard NIC and WOL activated in motherboard's BIOS)</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Unraid Account</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Apple Time Machine</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/legacy-documentation/index.html b/de/category/legacy-documentation/index.html index e10917b95..58b6c01e0 100644 --- a/de/category/legacy-documentation/index.html +++ b/de/category/legacy-documentation/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/de/legacy/Articles/dual-boot-unraid-and-windows/">Articles</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/de/legacy/FAQ/Parity/">FAQ</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Legacy Documentation</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Legacy Documentation</h1><p>Unraid OS Documentation ported from legacy.wiki.unraid.net</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/legacy/Articles/dual-boot-unraid-and-windows/"><h2 class="text--truncate cardTitle_rnsV" title="Articles">🗃️<!-- --> <!-- -->Articles</h2><p class="text--truncate cardDescription_PWke" title="3 Einträge">3 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/legacy/FAQ/Parity/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="16 Einträge">16 Einträge</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/connect/remote-access/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Remote Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/manual/index.html b/de/category/manual/index.html index 119544f72..8a0a8c017 100644 --- a/de/category/manual/index.html +++ b/de/category/manual/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">📄️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="Once you have assigned some devices to Unraid and started the array, you">Once you have assigned some devices to Unraid and started the array, you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 Einträge">2 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">📄️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="This section covers various security-related aspects of Unraid">This section covers various security-related aspects of Unraid</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 Einträge">1 Einträge</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/what-is-unraid/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Overview</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">🗃️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="5 Einträge">5 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">🗃️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="5 Einträge">5 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 Einträge">2 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 Einträge">1 Einträge</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Shares</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/release-notes/index.html b/de/category/release-notes/index.html index 880386ce2..b34ac1177 100644 --- a/de/category/release-notes/index.html +++ b/de/category/release-notes/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="true" tabindex="0" href="/de/unraid-os/release-notes/6.12.0/">6.12</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/release-notes/6.12.0/">6.12.0</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/release-notes/6.12.1/">6.12.1</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/release-notes/6.12.2/">6.12.2</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/release-notes/6.12.3/">6.12.3</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/de/unraid-os/release-notes/6.11.0/">6.11</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/de/unraid-os/release-notes/6.10.0/">6.10</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/de/unraid-os/release-notes/6.9.0/">6.9</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Release Notes</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Release Notes</h1><p>Unraid Release Notes</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/release-notes/6.12.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.12">🗃️<!-- --> <!-- -->6.12</h2><p class="text--truncate cardDescription_PWke" title="4 Einträge">4 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/release-notes/6.11.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.11">🗃️<!-- --> <!-- -->6.11</h2><p class="text--truncate cardDescription_PWke" title="6 Einträge">6 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/release-notes/6.10.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.10">🗃️<!-- --> <!-- -->6.10</h2><p class="text--truncate cardDescription_PWke" title="4 Einträge">4 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/release-notes/6.9.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.9">🗃️<!-- --> <!-- -->6.9</h2><p class="text--truncate cardDescription_PWke" title="3 Einträge">3 Einträge</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/unraid-os/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Unraid OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/release-notes/6.12.0/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Version 6.12.0 2023-06-14</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/tutorial---basics/index.html b/de/category/tutorial---basics/index.html index ce1fa8d0e..755cf1a74 100644 --- a/de/category/tutorial---basics/index.html +++ b/de/category/tutorial---basics/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Basics</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Basics</h1><p>5 minutes to learn the most important Docusaurus concepts.</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/tutorial-basics/create-a-page/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Page">📄️<!-- --> <!-- -->Create a Page</h2><p class="text--truncate cardDescription_PWke" title="Add Markdown or React files to src/pages to create a standalone page:">Add Markdown or React files to src/pages to create a standalone page:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/tutorial-basics/create-a-document/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Document">📄️<!-- --> <!-- -->Create a Document</h2><p class="text--truncate cardDescription_PWke" title="Documents are groups of pages connected through:">Documents are groups of pages connected through:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Blog Post">📄️<!-- --> <!-- -->Create a Blog Post</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...">Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/tutorial-basics/markdown-features/"><h2 class="text--truncate cardTitle_rnsV" title="Markdown Features">📄️<!-- --> <!-- -->Markdown Features</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus supports Markdown and a few additional features.">Docusaurus supports Markdown and a few additional features.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/tutorial-basics/congratulations/"><h2 class="text--truncate cardTitle_rnsV" title="Congratulations">📄️<!-- --> <!-- -->Congratulations</h2><p class="text--truncate cardDescription_PWke" title="You have just learned the basics of Docusaurus and made some changes to the initial template.">You have just learned the basics of Docusaurus and made some changes to the initial template.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Create a Page</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/tutorial---extras/index.html b/de/category/tutorial---extras/index.html index 1e84264b6..bba9cc67b 100644 --- a/de/category/tutorial---extras/index.html +++ b/de/category/tutorial---extras/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Extras</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Extras</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/"><h2 class="text--truncate cardTitle_rnsV" title="Manage Docs Versions">📄️<!-- --> <!-- -->Manage Docs Versions</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus can manage multiple versions of your docs.">Docusaurus can manage multiple versions of your docs.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/contribute-to-docs/tutorial-extras/translate-your-site/"><h2 class="text--truncate cardTitle_rnsV" title="Translate your site">📄️<!-- --> <!-- -->Translate your site</h2><p class="text--truncate cardDescription_PWke" title="Let's translate docs/intro.md to French.">Let's translate docs/intro.md to French.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Congratulations</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/unraid-connect/index.html b/de/category/unraid-connect/index.html index 7bfe86450..829860128 100644 --- a/de/category/unraid-connect/index.html +++ b/de/category/unraid-connect/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid Connect</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid Connect</h1><p>Unraid Connect Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/connect/about/"><h2 class="text--truncate cardTitle_rnsV" title="About Unraid Connect">📄️<!-- --> <!-- -->About Unraid Connect</h2><p class="text--truncate cardDescription_PWke" title="What is Unraid Connect?">What is Unraid Connect?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/connect/help/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Connect Help">📄️<!-- --> <!-- -->Unraid Connect Help</h2><p class="text--truncate cardDescription_PWke" title="How to Install">How to Install</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/connect/remote-access/"><h2 class="text--truncate cardTitle_rnsV" title="Remote Access">📄️<!-- --> <!-- -->Remote Access</h2><p class="text--truncate cardDescription_PWke" title="The Remote Access feature">The Remote Access feature</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">About</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/connect/about/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">About Unraid Connect</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/unraid-os/index.html b/de/category/unraid-os/index.html index b40b72971..95d182ed5 100644 --- a/de/category/unraid-os/index.html +++ b/de/category/unraid-os/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid OS</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid OS</h1><p>Unraid OS Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/release-notes/"><h2 class="text--truncate cardTitle_rnsV" title="Release Notes">🗃️<!-- --> <!-- -->Release Notes</h2><p class="text--truncate cardDescription_PWke" title="4 Einträge">4 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/faq/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="4 Einträge">4 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/guides/"><h2 class="text--truncate cardTitle_rnsV" title="Guides">🗃️<!-- --> <!-- -->Guides</h2><p class="text--truncate cardDescription_PWke" title="2 Einträge">2 Einträge</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/category/manual/"><h2 class="text--truncate cardTitle_rnsV" title="Manual">🗃️<!-- --> <!-- -->Manual</h2><p class="text--truncate cardDescription_PWke" title="17 Einträge">17 Einträge</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Home</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/release-notes/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Release Notes</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/category/zfs/index.html b/de/category/zfs/index.html index cb6f6964d..3917214fc 100644 --- a/de/category/zfs/index.html +++ b/de/category/zfs/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/de/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/connect/about/index.html b/de/connect/about/index.html index 30e2ac428..6b26882bb 100644 --- a/de/connect/about/index.html +++ b/de/connect/about/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -22,7 +22,7 @@ Unraid Server with a suite of new features including Dynamic Remote Access, Server Deep Linking, Server management from the Connect UI, Online flash backups, Real-time monitoring, and much more!</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="launch-unraid-connect"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer"><strong>Launch Unraid Connect</strong></a><a href="#launch-unraid-connect" class="hash-link" aria-label="Direkter Link zur launch-unraid-connect" title="Direkter Link zur launch-unraid-connect">​</a></h2></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/about.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/unraid-connect/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/connect/help/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Unraid Connect Help</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-unraid-connect" class="table-of-contents__link toc-highlight"><strong>What is Unraid Connect?</strong></a></li><li><a href="#launch-unraid-connect" class="table-of-contents__link toc-highlight"><strong>Launch Unraid Connect</strong></a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/connect/help/index.html b/de/connect/help/index.html index a79450365..9df3a2470 100644 --- a/de/connect/help/index.html +++ b/de/connect/help/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -152,7 +152,7 @@ UPC please open a terminal window and type:</p><p><code>unraid-api restart</code></p><p>If you have other Unraid Connect Support related questions, please see our <a href="https://forums.unraid.net/" target="_blank" rel="noopener noreferrer">Unraid Connect user forum</a> or <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">contact us</a> to open a support ticket.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/help.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/connect/about/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">About Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/connect/remote-access/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Remote Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-to-install" class="table-of-contents__link toc-highlight"><strong>How to Install</strong></a></li><li><a href="#unraid-connect-dashboard" class="table-of-contents__link toc-highlight"><strong>Unraid Connect Dashboard</strong></a><ul><li><a href="#manage-your-server-from-within-the-connect-ui" class="table-of-contents__link toc-highlight"><strong>Manage Your Server From Within the Connect UI</strong></a></li><li><a href="#a-note-regarding-dns-rebinding-protection" class="table-of-contents__link toc-highlight">A note regarding DNS Rebinding Protection</a></li><li><a href="#how-to-access-your-server-when-dns-is-down" class="table-of-contents__link toc-highlight">How to access your server when DNS is down</a></li><li><a href="#how-to-disable-ssl-for-local-access" class="table-of-contents__link toc-highlight">How to disable SSL for local access</a></li></ul></li><li><a href="#automated-flash-backup" class="table-of-contents__link toc-highlight"><strong>Automated Flash Backup</strong></a><ul><li><a href="#enabling-flash-backup-optional" class="table-of-contents__link toc-highlight">Enabling Flash Backup (optional)</a></li><li><a href="#restoring-flash-backup" class="table-of-contents__link toc-highlight">Restoring Flash Backup</a></li></ul></li><li><a href="#server-deep-linking" class="table-of-contents__link toc-highlight"><strong>Server Deep Linking</strong></a></li><li><a href="#customizable-dashboard-server-banner-image-and-themes" class="table-of-contents__link toc-highlight"><strong>Customizable Dashboard, Server Banner Image and Themes</strong></a></li><li><a href="#license-management" class="table-of-contents__link toc-highlight"><strong>License Management</strong></a></li><li><a href="#language-localization" class="table-of-contents__link toc-highlight"><strong>Language Localization</strong></a></li><li><a href="#signing-out" class="table-of-contents__link toc-highlight">Signing Out</a></li><li><a href="#uninstalling-the-plugin" class="table-of-contents__link toc-highlight">Uninstalling the plugin</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a><ul><li><a href="#data-we-store" class="table-of-contents__link toc-highlight">Data We Store</a></li><li><a href="#flash-backups-are-not-encrypted" class="table-of-contents__link toc-highlight">Flash Backups are Not Encrypted</a></li><li><a href="#sensitive-data" class="table-of-contents__link toc-highlight">Sensitive Data</a></li></ul></li><li><a href="#connect-troubleshooting" class="table-of-contents__link toc-highlight">Connect Troubleshooting</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/connect/remote-access/index.html b/de/connect/remote-access/index.html index f32348637..602083b66 100644 --- a/de/connect/remote-access/index.html +++ b/de/connect/remote-access/index.html @@ -9,16 +9,16 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-connect/"><span itemprop="name">Unraid Connect</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Remote Access</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Remote Access</h1><p><img loading="lazy" src="/de/assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png" width="812" height="283" class="img_ev3q"></p><p>The Remote Access feature allows you to access your Unraid webgui from the Internet. If you need access to Docker containers, network drives, or other devices on your -network, you'll want to <a href="/de/unraid-os/manual/security/#vpn">setup a +network, you'll want to <a href="/de/unraid-os/manual/security.md/#vpn">setup a VPN</a> instead.</p><p><strong>Note: Before enabling remote access, consider your root password. Is it sufficiently complex? Update your root password on the Users page.</strong></p><p>Also note: <strong>Remote Access is an optional feature</strong>, and is not required to use the rest of Unraid Connect.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="remote-access---initial-setup">Remote Access - <strong>Initial Setup</strong><a href="#remote-access---initial-setup" class="hash-link" aria-label="Direkter Link zur remote-access---initial-setup" title="Direkter Link zur remote-access---initial-setup">​</a></h2><ol><li>From Unraid webGUI Navigate to <strong>Settings</strong> → <strong>Management Access</strong></li><li>Note the <strong>HTTPS port</strong>, it defaults to port 443. If you have Docker @@ -81,7 +81,7 @@ Internet connection drops you will likely lose access to your server's webgui. See <a href="/de/connect/help/#how-to-access-your-server-when-dns-is-down">How to access your server when DNS is down</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/connect/help/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Unraid Connect Help</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/legacy-documentation/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Legacy Documentation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#remote-access---initial-setup" class="table-of-contents__link toc-highlight">Remote Access - <strong>Initial Setup</strong></a><ul><li><a href="#remote-access---choose-remote-access-type" class="table-of-contents__link toc-highlight">Remote Access - <strong>Choose Remote Access Type</strong></a></li></ul></li><li><a href="#dynamic-remote-access" class="table-of-contents__link toc-highlight"><strong>Dynamic Remote Access</strong></a><ul><li><a href="#dynamic-remote-access-usage" class="table-of-contents__link toc-highlight">Dynamic Remote Access Usage</a></li><li><a href="#configuring-upnp-applies-to-dynamic---upnp--always-on---upnp" class="table-of-contents__link toc-highlight">Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)</a></li><li><a href="#configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward" class="table-of-contents__link toc-highlight">Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/intro/index.html b/de/contribute-to-docs/intro/index.html index aab7f2e14..fbcfe5f96 100644 --- a/de/contribute-to-docs/intro/index.html +++ b/de/contribute-to-docs/intro/index.html @@ -9,15 +9,15 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contributing to Unraid Documentation</span><meta itemprop="position" content="2"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Contributing to Unraid Documentation</h1><p><strong>Contribute to a Docs Page that already Exists</strong> If you want to contribute to an Unraid Docs page that already exists, there is an "Edit this page" button at the bottom of every page.</p><p>Clicking this will take you to github, where you can click on the edit pencil in the far right to fork the repository, make edits on your own branch, and then commit Pull Requests to Main.</p><p>Unraid Docs are built using Docusaurus which uses <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features" target="_blank" rel="noopener noreferrer">Markdown</a>, so please use the proper formatting outlined there for <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#links" target="_blank" rel="noopener noreferrer">links</a>, <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#code-blocks" target="_blank" rel="noopener noreferrer">code blocks</a>, and <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#admonitions" target="_blank" rel="noopener noreferrer">admonitions</a>. </p><p><strong>Creating a New Docs Page</strong></p><p>To create a new Docs page, for example an Unraid Guide, in github, go to <a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides" target="_blank" rel="noopener noreferrer">docs/unraid-os/guides</a> and click "Add file" on the right to add a new Guides page. From there, name your file/guide and ensure it ends with ".md". Also, please ensure filenames are <em>lower case</em> and have <em>dashes separating-any-words</em> (Ex: wake-on-lan.md) Next, add the guide info and styling and then commit your changes. Then, a LimeTech employee will review and merge if everything looks good.</p><p>Thank you in advance for any and all submissions and edits. Making living technical documentation would be impossible without community involvement!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/intro.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/contribute/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Contribute</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/tutorial---basics/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Tutorial - Basics</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/tutorial-basics/congratulations/index.html b/de/contribute-to-docs/tutorial-basics/congratulations/index.html index 04619997c..d4cfd2e39 100644 --- a/de/contribute-to-docs/tutorial-basics/congratulations/index.html +++ b/de/contribute-to-docs/tutorial-basics/congratulations/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Congratulations</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Congratulations</h1><p>You have just learned the <strong>basics of Docusaurus</strong> and made some changes to the <strong>initial template</strong>.</p><p>Docusaurus has <strong>much more to offer</strong>!</p><p>Have <strong>5 more minutes</strong>? Take a look at <strong><a href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/">versioning</a></strong> and <strong><a href="/de/contribute-to-docs/tutorial-extras/translate-your-site/">i18n</a></strong>.</p><p>Anything <strong>unclear</strong> or <strong>buggy</strong> in this tutorial? <a href="https://github.com/facebook/docusaurus/discussions/4610" target="_blank" rel="noopener noreferrer">Please report it!</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-next">What's next?<a href="#whats-next" class="hash-link" aria-label="Direkter Link zur What's next?" title="Direkter Link zur What's next?">​</a></h2><ul><li>Read the <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">official documentation</a></li><li>Modify your site configuration with <a href="https://docusaurus.io/docs/api/docusaurus-config" target="_blank" rel="noopener noreferrer"><code>docusaurus.config.js</code></a></li><li>Add navbar and footer items with <a href="https://docusaurus.io/docs/api/themes/configuration" target="_blank" rel="noopener noreferrer"><code>themeConfig</code></a></li><li>Add a custom <a href="https://docusaurus.io/docs/styling-layout" target="_blank" rel="noopener noreferrer">Design and Layout</a></li><li>Add a <a href="https://docusaurus.io/docs/search" target="_blank" rel="noopener noreferrer">search bar</a></li><li>Find inspirations in the <a href="https://docusaurus.io/showcase" target="_blank" rel="noopener noreferrer">Docusaurus showcase</a></li><li>Get involved in the <a href="https://docusaurus.io/community/support" target="_blank" rel="noopener noreferrer">Docusaurus Community</a></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/congratulations.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Markdown Features</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/tutorial---extras/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Tutorial - Extras</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#whats-next" class="table-of-contents__link toc-highlight">What's next?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html b/de/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html index eb78639b6..fc245c2ff 100644 --- a/de/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html +++ b/de/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Blog Post</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Create a Blog Post</h1><p>Docusaurus creates a <strong>page for each blog post</strong>, but also a <strong>blog index page</strong>, a <strong>tag system</strong>, an <strong>RSS</strong> feed...</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-post">Create your first Post<a href="#create-your-first-post" class="hash-link" aria-label="Direkter Link zur Create your first Post" title="Direkter Link zur Create your first Post">​</a></h2><p>Create a file at <code>blog/2021-02-28-greetings.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">blog/2021-02-28-greetings.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">slug</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> greetings</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Greetings</span><span class="token front-matter-block front-matter yaml language-yaml tag" style="color:rgb(255, 121, 198)">!</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">authors</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Joel Marcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Co</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml">creator of Docusaurus 1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Sébastien Lorber</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Docusaurus maintainer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//sebastienlorber.com</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/slorber.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">tags</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token front-matter-block front-matter yaml language-yaml">greetings</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Congratulations, you have made your first post!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Feel free to play around and edit this post as much you like.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new blog post is now available at <a href="http://localhost:3000/blog/greetings" target="_blank" rel="noopener noreferrer">http://localhost:3000/blog/greetings</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Create a Document</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Markdown Features</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-post" class="table-of-contents__link toc-highlight">Create your first Post</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/tutorial-basics/create-a-document/index.html b/de/contribute-to-docs/tutorial-basics/create-a-document/index.html index b4c87035a..0f40b3abe 100644 --- a/de/contribute-to-docs/tutorial-basics/create-a-document/index.html +++ b/de/contribute-to-docs/tutorial-basics/create-a-document/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Document</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Create a Document</h1><p>Documents are <strong>groups of pages</strong> connected through:</p><ul><li>a <strong>sidebar</strong></li><li><strong>previous/next navigation</strong></li><li><strong>versioning</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-doc">Create your first Doc<a href="#create-your-first-doc" class="hash-link" aria-label="Direkter Link zur Create your first Doc" title="Direkter Link zur Create your first Doc">​</a></h2><p>Create a Markdown file at <code>docs/hello.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new document is now available at <a href="http://localhost:3000/docs/hello" target="_blank" rel="noopener noreferrer">http://localhost:3000/docs/hello</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-the-sidebar">Configure the Sidebar<a href="#configure-the-sidebar" class="hash-link" aria-label="Direkter Link zur Configure the Sidebar" title="Direkter Link zur Configure the Sidebar">​</a></h2><p>Docusaurus automatically <strong>creates a sidebar</strong> from the <code>docs</code> folder.</p><p>Add metadata to customize the sidebar label and position:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_label</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml string" style="color:rgb(255, 121, 198)">"Hi!"</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_position</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml number">3</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It is also possible to create your sidebar explicitly in <code>sidebars.js</code>:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">sidebars.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">tutorialSidebar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"intro"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"hello"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"category"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">label</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Tutorial"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"tutorial-basics/create-a-document"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-document.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Create a Page</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Create a Blog Post</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-doc" class="table-of-contents__link toc-highlight">Create your first Doc</a></li><li><a href="#configure-the-sidebar" class="table-of-contents__link toc-highlight">Configure the Sidebar</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/tutorial-basics/create-a-page/index.html b/de/contribute-to-docs/tutorial-basics/create-a-page/index.html index a45508766..0e0e3dfe7 100644 --- a/de/contribute-to-docs/tutorial-basics/create-a-page/index.html +++ b/de/contribute-to-docs/tutorial-basics/create-a-page/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Page</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Create a Page</h1><p>Add <strong>Markdown or React</strong> files to <code>src/pages</code> to create a <strong>standalone page</strong>:</p><ul><li><code>src/pages/index.js</code> → <code>localhost:3000/</code></li><li><code>src/pages/foo.md</code> → <code>localhost:3000/foo</code></li><li><code>src/pages/foo/bar.js</code> → <code>localhost:3000/foo/bar</code></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-react-page">Create your first React Page<a href="#create-your-first-react-page" class="hash-link" aria-label="Direkter Link zur Create your first React Page" title="Direkter Link zur Create your first React Page">​</a></h2><p>Create a file at <code>src/pages/my-react-page.js</code>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-react-page.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"react"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">Layout</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"@theme/Layout"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">default</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">MyReactPage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">My React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">This is a React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-react-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-react-page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-markdown-page">Create your first Markdown Page<a href="#create-your-first-markdown-page" class="hash-link" aria-label="Direkter Link zur Create your first Markdown Page" title="Direkter Link zur Create your first Markdown Page">​</a></h2><p>Create a file at <code>src/pages/my-markdown-page.md</code>:</p><div class="language-mdx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-markdown-page.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-mdx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># My Markdown page</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is a Markdown page</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-markdown-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-markdown-page</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-page.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/tutorial---basics/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Tutorial - Basics</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Create a Document</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-react-page" class="table-of-contents__link toc-highlight">Create your first React Page</a></li><li><a href="#create-your-first-markdown-page" class="table-of-contents__link toc-highlight">Create your first Markdown Page</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/tutorial-basics/markdown-features/index.html b/de/contribute-to-docs/tutorial-basics/markdown-features/index.html index a88afdcfa..9bf5b6938 100644 --- a/de/contribute-to-docs/tutorial-basics/markdown-features/index.html +++ b/de/contribute-to-docs/tutorial-basics/markdown-features/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Markdown Features</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Markdown Features</h1><p>Docusaurus supports <strong><a href="https://daringfireball.net/projects/markdown/syntax" target="_blank" rel="noopener noreferrer">Markdown</a></strong> and a few <strong>additional features</strong>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="front-matter">Front Matter<a href="#front-matter" class="hash-link" aria-label="Direkter Link zur Front Matter" title="Direkter Link zur Front Matter">​</a></h2><p>Markdown documents have metadata at the top called <a href="https://jekyllrb.com/docs/front-matter/" target="_blank" rel="noopener noreferrer">Front Matter</a>:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">my-doc.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">id: my-doc-id</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">title: My document title</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">description: My document description</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">slug: /my-custom-url</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">## Markdown heading</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Markdown text with [links](./hello.md)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="links">Links<a href="#links" class="hash-link" aria-label="Direkter Link zur Links" title="Direkter Link zur Links">​</a></h2><p>Regular Markdown links are supported, using url paths or relative file paths.</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">/create-a-page</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">./create-a-page.md</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Result:</strong> Let's see how to <a href="/de/contribute-to-docs/tutorial-basics/create-a-page/">Create a page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="images">Images<a href="#images" class="hash-link" aria-label="Direkter Link zur Images" title="Direkter Link zur Images">​</a></h2><p>Regular Markdown images are supported.</p><p>You can use absolute paths to reference images in the static directory (<code>static/img/docusaurus.png</code>):</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">/img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" alt="Docusaurus logo" src="data:image/png;base64,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" width="200" height="200" class="img_ev3q"></p><p>You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">./img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="code-blocks">Code Blocks<a href="#code-blocks" class="hash-link" aria-label="Direkter Link zur Code Blocks" title="Direkter Link zur Code Blocks">​</a></h2><p>Markdown code blocks are supported with Syntax highlighting.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">```jsx title="src/components/HelloDocusaurus.js"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">function HelloDocusaurus() {</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> return (</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> <h1>Hello, Docusaurus!</h1></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> )</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">```</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/components/HelloDocusaurus.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">HelloDocusaurus</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Hello, Docusaurus!</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="admonitions">Admonitions<a href="#admonitions" class="hash-link" aria-label="Direkter Link zur Admonitions" title="Direkter Link zur Admonitions">​</a></h2><p>Docusaurus has a special syntax to create admonitions and callouts:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::tip My tip</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Use this awesome feature option</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::danger Take care</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This action is dangerous</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="theme-admonition theme-admonition-tip alert alert--success admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>My tip</div><div class="admonitionContent_S0QG"><p>Use this awesome feature option</p></div></div><div class="theme-admonition theme-admonition-danger alert alert--danger admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Take care</div><div class="admonitionContent_S0QG"><p>This action is dangerous</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="mdx-and-react-components">MDX and React Components<a href="#mdx-and-react-components" class="hash-link" aria-label="Direkter Link zur MDX and React Components" title="Direkter Link zur MDX and React Components">​</a></h2><p><a href="https://mdxjs.com/" target="_blank" rel="noopener noreferrer">MDX</a> can make your documentation more <strong>interactive</strong> and allows using any <strong>React components inside Markdown</strong>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function maybe-class-name" style="color:rgb(80, 250, 123)">Highlight</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token parameter">children</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token parameter"> color</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=></span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">style</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">backgroundColor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> color</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">borderRadius</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'20px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'#fff'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">padding</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'10px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">cursor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'pointer'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=></span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">alert</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)">You clicked the color </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)"> with label </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">children</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#25c2a0</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Docusaurus green</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#1877F2</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Facebook blue</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is <span style="background-color:#25c2a0;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Docusaurus green</span> !</p><p>This is <span style="background-color:#1877F2;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Facebook blue</span> !</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Create a Blog Post</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Congratulations</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#front-matter" class="table-of-contents__link toc-highlight">Front Matter</a></li><li><a href="#links" class="table-of-contents__link toc-highlight">Links</a></li><li><a href="#images" class="table-of-contents__link toc-highlight">Images</a></li><li><a href="#code-blocks" class="table-of-contents__link toc-highlight">Code Blocks</a></li><li><a href="#admonitions" class="table-of-contents__link toc-highlight">Admonitions</a></li><li><a href="#mdx-and-react-components" class="table-of-contents__link toc-highlight">MDX and React Components</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html b/de/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html index f7a920bbd..fd27dc4fe 100644 --- a/de/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html +++ b/de/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manage Docs Versions</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Manage Docs Versions</h1><p>Docusaurus can manage multiple versions of your docs.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-a-docs-version">Create a docs version<a href="#create-a-docs-version" class="hash-link" aria-label="Direkter Link zur Create a docs version" title="Direkter Link zur Create a docs version">​</a></h2><p>Release a version 1.0 of your project:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run docusaurus docs:version </span><span class="token number">1.0</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The <code>docs</code> folder is copied into <code>versioned_docs/version-1.0</code> and <code>versions.json</code> is created.</p><p>Your docs now have 2 versions:</p><ul><li><code>1.0</code> at <code>http://localhost:3000/docs/</code> for the version 1.0 docs</li><li><code>current</code> at <code>http://localhost:3000/docs/next/</code> for the <strong>upcoming, unreleased docs</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-version-dropdown">Add a Version Dropdown<a href="#add-a-version-dropdown" class="hash-link" aria-label="Direkter Link zur Add a Version Dropdown" title="Direkter Link zur Add a Version Dropdown">​</a></h2><p>To navigate seamlessly across versions, add a version dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"docsVersionDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The docs version dropdown appears in your navbar:</p><p><img loading="lazy" alt="Docs Version Dropdown" src="/de/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="update-an-existing-version">Update an existing version<a href="#update-an-existing-version" class="hash-link" aria-label="Direkter Link zur Update an existing version" title="Direkter Link zur Update an existing version">​</a></h2><p>It is possible to edit versioned docs in their respective folder:</p><ul><li><code>versioned_docs/version-1.0/hello.md</code> updates <code>http://localhost:3000/docs/hello</code></li><li><code>docs/hello.md</code> updates <code>http://localhost:3000/docs/next/hello</code></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/tutorial---extras/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Tutorial - Extras</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/contribute-to-docs/tutorial-extras/translate-your-site/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Translate your site</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-a-docs-version" class="table-of-contents__link toc-highlight">Create a docs version</a></li><li><a href="#add-a-version-dropdown" class="table-of-contents__link toc-highlight">Add a Version Dropdown</a></li><li><a href="#update-an-existing-version" class="table-of-contents__link toc-highlight">Update an existing version</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/contribute-to-docs/tutorial-extras/translate-your-site/index.html b/de/contribute-to-docs/tutorial-extras/translate-your-site/index.html index ddb0e9676..aca8ecf81 100644 --- a/de/contribute-to-docs/tutorial-extras/translate-your-site/index.html +++ b/de/contribute-to-docs/tutorial-extras/translate-your-site/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Translate your site</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Translate your site</h1><p>Let's translate <code>docs/intro.md</code> to French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-i18n">Configure i18n<a href="#configure-i18n" class="hash-link" aria-label="Direkter Link zur Configure i18n" title="Direkter Link zur Configure i18n">​</a></h2><p>Modify <code>docusaurus.config.js</code> to add support for the <code>fr</code> locale:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">i18n</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">defaultLocale</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">locales</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"fr"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="translate-a-doc">Translate a doc<a href="#translate-a-doc" class="hash-link" aria-label="Direkter Link zur Translate a doc" title="Direkter Link zur Translate a doc">​</a></h2><p>Copy the <code>docs/intro.md</code> file to the <code>i18n/fr</code> folder:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">mkdir</span><span class="token plain"> -p i18n/fr/docusaurus-plugin-content-docs/current/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">cp</span><span class="token plain"> docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Translate <code>i18n/fr/docusaurus-plugin-content-docs/current/intro.md</code> in French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="start-your-localized-site">Start your localized site<a href="#start-your-localized-site" class="hash-link" aria-label="Direkter Link zur Start your localized site" title="Direkter Link zur Start your localized site">​</a></h2><p>Start your site on the French locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run start -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Your localized site is accessible at <a href="http://localhost:3000/fr/" target="_blank" rel="noopener noreferrer">http://localhost:3000/fr/</a> and the <code>Getting Started</code> page is translated.</p><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_S0QG"><p>In development, you can only use one locale at a same time.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-locale-dropdown">Add a Locale Dropdown<a href="#add-a-locale-dropdown" class="hash-link" aria-label="Direkter Link zur Add a Locale Dropdown" title="Direkter Link zur Add a Locale Dropdown">​</a></h2><p>To navigate seamlessly across languages, add a locale dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"localeDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The locale dropdown now appears in your navbar:</p><p><img loading="lazy" alt="Locale Dropdown" src="/de/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="build-your-localized-site">Build your localized site<a href="#build-your-localized-site" class="hash-link" aria-label="Direkter Link zur Build your localized site" title="Direkter Link zur Build your localized site">​</a></h2><p>Build your site for a specific locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Or build your site to include all the locales at once:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/translate-your-site.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#configure-i18n" class="table-of-contents__link toc-highlight">Configure i18n</a></li><li><a href="#translate-a-doc" class="table-of-contents__link toc-highlight">Translate a doc</a></li><li><a href="#start-your-localized-site" class="table-of-contents__link toc-highlight">Start your localized site</a></li><li><a href="#add-a-locale-dropdown" class="table-of-contents__link toc-highlight">Add a Locale Dropdown</a></li><li><a href="#build-your-localized-site" class="table-of-contents__link toc-highlight">Build your localized site</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/index.html b/de/index.html index 0842fc057..4cf1aa895 100644 --- a/de/index.html +++ b/de/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div id="__docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Home</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Home</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-documentation">Unraid Documentation<a href="#unraid-documentation" class="hash-link" aria-label="Direkter Link zur Unraid Documentation" title="Direkter Link zur Unraid Documentation">​</a></h2><p>Welcome! Some of the documentation here is still a work in progress, while the old documentation in the <a href="/de/category/legacy-documentation/">Legacy Documentation section</a> is actively being updated and edited to reflect accurate, up-to-date information.</p><p>If you'd like to contribute to these docs, feel free to open a PR by clicking <em>Edit this page</em> at the bottom of any page, or using the link in the footer. Thank you in advance for helping to keep these docs accurate and living.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="documentation-categories">Documentation Categories<a href="#documentation-categories" class="hash-link" aria-label="Direkter Link zur Documentation Categories" title="Direkter Link zur Documentation Categories">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-os"><a href="/de/category/unraid-os/">Unraid OS</a><a href="#unraid-os" class="hash-link" aria-label="Direkter Link zur unraid-os" title="Direkter Link zur unraid-os">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-connect"><a href="/de/category/unraid-connect/">Unraid Connect</a><a href="#unraid-connect" class="hash-link" aria-label="Direkter Link zur unraid-connect" title="Direkter Link zur unraid-connect">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="legacy-documentation"><a href="/de/category/legacy-documentation/">Legacy Documentation</a><a href="#legacy-documentation" class="hash-link" aria-label="Direkter Link zur legacy-documentation" title="Direkter Link zur legacy-documentation">​</a></h3></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/docs-home.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/unraid-os/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Unraid OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#unraid-documentation" class="table-of-contents__link toc-highlight">Unraid Documentation</a></li><li><a href="#documentation-categories" class="table-of-contents__link toc-highlight">Documentation Categories</a><ul><li><a href="#unraid-os" class="table-of-contents__link toc-highlight">Unraid OS</a></li><li><a href="#unraid-connect" class="table-of-contents__link toc-highlight">Unraid Connect</a></li><li><a href="#legacy-documentation" class="table-of-contents__link toc-highlight">Legacy Documentation</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/Articles/dual-boot-unraid-and-windows/index.html b/de/legacy/Articles/dual-boot-unraid-and-windows/index.html index 28492d223..bdb447e88 100644 --- a/de/legacy/Articles/dual-boot-unraid-and-windows/index.html +++ b/de/legacy/Articles/dual-boot-unraid-and-windows/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -58,7 +58,7 @@ installing lilo to the MBR.</p><p>When done, edit /etc/lilo.conf to your liking.</p><p>Finally, format the cache partition (partition1) with ReiserFS.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="finish">Finish<a href="#finish" class="hash-link" aria-label="Direkter Link zur Finish" title="Direkter Link zur Finish">​</a></h2><p>Now start Unraid by booting the flash, and assigning the cache drive.</p><p>You can boot Windows or Linux by changing the BIOS settings, or using the appropriate key at boot time key to get a boot menu, or you can also edit the syslinux config on the flash to give you multi-boot options.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/dual-boot-unraid-and-windows.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/legacy-documentation/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Legacy Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-do-this" class="table-of-contents__link toc-highlight">Why do this?</a></li><li><a href="#what-you-need" class="table-of-contents__link toc-highlight">What you need</a></li><li><a href="#preparation" class="table-of-contents__link toc-highlight">Preparation</a></li><li><a href="#partition-disk" class="table-of-contents__link toc-highlight">Partition Disk</a></li><li><a href="#install-windows" class="table-of-contents__link toc-highlight">Install Windows</a></li><li><a href="#check-partition-order-after-windows-install" class="table-of-contents__link toc-highlight">Check Partition Order After Windows Install</a></li><li><a href="#install-linux" class="table-of-contents__link toc-highlight">Install Linux</a></li><li><a href="#finish" class="table-of-contents__link toc-highlight">Finish</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html b/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html index dd799ef72..853a42675 100644 --- a/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html +++ b/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -33,7 +33,7 @@ numbered partition in the list (for recovery).</li><li>Type 'delete partition override' and press enter.</li><li>Right-click the start menu and select 'Disk Management'</li><li>Right-click on the partition you wish to extend and click 'Extend Partition'</li><li>Follow the on-screen prompts to complete the process.</li></ul><p><img loading="lazy" src="/de/assets/images/Resize_vdisk_3_(extend_partition_in_disk_management)-62c649acdf42616193f2d6c889504ea9.PNG" width="1132" height="896" class="img_ev3q"> <img loading="lazy" src="/de/assets/images/Resize_vdisk_4_(partition_has_been_extended_in_disk_management)-335d91d19a6c04b5d3e115c4d8149dcb.PNG" width="1131" height="896" class="img_ev3q"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#guide" class="table-of-contents__link toc-highlight">Guide</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/Articles/upgrading-to-unraid-6/index.html b/de/legacy/Articles/upgrading-to-unraid-6/index.html index ed0266f91..fba8c8e24 100644 --- a/de/legacy/Articles/upgrading-to-unraid-6/index.html +++ b/de/legacy/Articles/upgrading-to-unraid-6/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -98,7 +98,7 @@ earlier.</p><h1>From version 5.x or earlier</h1><p>Please see <a href="https://forums.unraid.net/forum/index.php?topic=41061.0" target="_blank" rel="noopener noreferrer">this forum post</a> for information on upgrading.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/upgrading-to-unraid-6.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Parity</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#possible-upgrade-issues" class="table-of-contents__link toc-highlight">Possible upgrade issues</a><ul><li><a href="#the-new-release-does-not-show-up-after-clicking-check-for-updates-button" class="table-of-contents__link toc-highlight">The new release does not show up after clicking <em>Check for Updates</em> button</a></li><li><a href="#my-array--docker-apps-are-taking-a-really-long-time-to-start-after-the-upgrade" class="table-of-contents__link toc-highlight">My array / docker apps are taking a really long time to start after the upgrade</a></li><li><a href="#my-containers-arent-working-right-after-the-upgrade" class="table-of-contents__link toc-highlight">My containers aren't working right after the upgrade</a></li><li><a href="#my-vms-get-an-error-of-cannot-get-interface-mtu" class="table-of-contents__link toc-highlight">My VMs get an error of "cannot get interface MTU..."</a></li><li><a href="#vnc-access-to-my-vms-is-not-working-or-performing-poorly" class="table-of-contents__link toc-highlight">VNC access to my VMs is not working or performing poorly</a></li><li><a href="#my-ovmf-vm-doesnt-boot-correctly" class="table-of-contents__link toc-highlight">My OVMF VM doesn't boot correctly</a></li><li><a href="#trying-to-start-my-vm-gives-a-invalid-machine-type-error" class="table-of-contents__link toc-highlight">Trying to start my VM gives a "Invalid Machine Type" error</a></li><li><a href="#poor-vm-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VM performance after upgrading</a></li><li><a href="#poor-vnc-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VNC performance after upgrading</a></li></ul></li><li><a href="#checking-your-existing-version" class="table-of-contents__link toc-highlight">Checking your existing version</a></li><li><a href="#checking-for-sufficient-free-space" class="table-of-contents__link toc-highlight">Checking for sufficient free space</a></li><li><a href="#checking-your-network-bridge-name" class="table-of-contents__link toc-highlight">Checking your network bridge name</a></li><li><a href="#checking-your-vm-network-bridge-settings" class="table-of-contents__link toc-highlight">Checking your VM network bridge settings</a></li><li><a href="#post-installation-procedures" class="table-of-contents__link toc-highlight">Post installation procedures</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/Parity/index.html b/de/legacy/FAQ/Parity/index.html index b8768f402..50bc6245e 100644 --- a/de/legacy/FAQ/Parity/index.html +++ b/de/legacy/FAQ/Parity/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ errors, with minimal impact on performance.(Requires Clarification that this is actually used)</p><p>Further discussion: <a href="https://forums.unraid.net/forum/index.php?topic=2634.msg21695#msg21695" target="_blank" rel="noopener noreferrer">1</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/Parity.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Cache Disk</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-parity-works" class="table-of-contents__link toc-highlight">How parity works</a></li><li><a href="#reconstructing-data" class="table-of-contents__link toc-highlight">Reconstructing data</a></li><li><a href="#checking-parity" class="table-of-contents__link toc-highlight">Checking parity</a></li><li><a href="#parity-disk" class="table-of-contents__link toc-highlight">Parity disk</a><ul><li><a href="#size" class="table-of-contents__link toc-highlight">Size</a></li><li><a href="#performance" class="table-of-contents__link toc-highlight">Performance</a></li></ul></li><li><a href="#dual-parity" class="table-of-contents__link toc-highlight">Dual parity</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/cache-disk/index.html b/de/legacy/FAQ/cache-disk/index.html index 07fdcf9c9..330f83f97 100644 --- a/de/legacy/FAQ/cache-disk/index.html +++ b/de/legacy/FAQ/cache-disk/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -134,7 +134,7 @@ you will want a cache drive that is larger than 100 GB. If you attempt a data transfer that is larger than the size of your cache drive, the transfer will fail.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/cache-disk.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Parity</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Checking and fixing file systems</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#adding-a-cache-disk-to-the-array" class="table-of-contents__link toc-highlight">Adding a cache disk to the array</a></li><li><a href="#cache-settings" class="table-of-contents__link toc-highlight">Cache settings</a></li><li><a href="#speed" class="table-of-contents__link toc-highlight">Speed</a><ul><li><a href="#perceived-write-speed-increases" class="table-of-contents__link toc-highlight">Perceived write speed increases</a></li><li><a href="#actual-write-speed-increases" class="table-of-contents__link toc-highlight">Actual write speed increases</a></li></ul></li><li><a href="#the-mover" class="table-of-contents__link toc-highlight">The Mover</a></li><li><a href="#other-uses-for-a-cache-disk" class="table-of-contents__link toc-highlight">Other uses for a cache disk</a><ul><li><a href="#warm-spare" class="table-of-contents__link toc-highlight">Warm spare</a></li><li><a href="#running-other-software-on-top-of-unraid" class="table-of-contents__link toc-highlight">Running other software on top of Unraid</a></li><li><a href="#scratch-space" class="table-of-contents__link toc-highlight">Scratch space</a></li></ul></li><li><a href="#disadvantages-of-a-cache-disk" class="table-of-contents__link toc-highlight">Disadvantages of a cache disk</a><ul><li><a href="#wasted-hdd-and-hdd-slot" class="table-of-contents__link toc-highlight">'Wasted' HDD and HDD slot</a></li><li><a href="#short-term-risk-of-data-loss" class="table-of-contents__link toc-highlight">Short-term risk of data loss</a></li></ul></li><li><a href="#hardware" class="table-of-contents__link toc-highlight">Hardware</a><ul><li><a href="#purpose" class="table-of-contents__link toc-highlight">Purpose</a></li><li><a href="#amount-of-data" class="table-of-contents__link toc-highlight">Amount of data</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/check-disk-filesystems/index.html b/de/legacy/FAQ/check-disk-filesystems/index.html index d05ffde97..5fe255589 100644 --- a/de/legacy/FAQ/check-disk-filesystems/index.html +++ b/de/legacy/FAQ/check-disk-filesystems/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -575,7 +575,7 @@ recommend you read both, for more details.</li><li><em>You may want to print this out ahead of time.</em></li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"> root@Tower:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">~</span><span class="token comment" style="color:rgb(98, 114, 164)"># reiserfsck --rebuild-sb /dev/md6</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfsck </span><span class="token number">3.6</span><span class="token plain">.19 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2003</span><span class="token plain"> www.namesys.com</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you are using the latest reiserfsprogs and it fails **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** please email bug reports to reiserfs-list@namesys.com, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** providing as much information as possible -- your **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** hardware, kernel, patches, settings, all reiserfsck **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** messages </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including version</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">, the reiserfsck logfile, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** check the syslog </span><span class="token function" style="color:rgb(80, 250, 123)">file</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> any related information. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you would like advice on using this program, support **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** is available </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$25</span><span class="token plain"> at www.namesys.com/support.html. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will check superblock and rebuild it </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> needed</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will put log info to </span><span class="token string" style="color:rgb(255, 121, 198)">'stdout'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to run this program?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">N/Yes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">note need to </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">type</span><span class="token plain"> Yes</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> you </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">:**Yes**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfs_open: the reiserfs superblock cannot be found on</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> /dev/md6.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> what the version of ReiserFS </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> you use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token plain">-4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain">.x</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">>=</span><span class="token number">3.5</span><span class="token plain">.9 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">introduced </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> the middle of </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">if you use linux </span><span class="token number">2.2</span><span class="token plain">, choose this one</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator"><</span><span class="token plain"> </span><span class="token number">3.5</span><span class="token plain">.9 converted to new </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">don</span><span class="token string" style="color:rgb(255, 121, 198)">'t choose if unsure)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token string" style="color:rgb(255, 121, 198)"> (4) < 3.5.9 (this is very old format, don'</span><span class="token plain">t choose </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> unsure</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">X</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">exit</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **1**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Enter block size </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">4096</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **4096**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> No journal device was specified. </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">If journal is not available,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> re-run with </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">--no-journal-available option specified</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is journal default? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">y</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Did you use resizer</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **n**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: no uuid found, a new uuid was generated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">b0894fe9-3850-4d57-b70b-a419cbf3823e</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: You either have a corrupted journal or have just</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> changed the start of the partition with some partition table</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> editor. If you are sure that the start of the partition is ok,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild the journal header.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to rebuild the journal header? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Reiserfs super block </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> block </span><span class="token number">16</span><span class="token plain"> on 0x906 of </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain"> with</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> standard journal</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Count of blocks on the device: </span><span class="token number">97677824</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Number of bitmaps: </span><span class="token number">2981</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocksize: </span><span class="token number">4096</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Free blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">count of blocks - used </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">journal, bitmaps, data,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reserved</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> blocks</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Root block: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Filesystem is NOT clean</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Tree height: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Hash </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> used to </span><span class="token function" style="color:rgb(80, 250, 123)">sort</span><span class="token plain"> names: not </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Objectid map size </span><span class="token number">0</span><span class="token plain">, max </span><span class="token number">972</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Journal parameters:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Device </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Magic </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Size </span><span class="token number">8193</span><span class="token plain"> blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including </span><span class="token number">1</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> journal header</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">first block </span><span class="token number">18</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max transaction length </span><span class="token number">1024</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max batch size </span><span class="token number">900</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max commit age </span><span class="token number">30</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocks reserved by journal: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Fs state field: 0x1:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> some corruptions exist.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> sb_version: </span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> inode generation number: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> UUID: b0894fe9-3850-4d57-b70b-a419cbf3823e</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> LABEL:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Set flags </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> SB:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is this ok ? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It should be quick. When this completes, hopefully successfully, rerun the <strong>reiserfsck <!-- -->-<!-- -->-check</strong> on the drive, and proceed according to the instructions that it gives you.</p><p><em>-<!-- -->-<!-- -->- work in progress <!-- -->-<!-- -->-<!-- -->-</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-disk-filesystems.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Cache Disk</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Check Harddrive Speed</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-this-the-right-page" class="table-of-contents__link toc-highlight">Is this the right page?</a></li><li><a href="#drive-names-and-symbols" class="table-of-contents__link toc-highlight">Drive names and symbols</a></li><li><a href="#which-section" class="table-of-contents__link toc-highlight">Which section?</a></li><li><a href="#checking-and-fixing-drives-in-the-webgui" class="table-of-contents__link toc-highlight">Checking and fixing drives in the webGui</a><ul><li><a href="#preparing-to-test" class="table-of-contents__link toc-highlight">Preparing to test</a></li><li><a href="#running-the-test" class="table-of-contents__link toc-highlight">Running the test</a></li><li><a href="#running-the-repair" class="table-of-contents__link toc-highlight">Running the repair</a><ul><li><a href="#for-reiserfs-drives" class="table-of-contents__link toc-highlight">For ReiserFS drives</a></li><li><a href="#for-xfs-drives" class="table-of-contents__link toc-highlight">For XFS drives</a></li><li><a href="#for-btrfs-drives-and-pools" class="table-of-contents__link toc-highlight">For BTRFS drives and pools</a></li></ul></li><li><a href="#running-the-repair-continued" class="table-of-contents__link toc-highlight">Running the repair (continued)</a></li><li><a href="#after-the-test-and-repair" class="table-of-contents__link toc-highlight">After the test and repair</a></li><li><a href="#additional-comments" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-xfs" class="table-of-contents__link toc-highlight">Drives formatted with XFS</a><ul><li><a href="#preparing-to-run-xfs_repair" class="table-of-contents__link toc-highlight">Preparing to run xfs_repair</a></li><li><a href="#running-xfs_repair" class="table-of-contents__link toc-highlight">Running xfs_repair</a></li><li><a href="#after-running-xfs_repair" class="table-of-contents__link toc-highlight">After running xfs_repair</a></li><li><a href="#additional-comments-1" class="table-of-contents__link toc-highlight">Additional comments</a></li><li><a href="#redoing-a-drive-formatted-with-xfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with XFS</a></li></ul></li><li><a href="#drives-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Drives formatted with BTRFS</a><ul><li><a href="#experimental-btrfs-recovery" class="table-of-contents__link toc-highlight">Experimental BTRFS recovery</a></li><li><a href="#redoing-a-drive-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with BTRFS</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v5-or-later" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v5 or later</a><ul><li><a href="#preparing-to-run-reiserfsck" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-2" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v4" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v4</a><ul><li><a href="#preparing-to-run-reiserfsck-1" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck-1" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck-1" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-3" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#xfs_repair" class="table-of-contents__link toc-highlight">xfs_repair</a></li><li><a href="#btrfs-scrub" class="table-of-contents__link toc-highlight">btrfs scrub</a></li><li><a href="#reiserfsck" class="table-of-contents__link toc-highlight">reiserfsck</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/check-harddrive-speed/index.html b/de/legacy/FAQ/check-harddrive-speed/index.html index 056d888ce..7328a00bd 100644 --- a/de/legacy/FAQ/check-harddrive-speed/index.html +++ b/de/legacy/FAQ/check-harddrive-speed/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -26,7 +26,7 @@ thread</a>. The script creates reports and graphs of drive read speeds, at multiple points across the surface of each drive.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-harddrive-speed.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Checking and fixing file systems</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/console/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Console</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/console/index.html b/de/legacy/FAQ/console/index.html index 78d238f4d..5a869cad4 100644 --- a/de/legacy/FAQ/console/index.html +++ b/de/legacy/FAQ/console/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -183,7 +183,7 @@ line into <code>/boot/config/go</code> similar to <code>/boot/macros</code>.</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token shebang important">#!/bin/bash</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set dn like Windows dir/o-d, newest files first</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias dn='ls -Aogt --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set ds like dn plus Windows dir/s, newest files first, include all subdirs</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ds='ls -AogtR --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># start tail of syslog with plenty of lines</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias tale='tail -f --lines=200 /var/log/syslog'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># an attempt to emulate the old Norton FF (FileFind)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ff='find . -wholename '/proc' -prune -o -name '"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set screen blanking (if idle for 10 minutes) and monitor to standby (if idle for 30 minutes)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">/bin/setterm -blank </span><span class="token number">10</span><span class="token plain"> -powersave powerdown -powerdown </span><span class="token number">30</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>When these macros are added to <code>/etc/profile</code>, they are available in any console you open, whether by SSH or Telnet or at the physical console on the UnRAID machine.</p><p>UnRAID already includes one macro - <code>v</code> is aliased to <code>ls -l</code>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/console.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Check Harddrive Speed</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#basics-of-console-usage" class="table-of-contents__link toc-highlight">Basics of Console Usage</a></li><li><a href="#console-commands-for-hard-drives" class="table-of-contents__link toc-highlight">Console Commands for Hard Drives</a><ul><li><a href="#hdparm" class="table-of-contents__link toc-highlight">hdparm</a></li><li><a href="#smartctl" class="table-of-contents__link toc-highlight">smartctl</a></li><li><a href="#other-hard-drive-commands" class="table-of-contents__link toc-highlight">other hard drive commands</a></li></ul></li><li><a href="#console-commands-for-networking" class="table-of-contents__link toc-highlight">Console Commands for Networking</a></li><li><a href="#console-commands-for-system-management" class="table-of-contents__link toc-highlight">Console Commands for System Management</a><ul><li><a href="#to-cleanly-stop-the-array-from-the-command-line" class="table-of-contents__link toc-highlight">To cleanly Stop the array from the command line</a></li></ul></li><li><a href="#console-commands-for-files-and-folders" class="table-of-contents__link toc-highlight">Console Commands for Files and Folders</a></li><li><a href="#console-commands-for-system-information" class="table-of-contents__link toc-highlight">Console Commands for System Information</a><ul><li><a href="#cpu-info" class="table-of-contents__link toc-highlight">CPU Info</a></li><li><a href="#memory-info" class="table-of-contents__link toc-highlight">Memory Info</a></li><li><a href="#sensor-info" class="table-of-contents__link toc-highlight">Sensor Info</a></li><li><a href="#network-info" class="table-of-contents__link toc-highlight">Network Info</a></li><li><a href="#other-hardware-info" class="table-of-contents__link toc-highlight">Other Hardware Info</a></li><li><a href="#version-info" class="table-of-contents__link toc-highlight">Version Info</a></li></ul></li><li><a href="#command-macros" class="table-of-contents__link toc-highlight">Command Macros</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/parity-swap-procedure/index.html b/de/legacy/FAQ/parity-swap-procedure/index.html index 34221e507..aecf54ecb 100644 --- a/de/legacy/FAQ/parity-swap-procedure/index.html +++ b/de/legacy/FAQ/parity-swap-procedure/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -113,7 +113,7 @@ starting and stopping the array one time.</p><ol><li>Stop the array.</li><li>Power down the unit.</li><li>Replace the parity disk with the new bigger one.</li><li>Replace the failed disk with your old parity disk.</li><li>Power up the unit.</li><li>Start the array.</li><li>When you start the array, the system will first copy the parity information to the new parity disk, and then reconstruct the contents of the failed disk.</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/parity-swap-procedure.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/console/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Console</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Replacing a Data Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/replacing-a-data-drive/index.html b/de/legacy/FAQ/replacing-a-data-drive/index.html index 6981b0821..0760ea0b2 100644 --- a/de/legacy/FAQ/replacing-a-data-drive/index.html +++ b/de/legacy/FAQ/replacing-a-data-drive/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -54,7 +54,7 @@ array on-line, start Data-Rebuild, and then expand the file system."</li><li>Hefty disk activity and main page will show lots of reading on "the other" disks and writing on new disk as data is being rebuilt.</li><li>End</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-a-data-drive.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/replacing-multiple-data-drives/index.html b/de/legacy/FAQ/replacing-multiple-data-drives/index.html index 22e7bfb20..f53cf98ea 100644 --- a/de/legacy/FAQ/replacing-multiple-data-drives/index.html +++ b/de/legacy/FAQ/replacing-multiple-data-drives/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -61,7 +61,7 @@ slot assignments of the new drive or any other drives at this point.</p></li><li><p>Start array and let parity rebuild.</p></li></ol><p><strong>Important! If any user shares are set to include/exclude specific disks, don't forget to update these settings to reflect the new drive numbering.</strong></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-multiple-data-drives.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Replacing a Data Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#faster-method" class="table-of-contents__link toc-highlight">Faster Method</a></li><li><a href="#safer-method" class="table-of-contents__link toc-highlight">Safer Method</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html b/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html index 13baf649d..7be1b3ca2 100644 --- a/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html +++ b/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -108,7 +108,7 @@ If wrong, you may have to select different sensors or <a href="http://linux.die.net/man/5/sensors.conf" target="_blank" rel="noopener noreferrer">customize</a> the <strong>sensors.conf</strong> file.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#setting-up-sensing-for-v6" class="table-of-contents__link toc-highlight">Setting up sensing for v6</a></li><li><a href="#setting-up-sensing-for-older-versions" class="table-of-contents__link toc-highlight">Setting up sensing for older versions</a><ul><li><a href="#step-1-open-a-console" class="table-of-contents__link toc-highlight">Step 1: Open a console</a></li><li><a href="#step-2-run-sensors" class="table-of-contents__link toc-highlight">Step 2: Run sensors</a></li><li><a href="#step-3-note-the-devices" class="table-of-contents__link toc-highlight">Step 3: Note the devices</a></li><li><a href="#step-4-note-the-sensors" class="table-of-contents__link toc-highlight">Step 4: Note the sensors</a></li><li><a href="#step-5-create-sensorsconf" class="table-of-contents__link toc-highlight">Step 5: Create sensors.conf</a></li><li><a href="#step-6-prepare-sensors-detect" class="table-of-contents__link toc-highlight">Step 6: Prepare sensors-detect</a></li><li><a href="#step-7-run-sensors-detect" class="table-of-contents__link toc-highlight">Step 7: Run sensors-detect</a></li><li><a href="#step-8-note-the-drivers" class="table-of-contents__link toc-highlight">Step 8: Note the drivers</a></li><li><a href="#step-9-add-modprobes-to-go" class="table-of-contents__link toc-highlight">Step 9: Add modprobes to go</a></li><li><a href="#step-10-add-the-copy-instruction-to-go" class="table-of-contents__link toc-highlight">Step 10: Add the copy instruction to go</a></li><li><a href="#step-11-reboot-and-check" class="table-of-contents__link toc-highlight">Step 11: Reboot and check</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html b/de/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html index b9f251976..26f635706 100644 --- a/de/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html +++ b/de/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -72,7 +72,7 @@ be lost (unless previously backed up elsewhere.)</p><p>10<!-- -->.<!-- --> Edit 'go' file to call script</p><ul><li>I added the following lines to my go script to initiate the sleep script during boot:</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># Execute s3.sh sleep script</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">fromdos </span><span class="token operator"><</span><span class="token plain"> /boot/custom/bin/s3.sh </span><span class="token operator">|</span><span class="token plain"> at now + </span><span class="token number">1</span><span class="token plain"> minute</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ul><li>Make sure you adjust file directory structure as necessary depending upon where you saved your <strong>s3.sh</strong> script.</li></ul><p>11<!-- -->.<!-- --> Re-boot / test</p><p>Good luck!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Shrink Array</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/shrink-array/index.html b/de/legacy/FAQ/shrink-array/index.html index 4abf25c73..d83b6a0d4 100644 --- a/de/legacy/FAQ/shrink-array/index.html +++ b/de/legacy/FAQ/shrink-array/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -147,7 +147,7 @@ write" (sometimes known as "turbo write" because it runs significantly faster) with the following command at the command line </em>after<!-- -->*<!-- --> the array is started:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">mdcmd </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"> md_write_method </span><span class="token number">1</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="In die Zwischenablage kopieren" title="Kopieren" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/shrink-array.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Terminal Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#for-unraid-v62-and-later" class="table-of-contents__link toc-highlight">For Unraid v6.2 and later</a><ul><li><a href="#the-remove-drives-then-rebuild-parity-method" class="table-of-contents__link toc-highlight">The "Remove Drives Then Rebuild Parity" Method</a></li><li><a href="#the-clear-drive-then-remove-drive-method" class="table-of-contents__link toc-highlight">The "Clear Drive Then Remove Drive" Method</a></li></ul></li><li><a href="#for-unraid-v60-and-61-and-possibly-50" class="table-of-contents__link toc-highlight">For Unraid v6.0 and 6.1 and possibly 5.0</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/terminal-access/index.html b/de/legacy/FAQ/terminal-access/index.html index 278b9f901..8b0c8f55b 100644 --- a/de/legacy/FAQ/terminal-access/index.html +++ b/de/legacy/FAQ/terminal-access/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -124,7 +124,7 @@ server"</a></li><li><a href="/de/legacy/FAQ/console/">Console</a> - basics of console usage, plus commands for drives, networking, system management, files and folders, and system information</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/terminal-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Shrink Array</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#ssh" class="table-of-contents__link toc-highlight">SSH</a></li><li><a href="#telnet" class="table-of-contents__link toc-highlight">Telnet</a><ul><li><a href="#using-telnet" class="table-of-contents__link toc-highlight">Using Telnet</a></li></ul></li><li><a href="#putty" class="table-of-contents__link toc-highlight">PuTTY</a></li><li><a href="#opening-a-terminal-session-with-the-windows-telnet-tool" class="table-of-contents__link toc-highlight">Opening a terminal session with the Windows Telnet tool</a></li><li><a href="#related-links" class="table-of-contents__link toc-highlight">Related links</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html b/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html index 0758b2f6d..d9fad0165 100644 --- a/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html +++ b/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -41,7 +41,7 @@ that have been created as part of this job. This can be rectified by running the 'New Permissions' job from the tools menu in the web admin after the copy process has completed.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Terminal Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#another-method-using-netcat-and-tar" class="table-of-contents__link toc-highlight">Another method using Netcat and Tar</a></li><li><a href="#unicode-issues" class="table-of-contents__link toc-highlight">Unicode issues</a></li><li><a href="#permission-issues-after-copying" class="table-of-contents__link toc-highlight">Permission issues after copying</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/transferring-files-within-the-unraid-server/index.html b/de/legacy/FAQ/transferring-files-within-the-unraid-server/index.html index a3d0eaf0e..e5baa0630 100644 --- a/de/legacy/FAQ/transferring-files-within-the-unraid-server/index.html +++ b/de/legacy/FAQ/transferring-files-within-the-unraid-server/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -74,7 +74,7 @@ structure.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="wildcards">Wildcards<a href="#wildcards" class="hash-link" aria-label="Direkter Link zur Wildcards" title="Direkter Link zur Wildcards">​</a></h3><p>Wildcards are available as well. For example, if you want to copy all of the files from Disk 2 over to Disk 3, use the <strong>mv</strong> command like this:</p><p><code>mv /mnt/disk2/* /mnt/disk3</code></p><p>In this example, all files and folders on Disk 2 would be relocated over to Disk 3 in the exact same folder structure as it was on Disk 2.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Understanding SMART Reports</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#midnight-commander---easy-to-use-gui-tool" class="table-of-contents__link toc-highlight">Midnight Commander - Easy to Use GUI Tool</a></li><li><a href="#move-files-overnight" class="table-of-contents__link toc-highlight">Move Files Overnight</a></li><li><a href="#unix-commands" class="table-of-contents__link toc-highlight">Unix Commands</a><ul><li><a href="#copying-files" class="table-of-contents__link toc-highlight">Copying files</a></li><li><a href="#moving-files" class="table-of-contents__link toc-highlight">Moving files</a></li><li><a href="#quotes" class="table-of-contents__link toc-highlight">Quotes</a></li><li><a href="#wildcards" class="table-of-contents__link toc-highlight">Wildcards</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/understanding-smart-reports/index.html b/de/legacy/FAQ/understanding-smart-reports/index.html index 11d2cfbd6..98ade3aba 100644 --- a/de/legacy/FAQ/understanding-smart-reports/index.html +++ b/de/legacy/FAQ/understanding-smart-reports/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -217,7 +217,7 @@ MyMain thread; an UnMENU plugin; after installing UnMENU, install this next; has a Smart View that provides color-coded SMART info for all drives</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/understanding-smart-reports.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prologue" class="table-of-contents__link toc-highlight">Prologue</a></li><li><a href="#introduction-to-smart" class="table-of-contents__link toc-highlight">Introduction to SMART</a></li><li><a href="#smart-report-structure" class="table-of-contents__link toc-highlight">SMART report structure</a><ul><li><a href="#general-information-section" class="table-of-contents__link toc-highlight">General information section</a></li><li><a href="#smart-overall-health-test" class="table-of-contents__link toc-highlight">SMART overall health test</a></li><li><a href="#smart-parameters-section" class="table-of-contents__link toc-highlight">SMART parameters section</a></li><li><a href="#smart-attributes-section" class="table-of-contents__link toc-highlight">SMART attributes section</a></li><li><a href="#error-log-section" class="table-of-contents__link toc-highlight">Error Log section</a></li><li><a href="#test-results-section" class="table-of-contents__link toc-highlight">Test results section</a></li></ul></li><li><a href="#table-of-attributes" class="table-of-contents__link toc-highlight">Table of attributes</a><ul><li><a href="#1-raw_read_error_rate" class="table-of-contents__link toc-highlight">1 Raw_Read_Error_Rate</a></li><li><a href="#3-spin_up_time" class="table-of-contents__link toc-highlight">3 Spin_Up_Time</a></li><li><a href="#4-start_stop_count" class="table-of-contents__link toc-highlight">4 Start_Stop_Count</a></li><li><a href="#5-reallocated_sector_ct" class="table-of-contents__link toc-highlight">5 Reallocated_Sector_Ct</a></li><li><a href="#7-seek_error_rate" class="table-of-contents__link toc-highlight">7 Seek_Error_Rate</a></li><li><a href="#9-power_on_hours" class="table-of-contents__link toc-highlight">9 Power_On_Hours</a></li></ul></li><li><a href="#additional-info" class="table-of-contents__link toc-highlight">Additional info</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/legacy/FAQ/usb-flash-drive-preparation/index.html b/de/legacy/FAQ/usb-flash-drive-preparation/index.html index 42e31e985..9de8432c9 100644 --- a/de/legacy/FAQ/usb-flash-drive-preparation/index.html +++ b/de/legacy/FAQ/usb-flash-drive-preparation/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ flash drive, check <a href="http://www.weethet.nl/english/hardware_bootfromusbstick.php" target="_blank" rel="noopener noreferrer">here</a>, near the bottom of the page. Also see -<a href="/de/unraid-os/manual/getting-started.md/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="Direkter Link zur If the Flash will not boot, read over the following tips" title="Direkter Link zur If the Flash will not boot, read over the following tips">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about +<a href="/de/unraid-os/manual/getting-started/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="Direkter Link zur If the Flash will not boot, read over the following tips" title="Direkter Link zur If the Flash will not boot, read over the following tips">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about the geometry or configuration of the USB flash drive. Some combinations of motherboard, BIOS, and flash drive do not work, or only work after more advanced 'modifications'. The following tips are what users have @@ -165,7 +165,7 @@ instructions, using Ubuntu or similar, can be found here: <a href="http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/" target="_blank" rel="noopener noreferrer">http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/</a>.</p></li><li><p>And last of all, try upgrading the BIOS of your motherboard. A later BIOS may have better support for booting from USB.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Understanding SMART Reports</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/contribute/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Contribute</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#usb-flash-drives" class="table-of-contents__link toc-highlight">USB Flash Drives</a></li><li><a href="#instructions" class="table-of-contents__link toc-highlight">Instructions</a><ul><li><a href="#windows-xp" class="table-of-contents__link toc-highlight">Windows XP</a></li><li><a href="#windows-vista-and-windows-7" class="table-of-contents__link toc-highlight">Windows Vista and Windows 7</a></li><li><a href="#macos-x" class="table-of-contents__link toc-highlight">MacOS X</a></li></ul></li><li><a href="#booting-unraid-server" class="table-of-contents__link toc-highlight">Booting Unraid Server</a></li><li><a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="table-of-contents__link toc-highlight">If the Flash will not boot, read over the following tips</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/search/index.html b/de/search/index.html index 06b81564a..17ae6f922 100644 --- a/de/search/index.html +++ b/de/search/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/search/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><h1>Suche in der Dokumentation</h1><form class="row"><div class="col searchQueryColumn_RTkw col--12"><input type="search" name="q" class="searchQueryInput_u2C7" placeholder="Geben Sie hier Ihre Suche ein" aria-label="Suche" autocomplete="off" autofocus=""></div></form><div class="row"><div class="col col--8 searchResultsColumn_JPFH"></div><div class="col col--4 text--right searchLogoColumn_rJIA"><a target="_blank" rel="noopener noreferrer" href="https://www.algolia.com/" aria-label="Suche von Algolia"><svg viewBox="0 0 168 24" class="algoliaLogo_rT1R"><g fill="none"><path class="algoliaLogoPathFill_WdUC" d="M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"></path><path fill="#5468FF" d="M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"></path><path fill="white" d="M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"></path></g></svg></a></div></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/sitemap.xml b/de/sitemap.xml index ebb6a6155..c7ded268d 100644 --- a/de/sitemap.xml +++ b/de/sitemap.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/de/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/de/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/security/data-encryption/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/security/flash-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/security/good-practices/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/security/secure-webgui-ssl/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/security/vpn/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/shares/create-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/shares/delete-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/shares/disk-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/shares/network-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/shares/user-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/de/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file diff --git a/de/unraid-os/faq/licensing-faq/index.html b/de/unraid-os/faq/licensing-faq/index.html index 18b075dfe..ef924a68b 100644 --- a/de/unraid-os/faq/licensing-faq/index.html +++ b/de/unraid-os/faq/licensing-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -20,7 +20,7 @@ corner of the page.</p><p>You can also purchase a <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">license activation code directly from our website</a> and redeem the code for a license later when your server is up and running. The activation code will be on -your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="Direkter Link zur How to Redeem a License Activation Code" title="Direkter Link zur How to Redeem a License Activation Code">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/de/unraid-os/manual/getting-started.md/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) +your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="Direkter Link zur How to Redeem a License Activation Code" title="Direkter Link zur How to Redeem a License Activation Code">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/de/unraid-os/manual/getting-started/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) For Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key." Select the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile. If you have any issues or questions with the above, there is also a walk through video: <a href="https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2" target="_blank" rel="noopener noreferrer">Activation Code Instructional Video</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-upgrade-my-unraid-license">How do I Upgrade my Unraid License?<a href="#how-do-i-upgrade-my-unraid-license" class="hash-link" aria-label="Direkter Link zur How do I Upgrade my Unraid License?" title="Direkter Link zur How do I Upgrade my Unraid License?">​</a></h2><p>If you want or need to upgrade your license to a higher tier, upgrades @@ -76,7 +76,7 @@ to them. There will also be an invoice download link upon completion of the checkout.</p><p>For bulk OEM/reseller pricing of 10 licenses or more, <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">please contact us</a>!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/faq/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">FAQ</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates" class="table-of-contents__link toc-highlight">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</a></li><li><a href="#how-do-i-purchase-unraid" class="table-of-contents__link toc-highlight">How do I Purchase Unraid?</a></li><li><a href="#how-to-redeem-a-license-activation-code" class="table-of-contents__link toc-highlight">How to Redeem a License Activation Code</a></li><li><a href="#how-do-i-upgrade-my-unraid-license" class="table-of-contents__link toc-highlight">How do I Upgrade my Unraid License?</a></li><li><a href="#what-does-unlimited-mean-for-trial-and-pro-licenses" class="table-of-contents__link toc-highlight">What does "Unlimited" mean for trial and Pro licenses?</a></li><li><a href="#what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license" class="table-of-contents__link toc-highlight">What Happens if my USB Fails? Do I Have to Repurchase a License?</a></li><li><a href="#how-do-i-manually-install-my-license-keyfile-to-my-usb-flash" class="table-of-contents__link toc-highlight">How do I Manually Install my License keyfile to my USB Flash?</a></li><li><a href="#im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do" class="table-of-contents__link toc-highlight">I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?</a></li><li><a href="#how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have" class="table-of-contents__link toc-highlight">How do I determine what registration type (Basic, Plus, or Pro) I have?</a></li><li><a href="#unraid-os-trial" class="table-of-contents__link toc-highlight">Unraid OS Trial</a><ul><li><a href="#can-i-transfer-my-trial-key-to-a-new-flash-device" class="table-of-contents__link toc-highlight">Can I Transfer my Trial Key to a New Flash Device?</a></li><li><a href="#how-do-i-extend-my-unraid-trial" class="table-of-contents__link toc-highlight">How Do I Extend My Unraid Trial?</a></li></ul></li><li><a href="#im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that" class="table-of-contents__link toc-highlight">I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/faq/os-faq/index.html b/de/unraid-os/faq/os-faq/index.html index 5672da57c..affd99912 100644 --- a/de/unraid-os/faq/os-faq/index.html +++ b/de/unraid-os/faq/os-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -43,12 +43,7 @@ able to simply re-assign them all and start the array.</p><p>You may need to reconfigure your shares, users, and other system settings, but your data should be intact.</p><p>If you cannot remember your drive assignments, <a href="https://forums.unraid.net/forum/55-general-support/" target="_blank" rel="noopener noreferrer">please post on the forum for further assistance (under General -Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="Direkter Link zur What Should I do if I have Forgotten my Root Password?" title="Direkter Link zur What Should I do if I have Forgotten my Root Password?">​</a></h2><p>To reset your <a href="/de/unraid-os/manual/getting-started.md/#connecting-to-the-unraid-webgui">root -password</a>:</p><ol><li>Shutdown your server.</li><li>Plug your USB flash into a laptop or another computer.</li><li>Open the USB folder and delete the files "config/shadow" and -"config/smbpasswd". <em>(DO NOT delete "config/passwd).</em> This will -reset all user passwords, including the root user to blank.</li><li>Now, safely eject your USB and reboot it on your Unraid server and -you’re in. You can then set a new password in the Users tab of the -Unraid webgui.</li></ol><p><em>Important: this process only works for user passwords. If you encrypt +Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="Direkter Link zur What Should I do if I have Forgotten my Root Password?" title="Direkter Link zur What Should I do if I have Forgotten my Root Password?">​</a></h2><p>See <a href="/de/unraid-os/manual/troubleshooting/#lost-root-password">Lost Root Password</a></p><p><em>Important: this process only works for user passwords. If you encrypt your drives and forget this password, unfortunately you are hosed. There is no way for Lime Technology or anyone to recover this password. Please remember it or write it down in a secure, locked place!</em></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?<a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="hash-link" aria-label="Direkter Link zur How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?" title="Direkter Link zur How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?">​</a></h2><ol><li>Ensure there is no data on the system that you want or need.</li><li>Stop the array and shut down the server.</li><li>Remove the USB flash device.</li><li>Using a Windows or Mac computer, reformat the flash using the USB @@ -114,7 +109,7 @@ each time to perform the swap and rebuilds. This will ensure the devices are not written during the process. At the end of the process, the original storage device should be intact.</p><p>Also highly recommend downloading flash backup: Main/Flash/Flash Backup</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Licensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Redeem License Activation Code</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#i-need-help-with-a-build--system-configuration-where-do-i-go" class="table-of-contents__link toc-highlight">I Need Help with a Build / System Configuration. Where do I go?</a></li><li><a href="#does-unraid-support-hardware-based-raid-controllers" class="table-of-contents__link toc-highlight">Does Unraid Support Hardware-based RAID Controllers?</a></li><li><a href="#can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms" class="table-of-contents__link toc-highlight">Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?</a></li><li><a href="#my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration" class="table-of-contents__link toc-highlight">My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?</a></li><li><a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="table-of-contents__link toc-highlight">What Should I do if I have Forgotten my Root Password?</a></li><li><a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="table-of-contents__link toc-highlight">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?</a></li><li><a href="#whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do" class="table-of-contents__link toc-highlight">Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?</a></li><li><a href="#how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device" class="table-of-contents__link toc-highlight">How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?</a></li><li><a href="#whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports" class="table-of-contents__link toc-highlight">What's the best way to add more storage to a system above what the built-in controller supports?</a></li><li><a href="#does-unraid-support-various-raid-types-such-as-raid15610" class="table-of-contents__link toc-highlight">Does Unraid support various RAID types such as RAID1/5/6/10?</a></li><li><a href="#my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support" class="table-of-contents__link toc-highlight">My system is crashing but my logs don't contain the event. What do I do to obtain support?</a></li><li><a href="#is-there-any-way-to-disable-the-br0-bridge" class="table-of-contents__link toc-highlight">Is there any way to disable the br0 bridge?</a></li><li><a href="#how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method" class="table-of-contents__link toc-highlight">How do I enable UEFI boot mode if I configured my flash device using the manual method?</a></li><li><a href="#im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine" class="table-of-contents__link toc-highlight">I'm having problems passing through my RTX-class GPU to a virtual machine</a></li><li><a href="#does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them" class="table-of-contents__link toc-highlight">Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?</a></li><li><a href="#i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that" class="table-of-contents__link toc-highlight">I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/faq/redeem-license-activation-code/index.html b/de/unraid-os/faq/redeem-license-activation-code/index.html index 5ce64f0de..321036c77 100644 --- a/de/unraid-os/faq/redeem-license-activation-code/index.html +++ b/de/unraid-os/faq/redeem-license-activation-code/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/faq/redeem-license-activation-code/">Redeem License Activation Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/faq/"><span itemprop="name">FAQ</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Redeem License Activation Code</span><meta itemprop="position" content="3"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Redeem License Activation Code</h1><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website</a>. Your unique activation code will be on your purchase receipt.</p><p>Next, follow our <a href="/de/unraid-os/faq/manual/getting-started.md/">Getting Started</a> guide to set up an Unraid server.</p><p>Once your server is up and running:</p><ol><li>Login to your Unraid server's webgui. (<a href="http://tower" target="_blank" rel="noopener noreferrer">http://tower</a> or +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/faq/redeem-license-activation-code/">Redeem License Activation Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/faq/"><span itemprop="name">FAQ</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Redeem License Activation Code</span><meta itemprop="position" content="3"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Redeem License Activation Code</h1><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website</a>. Your unique activation code will be on your purchase receipt.</p><p>Next, follow our <a href="/de/unraid-os/manual/getting-started/">Getting Started</a> guide to set up an Unraid server.</p><p>Once your server is up and running:</p><ol><li>Login to your Unraid server's webgui. (<a href="http://tower" target="_blank" rel="noopener noreferrer">http://tower</a> or <a href="http://tower.local" target="_blank" rel="noopener noreferrer">http://tower.local</a> from Mac by default)</li><li>For Unraid 6.10 and newer, Sign in to your Unraid.net account (or <a href="https://account.unraid.net/" target="_blank" rel="noopener noreferrer">create one</a>) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to @@ -27,7 +27,7 @@ Codes are one-time use for generating your Unraid license keyfile.</em></li></ol><p>If you have any issues or questions with the above, there is also a walk through video: <a href="https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2" target="_blank" rel="noopener noreferrer">Activation Code Instructional Video</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Unraid Account</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/faq/unraid-account/index.html b/de/unraid-os/faq/unraid-account/index.html index 58543096d..0efe57835 100644 --- a/de/unraid-os/faq/unraid-account/index.html +++ b/de/unraid-os/faq/unraid-account/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -21,7 +21,7 @@ <a href="/de/connect/about/">Unraid Connect</a>. This account is <em>not the same</em> as your server's root password that you use to login to the Unraid webgui.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/unraid-account.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Redeem License Activation Code</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/guides/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Guides</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-an-unraidnet-account" class="table-of-contents__link toc-highlight">What is an Unraid.net Account?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/guides/configuring-time-machine/index.html b/de/unraid-os/guides/configuring-time-machine/index.html index 356eb8e38..d7b61de4c 100644 --- a/de/unraid-os/guides/configuring-time-machine/index.html +++ b/de/unraid-os/guides/configuring-time-machine/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -59,7 +59,7 @@ there, simply follow the instructions above!</p><p>For more info on Time Machine shares, be sure to also check out Space Invader One's excellent video on <a href="https://www.youtube.com/watch?v=5J955nNIdo0&feature=youtu.be" target="_blank" rel="noopener noreferrer">Unraid Shares and MacOS!</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/configuring-time-machine.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/guides/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Guides</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#guide-setting-up-a-time-machine-share-on-your-unraid-server" class="table-of-contents__link toc-highlight">Guide: Setting up a Time Machine Share on your Unraid Server</a></li><li><a href="#create-a-time-machine-backup-on-your-unraid-server" class="table-of-contents__link toc-highlight">Create a Time Machine Backup on your Unraid Server</a></li><li><a href="#unraid-and-time-machine-setup" class="table-of-contents__link toc-highlight">Unraid and Time Machine Setup</a></li><li><a href="#creating-multiple-time-machine-shares-for-different-peoplemacs" class="table-of-contents__link toc-highlight">Creating Multiple Time Machine Shares for Different People/Macs</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/guides/wol-setup-for-unraid/index.html b/de/unraid-os/guides/wol-setup-for-unraid/index.html index 27bb981f4..4908c2e3d 100644 --- a/de/unraid-os/guides/wol-setup-for-unraid/index.html +++ b/de/unraid-os/guides/wol-setup-for-unraid/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/guides/"><span itemprop="name">Guides</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">How To Setup Wake On LAN (WOL) for UNRAID</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>How To Setup Wake On LAN (WOL) for UNRAID</h1><p>(assuming onboard NIC and WOL activated in motherboard's BIOS)</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="put-to-sleep">Put to sleep<a href="#put-to-sleep" class="hash-link" aria-label="Direkter Link zur Put to sleep" title="Direkter Link zur Put to sleep">​</a></h2><ol><li>Webterminal or SSH into server</li><li>Type <code>ifconfig</code> and note IP-address and MAC-Address (ether) of used NIC</li><li>Type <code>ethtool -s eth0 wol g</code></li><li>Type <code>echo -n mem > /sys/power/state</code></li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wake-up-using">Wake up using<a href="#wake-up-using" class="hash-link" aria-label="Direkter Link zur Wake up using" title="Direkter Link zur Wake up using">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="macos--linux--windows">MacOS / Linux / Windows<a href="#macos--linux--windows" class="hash-link" aria-label="Direkter Link zur MacOS / Linux / Windows" title="Direkter Link zur MacOS / Linux / Windows">​</a></h3><ol><li>Download "MiniWOL2" from <a href="https://www.tweaking4all.com/home-theatre/miniwol2/" target="_blank" rel="noopener noreferrer">https://www.tweaking4all.com/home-theatre/miniwol2/</a> and install</li><li>Click miniicon, push "Add" button and name the device to wake (Alias in Menu)</li><li>Set "IPv4 Address" (manually or select from ARP List) and "MAC-Address" (manually or click on 'detect') in appropriate fields</li><li>Set "Broadcast" 255.255.255.255</li><li>Push "Test" to wake-up device (needs to be in sleep mode: see above)</li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="windows-alternative">Windows: (ALTERNATIVE)<a href="#windows-alternative" class="hash-link" aria-label="Direkter Link zur Windows: (ALTERNATIVE)" title="Direkter Link zur Windows: (ALTERNATIVE)">​</a></h3><ol><li>Download "wolcmd.exe" from <a href="https://www.depicus.com/wake-on-lan/wake-on-lan-cmd" target="_blank" rel="noopener noreferrer">https://www.depicus.com/wake-on-lan/wake-on-lan-cmd</a> and unpack</li><li>Open command line prompt and cd to dowload directory</li><li>Type <code>wolcmd.exe <ether> <ip-dest> 255.255.255.255</code></li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="linux-alternative">Linux: (ALTERNATIVE)<a href="#linux-alternative" class="hash-link" aria-label="Direkter Link zur Linux: (ALTERNATIVE)" title="Direkter Link zur Linux: (ALTERNATIVE)">​</a></h3><ol><li>Type <code>wakeonlan <MAC-Address></code> OR</li><li>Type <code>wol <MAC-Address></code></li></ol><p>For Guide assistance, see: <a href="https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/" target="_blank" rel="noopener noreferrer">https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/wol-setup-for-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Apple Time Machine</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/manual/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Manual</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#put-to-sleep" class="table-of-contents__link toc-highlight">Put to sleep</a></li><li><a href="#wake-up-using" class="table-of-contents__link toc-highlight">Wake up using</a><ul><li><a href="#macos--linux--windows" class="table-of-contents__link toc-highlight">MacOS / Linux / Windows</a></li><li><a href="#windows-alternative" class="table-of-contents__link toc-highlight">Windows: (ALTERNATIVE)</a></li><li><a href="#linux-alternative" class="table-of-contents__link toc-highlight">Linux: (ALTERNATIVE)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/additional-settings/index.html b/de/unraid-os/manual/additional-settings/index.html index 39d4fbcad..0649f54bb 100644 --- a/de/unraid-os/manual/additional-settings/index.html +++ b/de/unraid-os/manual/additional-settings/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to further refine your setup by customizing your IP address, hostname, disk tunables, and other settings. This section goes over the various settings you can configure from the Unraid webGui. All settings controls @@ -65,7 +65,7 @@ workgroup, or even join an active directory domain.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="ftp-file-transfer-protocol">FTP (File Transfer Protocol)<a href="#ftp-file-transfer-protocol" class="hash-link" aria-label="Direkter Link zur FTP (File Transfer Protocol)" title="Direkter Link zur FTP (File Transfer Protocol)">​</a></h2><p>Users can connect via FTP if they are added to the <strong>FTP user(s)</strong> field on this page. If no users are added, the FTP service will not be started.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="syslog">Syslog<a href="#syslog" class="hash-link" aria-label="Direkter Link zur Syslog" title="Direkter Link zur Syslog">​</a></h2><p>Users can set up logging of the syslog to permanent storage</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wireguard">WireGuard<a href="#wireguard" class="hash-link" aria-label="Direkter Link zur WireGuard" title="Direkter Link zur WireGuard">​</a></h2><p>WireGuard VPN Server</p><p>Users can set up a VPN connection using -<a href="/de/unraid-os/manual/security/#wireguard%22">WireGuard</a> for secure connections +<a href="/de/unraid-os/manual/additional-settings/security.md/#wireguard%22">WireGuard</a> for secure connections to/from the internet</p><p><a href="https://www.wireguard.com/" target="_blank" rel="noopener noreferrer">"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="confirmations">Confirmations<a href="#confirmations" class="hash-link" aria-label="Direkter Link zur Confirmations" title="Direkter Link zur Confirmations">​</a></h2><p>From here, you can disable the need for confirmations to perform various tasks.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="display-settings">Display Settings<a href="#display-settings" class="hash-link" aria-label="Direkter Link zur Display Settings" title="Direkter Link zur Display Settings">​</a></h2><p>Customize the appearance of the Unraid webGui from this page. This includes adjusting the date and time format, number format, toggles for @@ -121,7 +121,7 @@ <strong>Scheduler</strong> settings page of the Unraid GUI. Typically they are related to enhancing/tuning the <strong>Parity Check</strong> or <strong>Mover</strong> functionality although this is not mandated.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Troubleshooting</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Changing the Flash Device</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#cpu-isolation" class="table-of-contents__link toc-highlight">CPU Isolation</a></li><li><a href="#date--time" class="table-of-contents__link toc-highlight">Date & Time</a></li><li><a href="#disk-settings" class="table-of-contents__link toc-highlight">Disk Settings</a></li><li><a href="#docker" class="table-of-contents__link toc-highlight">Docker</a></li><li><a href="#identification" class="table-of-contents__link toc-highlight">Identification</a></li><li><a href="#network-settings" class="table-of-contents__link toc-highlight">Network Settings</a></li><li><a href="#global-share-settings" class="table-of-contents__link toc-highlight">Global Share Settings</a></li><li><a href="#ups-settings" class="table-of-contents__link toc-highlight">UPS Settings</a></li><li><a href="#vm-manager" class="table-of-contents__link toc-highlight">VM Manager</a></li><li><a href="#afp-apple-file-protocol" class="table-of-contents__link toc-highlight">AFP (Apple File Protocol)</a></li><li><a href="#nfs-network-file-system" class="table-of-contents__link toc-highlight">NFS (Network File System)</a></li><li><a href="#smb-server-message-block" class="table-of-contents__link toc-highlight">SMB (Server Message Block)</a></li><li><a href="#ftp-file-transfer-protocol" class="table-of-contents__link toc-highlight">FTP (File Transfer Protocol)</a></li><li><a href="#syslog" class="table-of-contents__link toc-highlight">Syslog</a></li><li><a href="#wireguard" class="table-of-contents__link toc-highlight">WireGuard</a></li><li><a href="#confirmations" class="table-of-contents__link toc-highlight">Confirmations</a></li><li><a href="#display-settings" class="table-of-contents__link toc-highlight">Display Settings</a></li><li><a href="#notifications-settings" class="table-of-contents__link toc-highlight">Notifications Settings</a></li><li><a href="#scheduler" class="table-of-contents__link toc-highlight">Scheduler</a><ul><li><a href="#parity-checks-read-checks" class="table-of-contents__link toc-highlight">Parity Checks (Read Checks)</a><ul><li><a href="#notes" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#mover" class="table-of-contents__link toc-highlight">Mover</a><ul><li><a href="#notes-1" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#other" class="table-of-contents__link toc-highlight">Other</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/applications/index.html b/de/unraid-os/manual/applications/index.html index 3c1de4fd7..efc010da3 100644 --- a/de/unraid-os/manual/applications/index.html +++ b/de/unraid-os/manual/applications/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or extending the base capabilities. One of the great strengths of Unraid is the ability for it to easily be made to function as more than a basic NAS system.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direkter Link zur Overview" title="Direkter Link zur Overview">​</a></h2><p>A number of mechanisms are provided by which the capability of an Unraid @@ -236,8 +236,8 @@ Unraid. The port to be used for such clients is displayed in the Unraid GUI on the VM tab when a VM is running. Using such an alternative client can work in cases where the NoVNC client does -not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/multi-language/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Multi-Language Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/security/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Security</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/changing-the-flash-device/index.html b/de/unraid-os/manual/changing-the-flash-device/index.html index 33a86652a..586c344ae 100644 --- a/de/unraid-os/manual/changing-the-flash-device/index.html +++ b/de/unraid-os/manual/changing-the-flash-device/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a PC or Mac, you should use the <a href="https://unraid.net/download" target="_blank" rel="noopener noreferrer">USB Flash Creator tool</a> for the easiest and most streamlined experience.</p><p>Alternatively, if you are using a Linux system or if the USB Flash @@ -147,7 +147,7 @@ include/exclude then you will need to look at the contents of the individual data drives to make sure these are as you want them (and correct them if not).</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/changing-the-flash-device.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/additional-settings/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Additional Settings</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/category/getting-started/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Getting Started</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-replace-your-usb-flash-boot-device" class="table-of-contents__link toc-highlight">Why replace your USB Flash boot device?</a></li><li><a href="#what-if-i-cant-backup-my-device" class="table-of-contents__link toc-highlight">What if I can't backup my device?</a></li><li><a href="#changing-a-flash-device-before-purchasing" class="table-of-contents__link toc-highlight">Changing a Flash Device Before Purchasing</a></li><li><a href="#using-the-flash-creator" class="table-of-contents__link toc-highlight">Using the Flash Creator</a></li><li><a href="#manual-method" class="table-of-contents__link toc-highlight">Manual Method</a></li><li><a href="#notes-about-replacing-your-registration-key" class="table-of-contents__link toc-highlight">Notes About Replacing your Registration Key</a></li><li><a href="#warning-on-sandisk-brand-usbs" class="table-of-contents__link toc-highlight">Warning on Sandisk Brand USBs</a></li><li><a href="#what-to-do-if-you-have-no-backup-and-do-not-know-your-disk-assignments" class="table-of-contents__link toc-highlight">What to do if you have no backup and do not know your disk assignments</a><ul><li><a href="#option-1" class="table-of-contents__link toc-highlight">Option 1</a></li><li><a href="#option-2-if-you-have-the-unassigned-devices-plugin-installed" class="table-of-contents__link toc-highlight">Option 2 If you have the Unassigned Devices plugin installed</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/docker-management/index.html b/de/unraid-os/manual/docker-management/index.html index 05c82c9fd..3b5ea48d1 100644 --- a/de/unraid-os/manual/docker-management/index.html +++ b/de/unraid-os/manual/docker-management/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application with its own isolated operating Linux environment, isolating compatibility or coexistence conflicts with other applications. If you want more information on docker and its underlying technology than is @@ -246,8 +246,8 @@ useful for testing out alternate versions before upgrading.</li><li>Click the <strong>Advanced View</strong> toggle on the top right when viewing the Docker page or adding applications to see additional configuration options.</li><li>Learn more about Docker containers from our <a href="https://forums.unraid.net/forum/47-docker-containers/" target="_blank" rel="noopener noreferrer">helpful user -community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Shares</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/storage-management/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Storage Management</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/getting-started/index.html b/de/unraid-os/manual/getting-started/index.html index 0169fe2db..1a0ad49ad 100644 --- a/de/unraid-os/manual/getting-started/index.html +++ b/de/unraid-os/manual/getting-started/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, boot the system, and configure your first array. The entire process should take less than 15 minutes.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Direkter Link zur Prerequisites" title="Direkter Link zur Prerequisites">​</a></h2><p>Before we begin:</p><ul><li>You should have your server assembled and connected via power and Ethernet.</li><li>You should have a monitor and keyboard attached for the initial @@ -113,7 +113,7 @@ field.</p><p>It is <strong>strongly</strong> recommended that you make use of this feature as the information available via that route is likely to be more extensive and up-to-date than any documentation.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="security-best-practices">Security Best Practices<a href="#security-best-practices" class="hash-link" aria-label="Direkter Link zur Security Best Practices" title="Direkter Link zur Security Best Practices">​</a></h3><p>Your Unraid server is likely to end up containing data that is valuable -to you so it can be a good idea to review the <a href="/de/unraid-os/manual/security/">Security Good +to you so it can be a good idea to review the <a href="/de/unraid-os/manual/security.md/">Security Good Practices</a> part of the documentation to ensure you are not doing something that may leave your system open to attack while leaving your valuable data at risk.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="advanced-bios-configuration-guide">Advanced BIOS Configuration Guide<a href="#advanced-bios-configuration-guide" class="hash-link" aria-label="Direkter Link zur Advanced BIOS Configuration Guide" title="Direkter Link zur Advanced BIOS Configuration Guide">​</a></h2><p><img loading="lazy" src="/de/assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg" width="300" height="187" class="img_ev3q"> @@ -207,7 +207,7 @@ can click for a 15 day extension. You can do this a total of two times before you must decide if you would like to purchase Unraid or not.</p><p><em>Note: You cannot change the USB flash device for Unraid Trials if you wish to continue where you left off.</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/category/getting-started/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/getting-started/manual-install-method/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Manual Install Method</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#quick-install-guide" class="table-of-contents__link toc-highlight">Quick Install Guide</a></li><li><a href="#initial-setup" class="table-of-contents__link toc-highlight">Initial Setup</a><ul><li><a href="#connecting-to-the-unraid-webgui" class="table-of-contents__link toc-highlight">Connecting to the Unraid webGui</a></li></ul></li><li><a href="#setting-a-root-password" class="table-of-contents__link toc-highlight">Setting a Root Password</a><ul><li><a href="#registering-and-installing-your-key" class="table-of-contents__link toc-highlight">Registering and Installing Your Key</a></li></ul></li><li><a href="#utilizing-unraid-connect" class="table-of-contents__link toc-highlight">Utilizing Unraid Connect</a></li><li><a href="#assigning-devices-to-the-array-and-pools" class="table-of-contents__link toc-highlight">Assigning Devices to the Array and Pool(s)</a></li><li><a href="#starting-the-array-and-formatting-your-devices" class="table-of-contents__link toc-highlight">Starting the Array and Formatting Your Devices</a></li><li><a href="#stopping-array-shutting-down-and-rebooting" class="table-of-contents__link toc-highlight">Stopping Array, Shutting Down, and Rebooting</a></li><li><a href="#important-considerations" class="table-of-contents__link toc-highlight">Important Considerations</a><ul><li><a href="#backing-up-the-flash-drive" class="table-of-contents__link toc-highlight">Backing Up the Flash Drive</a></li><li><a href="#using-the-built-in-help" class="table-of-contents__link toc-highlight">Using the built-in help</a></li><li><a href="#security-best-practices" class="table-of-contents__link toc-highlight">Security Best Practices</a></li></ul></li><li><a href="#advanced-bios-configuration-guide" class="table-of-contents__link toc-highlight">Advanced BIOS Configuration Guide</a></li><li><a href="#boot-mode-selector-syslinux" class="table-of-contents__link toc-highlight">Boot Mode Selector (Syslinux)</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a></li><li><a href="#faq" class="table-of-contents__link toc-highlight">F.A.Q</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/getting-started/manual-install-method/index.html b/de/unraid-os/manual/getting-started/manual-install-method/index.html index dcd8fbb95..0d5acf78d 100644 --- a/de/unraid-os/manual/getting-started/manual-install-method/index.html +++ b/de/unraid-os/manual/getting-started/manual-install-method/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Install Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Install Method</h1><p>If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Install Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Install Method</h1><p>If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, it is possible to manually format and prepare a bootable USB flash device. <strong>Note: this method only works for devices 32GB and <em>smaller</em>.</strong></p><ul><li>Plug the USB flash device into your Mac or PC.</li><li>Format the device using the FAT32 file system. It must <strong>not</strong> be ex-FAT or NTFS. If your drive is larger than 32GB then you need to use @@ -29,8 +29,8 @@ admin password when prompted.</li></ul></li><li><strong>Linux</strong>:<ul><li>copy <strong>make_bootable_linux</strong> file to hard drive</li><li>unmount (not eject) USB drive</li><li>run the following command from wherever you unpacked it to on your Linux system:</li><li>sudo bash ./make_bootable_linux</li></ul></li></ul></li></ul><p><strong>NOTE</strong>: during the process of running this script, the flash device may seem to disappear and reappear on your workstation a few times – -this is expected behavior.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/security/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Security</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +this is expected behavior.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/tools/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Tools</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/multi-language/index.html b/de/unraid-os/manual/multi-language/index.html index 115424ca6..7aae5193f 100644 --- a/de/unraid-os/manual/multi-language/index.html +++ b/de/unraid-os/manual/multi-language/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/de/assets/js/runtime~main.4d0a043d.js" as="script"> -<link rel="preload" href="/de/assets/js/main.76054a9f.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/de/opensearch.xml"><link rel="stylesheet" href="/de/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/de/assets/js/runtime~main.7fb1f846.js" as="script"> +<link rel="preload" href="/de/assets/js/main.85bcca4b.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direkter Link zur Introduction" title="Direkter Link zur Introduction">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> +<div role="region" aria-label="Zum Hauptinhalt springen"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Zum Hauptinhalt springen</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Schließen" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/de/"><div class="navbar__logo"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/de/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Deutsch</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-label="Umschalten zwischen dunkler und heller Ansicht (momentan dunkler Modus)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Suche"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Suche</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Zurück nach oben scrollen" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/de/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/de/category/unraid-os/">Unraid OS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/release-notes/">Release Notes</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/faq/">FAQ</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/guides/">Guides</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/de/category/manual/">Manual</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/shares/">Shares</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/unraid-os/manual/security/">Security</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/de/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/getting-started/">Getting Started</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/de/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/de/category/zfs/">ZFS</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/unraid-connect/">Unraid Connect</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/de/category/contribute/">Contribute</a><button aria-label="Umschalten der Seitenleiste mit einklappbarer Kategorie 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/de/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/de/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Auf dieser Seite</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direkter Link zur Introduction" title="Direkter Link zur Introduction">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> introduced the mechanism to <a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">support multiple languages</a> in the Unraid webGUI.</p><p>You can now download, install, and use the Unraid OS in the following @@ -53,8 +53,8 @@ forums</a> to get help or help others in your mother tongue.</p><p>Please see the <a href="https://forums.unraid.net/forum/75-multi-language-section/" target="_blank" rel="noopener noreferrer">Multi-Language Section</a> to -take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/applications/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">Community Applications</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/de/assets/js/runtime~main.4d0a043d.js"></script> -<script src="/de/assets/js/main.76054a9f.js"></script> +take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Diese Seite bearbeiten</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Dokumentation Seiten"><a class="pagination-nav__link pagination-nav__link--prev" href="/de/unraid-os/manual/security/vpn/"><div class="pagination-nav__sublabel">Zurück</div><div class="pagination-nav__label">VPN</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/de/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Weiter</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/de/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/de/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/de/assets/js/runtime~main.7fb1f846.js"></script> +<script src="/de/assets/js/main.85bcca4b.js"></script> </body> </html> \ No newline at end of file diff --git a/de/unraid-os/manual/security/data-encryption/index.html b/de/unraid-os/manual/security/data-encryption/index.html new file mode 100644 index 000000000..c5f88a866 --- /dev/null +++ b/de/unraid-os/manual/security/data-encryption/index.html @@ -0,0 +1,22 @@ +<!doctype html> +<html lang="de" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-unraid-os/manual/security/data-encryption"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.4.1"> +<title data-rh="true">Data Encryption | Unraid Docs + + + + + + + + + + +

+

Data Encryption

Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.

LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly.

The home page for LUKS can be found here

Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive.

The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives.


To encrypt a drive (Note that this will erase any content already on the drive).

  1. Go to the Main tab.
  2. Stop the array.
  3. Select the drive.
  4. In File system type change the file system to the encrypted type that you want.
  5. Select Apply to commit the change.
  6. Select Done to return to the Main tab. The drive will now show as unmountable and the option to format unmountable drives will be present.
  7. Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.

Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted.

caution

Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/security/flash-drive/index.html b/de/unraid-os/manual/security/flash-drive/index.html new file mode 100644 index 000000000..2d9ea5e96 --- /dev/null +++ b/de/unraid-os/manual/security/flash-drive/index.html @@ -0,0 +1,22 @@ + + + + + +Flash Drive | Unraid Docs + + + + + + + + + + +
+

Flash Drive

The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.

Backups

If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change.

You can easily achieve this from the Unraid webGUI:

  1. Select the flash drive on the Main tab.
  2. In the Flash Device Settings section select the Flash Backup button.
  3. The system will now create a ZIP file that is a backup of the contents of the flash drive.
  4. When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.

If you later need to recreate your flash drive for any reason, use this backup as input to the Limetech USB Creator tool.

Network Access

The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the Main tab.

  • *Network visibility: You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone.
  • Access rights: If network access is allowed you can specify any access permissions that you want applied.

Permissions

As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location.

There are a few ways to handle this:

  1. Copy the files to a location from which they can be executed.

    • The location /usr/local/bin is a good choice if you want the files on the default search path.
    • You can copy the files into position when booting by adding appropriate commands to the config/go file on the flash drive.
    • Give the files execute permission after copying them.
  2. For scripts, prefix the script name with the command that runs the script (e.g. bash path-to-script).

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/security/good-practices/index.html b/de/unraid-os/manual/security/good-practices/index.html new file mode 100644 index 000000000..399556ab0 --- /dev/null +++ b/de/unraid-os/manual/security/good-practices/index.html @@ -0,0 +1,26 @@ + + + + + +Good Practices | Unraid Docs + + + + + + + + + + +
+

Good Practices

We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.

#1 Set a strong root password

Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the Users tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI.

tip

There is a plugin available in Community Apps called Dynamix Password Validator. This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in.

You could also use this webpage to get a very quick assessment of the strength of any specific password.

#2 Review port mappings on your router

Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk.

Here are just a few ports you should be extra careful with when forwarding:

  • Port 80: Used to access the webGUI without SSL - unless you've rebound access to another port on the Management Access settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you're doing. If you want to make the webGUI remotely accessible, install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.
  • Port 443: Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the Unraid Connect plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate. +Consider making life easier for yourself and utilize the Unraid Connect plugin to enable simple, safe, and secure remote access to your Unraid systems.
  • Port 445: Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a WireGuard VPN to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this.
  • Port 111/2049: Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS.
  • Port 22/23: Used by Telnet and SSH for console access. +Especially dangerous for users that don't have a root password set. +Similar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols.
  • Ports in the 57xx range: These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the Unraid Connect plugin. +This ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.
tip

Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.

#3 Never put your server in your network's DMZ

We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.

Never, ever, do this.

#4 Set security on your shares to private

The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares.

#5 Don't expose the flash share, and if you do, make it private

The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents.

#6 Keep your server up-to-date

Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to Tools > Update OS to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the Settings > Notifications page.

#7 Use a secure method for remote administration

It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet.

A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used.

An alternative for making the webGUI remotely accessible is to install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/security/index.html b/de/unraid-os/manual/security/index.html index a9b8c1e53..e12939b59 100644 --- a/de/unraid-os/manual/security/index.html +++ b/de/unraid-os/manual/security/index.html @@ -1,535 +1,22 @@ - + -Security | Unraid Docs +Security | Unraid Docs - - - + + +
-

Security

This section covers various security-related aspects of Unraid

Good Practices

An Unraid server is likely to contain data that is sensitive or that a -user would hate to lose. Since most users will have their home network -connected to the internet then precautions should be taken to avoid an -Unraid server being compromised by malicious actors trying to access -them remotely.

The following simple guidelines will help avoid many common pitfalls -that some user encounter regarding the security of their Unraid servers.

Review the below recommendations on your server(s) to ensure they are -safe.

There is also a forum -thread -that discusses this topic.

Set a strong root password

Similar to many routers, Unraid systems do not have a password set by -default. This is to ensure you can quickly and easily access the -management console immediately after initial installation. However, this -doesn't mean you shouldn't set one. Doing this is simple. Just -navigate to the Users tab and click on root. Now set a password. From -then on, you will be required to authenticate anytime you attempt to -login to the webGui.

In addition, there is a plugin available in Community Apps called -Dynamix Password Validator. This plugin will provide guidance on how -strong of a password you're creating based on complexity rules (how -many capital vs. lowercase letters, numbers, symbols, and overall -password length are used to judge this). Consider installing this for -extra guidance on password strength. Once installed it is available in -the settings for any user to give guidance on the strength of any -password you type in.

You could also use this web -page to get a very quick -assessment of the strength of any specific password.

Review port mappings on your router

Forwarding ports to your server is required for specific services that -you want to be Internet-accessible such as Plex, FTP servers, game -servers, VoIP servers, etc. But forwarding the wrong ports can expose -your server to significant security risk. Here are just a few ports you -should be extra careful with when forwarding:

  • Port 80: Used to access the webGui without SSL (unless you've -rebound access to another port on the Management Access settings -page). Forwarding this port by default will allow you to access the -webGui remotely, but without SSL securing the connection, devices in -between your browser and the server could "sniff" the packets to -see what you're doing. If you want to make the webGui remotely -accessible, install the Unraid Connect plugin, which can provide a -secure remote access solution that utilizes SSL to ensure your -connection is fully encrypted.

  • Port 443: Used to access the webGui with SSL. This is only -better than port 80 if you have a root password set. If no root -password is set and you forward this port, unauthorized users can -connect to your webGui and have full access to your server. In -addition, if you forward this port without using the Unraid Connect -plugin, attempts to connect to the webGui through a browser will -present a security warning due to the lack of an SSL certificate. -Consider making life easier for yourself and utilize the Unraid Connect -plugin to enable simple, safe, and secure remote access to your -Unraid systems.

  • Port 445: Used for SMB (shares). If you forward this port to -your server, any public shares can be connected to by any user over -the internet. Generally speaking, it is never advisable to expose -SMB shares directly over the internet. If you need the ability to -access your shares remotely, we suggest utilizing a WireGuard VPN to -create a secure tunnel between your device and the server. In -addition, if the flash device itself is exported using SMB and this -port is forwarded, its contents can easily be deleted and your paid -key could easily be stolen. Just don't do this.

  • Port 111/2049: Used for NFS (shares). While NFS is disabled by -default, if you are making use of this protocol, just make sure you -aren't forwarding these ports through your router. Similar to SMB, -just utilize WireGuard to create a secure tunnel from any remote -devices that need to connect to the server over NFS.

  • Port 22/23: Used by Telnet and SSH for console access. -Especially dangerous for users that don't have a root password set. -Similar to SMB, we don't recommend forwarding these ports at all, -but rather, suggest users leverage a WireGuard VPN connection for -the purposes of connecting using either of these protocols.

  • Ports in the 57xx range: These ports are generally used by VMs -for VNC access. While you can forward these ports to enable VNC -access remotely for your VMs, the better and easier way to do this -is through installing the Unraid Connect plugin. -This ensures that those connections -are secure via SSL and does not require individual ports to be -forwarded for each VM.

Generally speaking, you really shouldn't need to forward many ports to -your server. If you see a forwarding rule you don't understand, -consider removing it, see if anyone complains, and if so, you can always -put it back.

Never ever ever put your server in the DMZ

No matter how locked down you think you have your server, it is never -advisable to place it in the DMZ on your network. By doing so, you are -essentially forwarding every port on your public IP address to your -server directly, allowing all locally accessible services to be remotely -accessible as well. Regardless of how "locked down" you think you -actually have the server, placing it in the DMZ exposes it to -unnecessary risks. Never ever do this.

Consider setting shares to private with users and passwords

The convenience of password-less share access is pretty great. We know -that and its why we don't require you to set passwords for your shares. -However, there is a security risk posed to your data when you do this, -even if you don't forward any ports to your server and have a strong -root password. If another device on your network such as a PC, Mac, -phone, tablet, IoT device, etc. were to have its security breached, it -could be used to make a local connection to your server's shares. By -default, shares are set to be publicly readable/writeable, which means -those rogue devices can be used to steal, delete, or encrypt the data -within them. In addition, malicious users could also use this method to -put data on your server that you don't want. It is for these reasons -that if you are going to create public shares, we highly recommend -setting access to read-only. Only authorized users with a strong -password should be able to write data to your shares.

Don't expose the Flash share, and if you do, make it private

The flash device itself can be exposed over SMB. This is convenient if -you need to make advanced changes to your system such as modifying the -go file in the config directory. However, the flash device itself -contains the files needed to boot Unraid as well as your configuration -data (disk assignments, shares, etc). Exposing this share publicly can -be extremely dangerous, so we advise against doing so unless you -absolutely have to, and when you do, it is advised to do so privately, -requiring a username and password to see and modify the contents.

Keep your server up-to-date

Regardless of what other measures you take, keeping your server current -with the latest release(s) is vital to ensuring security. There are -constant security notices (CVEs) published for the various components -used in Unraid OS. We here at Lime Technology do our best to ensure all -vulnerabilities are addressed in a timely manner with software updates. -However, these updates are useless to you if you don't apply them in a -timely manner as well. Keeping your OS up-to-date is easy. Just navigate -to Tools -> Update OS to check for and apply any updates. You can -configure notifications to prompt you when a new update is available -from the Settings -> Notifications page.

Use a secure method for remote administration

It is possible to set up an Unraid server so that it can safely be -administered remotely but this should never be done by simply exposing -exposing the Unraid webGui to the internet.

A frequent way to secure such a connection is to use VPN technology. -Unraid includes as standard the WireGuard VPN and an OpenVPN plugin and -Docker container is also available. In addition many routers have built -in VPN support which can be used.

An alternative for making the webGui remotely accessible is to install -the Unraid Connect plugin, which can provide a secure remote access solution -that utilizes SSL to ensure your connection is fully encrypted.

Securing webGui connections (SSL)

Using wildcard SSL Certificates provisioned by Let's -Encrypt, Unraid OS 6.10 improves the security -of the SSL implementation for both local access and Unraid Connect Remote Access.

A few details before we begin

Some terms:

  • servername can be changed on the Settings -> Identification -page. It defaults to "tower".
  • localTLD can be changed on the Settings -> Management Access -page. It defaults to "local".
  • Use SSL/TLS can be changed on the Settings -> Management Access -page. It defaults to "No".
  • HTTP port can be changed on the Settings -> Management Access -page. It defaults to "80". If you change this, add :[HTTP port] to any of the http URLs in the scenarios below. (example: -http://tower.local:8080)
  • HTTPS port can be changed on the Settings -> Management Access -page. It defaults to "443". If you change this, add :[HTTPS port] to any of the https URLs in the scenarios below. (example: -https://tower.local:3443)
  • certificate refers to either a self-signed SSL Certificate, or a -SSL certificate issued by a Certificate Authority (Let's Encrypt)
  • lan-ip is your server's LAN IP address with dots changed to -dashes (example 192-168-100-1)
  • wan-ip is your internet-facing IP address with dots changed to -dashes (example 136-26-144-139)
  • hash is a random 40 character hex string (160 bits) uniquely -assigned to your server when a certificate is first issued

Caveats of using a self-signed certificate: Note that browsers will -show a certificate error because they cannot verify the authenticity of -self-signed certificates. All traffic will be encrypted once users -acknowledge the browser warning.

How would you like to access the Unraid webGui while on your LAN?

Http only

  • Navigate to the Settings -> Management Access page
  • Set Use SSL/TLS to No
  • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
  • Your URLs:
    • http://[servername].[localTLD] (example: http://tower.local)
    • http://[ipaddress] (example: http://192.168.100.1)
  • Traffic between the browser and the server will not be encrypted

Https with Self-signed certificate

  • Navigate to the Settings -> Management Access page
  • Set Use SSL/TLS to Yes
  • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
  • Your URLs:
    • https://[servername].[localTLD] (example: https://tower.local)
    • https://[ipaddress] (example: https://192.168.100.1)
  • All traffic will be encrypted
  • Unraid will manage the certificate for you. See "Caveats of using a -self-signed certificate" above.

Https with Myunraid.net certificate - with fallback URL if DNS is unavailable

  • Navigate to the Settings -> Management Access page
  • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate)
  • Leave Use SSL/TLS set to either No or Yes
  • Press Provision
  • Your primary URLs when Use SSL/TLS set to No:
    • http://[servername].[localTLD] (example: http://tower.local)
    • http://[ipaddress] (example: http://192.168.100.1)
  • Your primary URLs when Use SSL/TLS set to Yes. Note that these -URLs use a self-signed certificate (See "Caveats of using a -self-signed certificate" above)
    • https://[servername].[localTLD] (example: https://tower.local)
    • https://[ipaddress] (example: https://192.168.100.1)
  • Your alternate URL will be -https://[lan-ip].[hash].myunraid.net (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net). This personal link -is shown in the Certificate subject field on the Management Access -page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
  • All traffic will be encrypted if using https.
  • Unraid will manage the certificates for you.
  • If at any point DNS resolution becomes unavailable, the alternate -URL may not resolve. In this case use the primary URL as a fallback.

Https with Myunraid.net certificate - with no fallback URL

  • Navigate to the Settings -> Management Access page
  • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate if you run the use_ssl command mentioned -below)
  • Press Provision
  • If DNS Rebinding is not an issue, the "Strict" option for Use -SSL/TLS will be available.
  • Set Use SSL/TLS to Strict (this was previously called "Auto", -but "Strict" is more descriptive)
  • Your URL will be https://[lan-ip].[hash].myunraid.net -(example: https://192-168-100-1.a1b2c3d4e5.myunraid.net) This -personal link is shown in the Certificate subject field on the -Management Access page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
  • All traffic will be encrypted
  • Unraid will manage the certificates for you.
  • Note: If at any point DNS resolution becomes unavailable (e.g., your -Internet goes down), use telnet, SSH or local keyboard/monitor to -login. Then:
    • type use_ssl no to access the webgui via -http://[servername].[localTLD] or http://[ipaddress]
    • type use_ssl yes to access the webgui via -https://[servername].[localTLD] or https://[ipaddress] -using a self-signed certificate (See -"Caveats of using a self-signed certificate" above)
    • Once DNS resolution is available again, change Use SSL/TLS -back to Strict

Redirects

When accessing http://[ipaddress] or -http://[servername].[localTLD] , the behavior will change -depending on the value of the Use SSL/TLS setting:

  • If Use SSL/TLS is set to Strict, you will be redirected to -https://[lan-ip].[hash].myunraid.net However, this behavior -makes it more difficult to access your server when DNS is -unavailable (i.e. your Internet goes down). If that happens see the -note under HTTPS with Myunraid.net certificate - with no fallback -URL above.
  • If Use SSL/TLS is set to Yes, you will be redirected to -https://[ipaddress] or https://[servername].[localTLD] -as that will likely work even if your Internet goes down.
  • If Use SSL/TLS is set to No, then the http url will load -directly.

Note: for the redirects to work, you must start from http urls not https -urls.

Unraid Connect Remote Access

  • Install the Unraid Connect plugin
  • Navigate to the Settings -> Management Access page
  • Click Provision if you haven't already
  • Regardless of the value of Use SSL/TLS, you will have the option -to access the server using -https://[lan-ip].[hash].myunraid.net:[wan-port] (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net).
  • Navigate to Settings -> Management Access -> Unraid Connect page
  • Set Allow Remote Access to yes
  • Set the WAN port you want to use. For added security we -recommend you choose a random port over 1000 rather than using the -default of 443. i.e. something like 13856, 48653, etc
  • Click Apply
  • Setup your router to port forward the WAN port you specified to -the LAN IP address and HTTPS port used by the server. There is a -note on the screen telling you the exact port and IP to use.
  • Press the Check button. If the port is forwarded correctly you -will see a message saying "Your Unraid Server is reachable from the -Internet"
  • To access your server using Remote Access, login to the Unraid Connect -Dashboard and click the Remote Access link. The URL will be -https://[wan-ip].[hash].myunraid.net:[wan-port] (example: -https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856).

Custom Certificates

Https with Custom certificate - with option to have Unraid Connect Remote Access

  • Navigate to the Settings -> Management Access page
  • Set Use SSL/TLS to Yes
  • Set the LocalTLD to the domain name used in the "Subject" of -the certificate.
  • Your URL will be https://[servername].[localTLD] (example: -https://tower.mydomain.com). You are responsible for managing DNS -for this URL.
  • You are responsible for managing the certificate. Upload it to -/boot/config/ssl/certs/[servername]_unraid_bundle.pem
  • The certificate must be valid for [servername].[localTLD] -(example: tower.mydomain.com). For a wildcard cert it must be -*.[localTLD] (example: *.mydomain.com). This url can be -specified in either the "Subject" of the certificate or one of the -"Subject Alternative Name" fields (prior to 6.10.3, only the -"Subject" field was used). If you find that Unraid deletes your -certificate, it is because the server's url is not specified in the -certificate.
  • All traffic will be encrypted
  • (optional) If desired, see the Unraid Connect Remote Access section -above

Data Encryption

Unraid supports the use of encrypted drives in both the cache and the -array. It does this using the Linux LUKS (Linux Unified Key System) -encryption modules.

LUKS is the standard for Linux hard disk encryption. By providing a -standard on-disk-format, it does not only facilitate compatibility among -distributions but also provides secure management of multiple user -passwords. In contrast to an existing solution, LUKS stores all -necessary setup information in the partition header, enabling the user -to transport or migrate their data seamlessly.

The home page for LUKS can be found -here

Because it is a Linux standard drives that are encrypted using LUKS can -be read on any standard Linux system even when removed from Unraid as -long as one has the key phrase/file needed to unlock the drive.

The Unraid implementation expects the same key to be used for encrypting -all drives being used by Unraid. The key for the encryption can be -either a pass phrase, or provided via a key file. When using a key file -it is a good idea to use something like an image as there is no chance -of that ever being guessed. You must make sure that you do not lose the -encryption key as without it you will not be able to access the data on -encrypted drives.

To encrypt a drive (Note that this will erase any content already on the -drive).

  • Stop the array
  • Click on the drive on the Main tab
  • change the file system to the encrypted type that you want to use
  • click Apply to commit the change
  • click Done to return to the Main tab
  • the drive will now show as unmountable and the option to format -unmountable drives will be present. Check that the drive is the one -you are expecting to be encrypted and if it is correct go ahead and -format it.

Once you have set up encryption then it will be necessary to provide the -encryption key when starting the array. Once this has been done and the -array successfully started then you can access the data without being -aware of the fact that any drive is encrypted.

CAUTION: Encrypting data is good from a security perspective, but users -should be aware of the fact that it can complicate recovering from -certain types of hardware failure without data loss. On that basis only -use encryption if you feel you have a real need for it, and ideally make -sure you have a good system for backing up any important data.

Flash Drive

The flash drive that is used to boot Unraid is important as it contains -all the configuration information relating to an Unraid server. You -therefore want to consider the security of the information it contains -and how it is accessed.

Backups

If a flash drive ever fails for any reason then as long as you have a -backup getting the Unraid server back into normal operation is an easy -process. It is recommended that you make a backup whenever you make a -significant configuration change.

You easily achieve this from the Unraid GUI by:

  1. Click on the flash drive on the Main tab in the GUI.
  2. In the Flash Device Settings section click on the Flash Backup -button.
  3. The system will now start creating a zip file that is a backup of -the contents of the flash drive
  4. When the zip file has been created your browser should prompt you to -provide the location where you want the backup saved to. It is -recommended that this is a location off the Unraid server so that it -is available even when the Unraid server is not operational.

If you later need to recreate your flash drive for any reason this -backup can be used as input to the Limetech USB Creator tool.

Network Access

The flash drive can have similar settings applied to it to control -access over the network as is the case for other shares on an Unraid -system. The difference is that you set this up by clicking on the -flash device on the Main tab in the GUI rather than doing it via -the Shares tab.

  • Network visibility: You can specify whether the flash drive -should even be accessible via the network, and if it is accessible -whether it should be hidden or visible to everyone.
  • Access rights: If network access is allowed you can specify any -access permissions that you want applied.

Permissions

As part of improving the security of Unraid systems, starting with -Unraid 6.8 files on the flash drive can no longer be given execute -permission.

The implication of this is that if a user has their own custom scripts -(or programs) stored on the flash drive they can no longer be executed -from that location. There are a number of ways to handle this:

  • Copy the files to a location from which they can be executed
    • The location /usr/local/bin is a good choice if you want the -files on the default search path.
    • You can copy the files into position when booting by adding -appropriate commands to the config/go file on the flash drive.
    • Remember to give the files execute permission after copying -them.
  • For scripts precede the script name with the command that runs the -script (e.g. bash path-to-script)

VPN

Unraid servers are not hardened against attack via the network so -should NEVER be exposed directly to the internet.

  • One exception is the WireGuard VPN service introduced in Unraid 6.8 -explicitly to address secure access to/from the internet.
  • If running Docker containers are exposed to the internet then the -security of these needs to be assessed on a case-by-case basis.

You may need to contact the developer of the container to determine -how safe it is to expose it to the internet.

There is a level of protection as a docker container runs in a -'sandboxed' environment so the level of access to the content of -your disks is constrained to what you allow in the path mapping -settings for the container.

  • If running VMs that are exposed to the internet then you need to -apply the same security to these that you would apply to a physical -PC attached to the local LAN.

If you want to make secure connections between an Unraid server and the -Internet then you want to use a technology known as VPN (Virtual Private -Network). VPN works on a client/server model where you have a server -that accepts incoming connections and a client that initiates such -connections.

In simplistic terms, the idea behind VPN connections is to set up an -encrypted 'tunnel' between the client and server ends so that no -malicious players can intercept or eavesdrop on your interactions. Such -tunnels are set up so that only authorized users are able to make such -connections. More information on VPN as a technology can be found in -this wiki -article

There are 2 common Use Cases that Unraid users are likely to have:

  • Remote Access to Unraid from the Internet: This is by far the -commonest use case and many users want to be able to safely access -their Unraid servers (and potentially their whole home LAN) when -away from home. When running in this mode the server end of the VPN -link will either be running on the user's router (if it supports -such a feature) or will be hosted on the Unraid server.
  • Remote Access from Unraid to the Internet: This is used when you -want applications running on Unraid to access the internet. This -could be to access generic internet content or to access another -server located remotely to the Unraid server. If in is generic -access to the internet then it is highly likely that the server end -of such connection will be via a commercial VPN provider. When -running in this mode Unraid will be acting as the client end of any -VPN link.

There are a wide variety of VPN solutions available both free and -commercial.

Router

Many modern routers have a VPN server built-in as standard (typically -based on OpenVPN).

Using your router to provide the VPN support has the great advantage of -not needing any other component on your home LAN to be operational for -the VPN to function. Once setup it should allow you to access all -devices on your home LAN in a similar manner to when you are directly -connected to the LAN.

OpenVPN

This has been the way that has historically been advocated to allow -connections to be made between an Unraid server and the internet.

OpenVPN is a well-established solution so if you want to use OpenVPN -then you can search Community Applications for a plugin or docker -container that meets your requirements. You may also find the -SpaceInvaderOne YouTube -video of use in setting it -up.

It is expected that with the introduction of WireGuard support in -Unraid 6.8 that WireGuard will become the favored way of setting up a -VPN connection to an Unraid server.

WireGuard

Overview

Unraid 6.8 introduces built-in support for WireGuard VPN connections. The -intention is to make it as easy as possible for Unraid users to set up -VPN connections to/from their Unraid servers.

Some points to note about the Unraid WireGuard implementation are:

  • The WireGuard service is built into Unraid so there is no need to -add 3rd party software to achieve a VPN connection.
  • The WireGuard service can be set to auto-start as part of the Unraid -boot process.
  • The WireGuard service is available even if the array is not started.
  • WireGuard uses a light-weight protocol so performance tends to be -better than OpenVPN.

More information about WireGuard can be found on the WireGuard web -site. It should be noted that WireGuard is -still labeled as ''experimental'' by its developers but many users are -already finding that it appears to be robust enough for real-world use. -A number of the commercial VPN services are working on adding WireGuard -support so they must deem it to be mature enough for this to make sense -to them.

The initial Unraid implementation includes adding the WireGuard kernel -modules to the standard Unraid distribution and starting the WireGuard -services as part of the Unraid boot process, but does not yet have the -management of WireGuard built-in. At the moment the GUI part is offered -as a separate plugin, but it is intended that it will be integrated into -Unraid in the future. This approach allows for quick updates and -enhancements without dependency on Unraid version releases. The Unraid -WireGuard GUI plugin can be installed via Community Applications, and -when it is installed you will find that an entry called VPN Manager -is added to the GUI under Settings->Network Services

Note that the Unraid WireGuard plugin is still evolving so in the event -of a discrepancy between what is described here and the following forum -threads then it is likely that the thread is correct and this wiki needs -updating to bring it inline. These threads are also the appropriate -place to ask questions regarding Unraid's WireGuard implementation.

What can you do with WireGuard? Let's walk through each of the -connection types:

  • Remote access to server: Use your phone or computer to remotely -access your Unraid server, including:

    • Unraid administration via the webgui
    • Access dockers, VMs, and network shares as though you were -physically connected to the network
  • Remote access to LAN: Builds on "Remote access to server", -allowing you to access your entire LAN as well.

  • Server to server access: Allows two Unraid servers to connect to -each other.

  • LAN to LAN access: Builds on "Server to server access", -allowing two entire networks to communicate. May require additional -settings, TBD.

  • Server hub & spoke access: Builds on "Remote access to -server", except that all of the VPN clients can connect to each -other as well. Note that all traffic passes through the server.

  • LAN hub & spoke access: Builds on "Server hub & spoke access", -allowing you to access your entire LAN as well.

  • VPN tunneled access: Route traffic for specific Dockers and VMs -through a commercial WireGuard VPN provider (see this guide)

  • Remote tunneled access: Securely access the Internet from -untrusted networks by routing all of your traffic through the VPN -and out Unraid's Internet connection

The following diagram attempts to show these different connection types -in a graphical format

Incoming VPN Connections

This section will walk through how to setup WireGuard so that your -trusted devices can VPN into your home network to access Unraid and the -other systems on your network.

Prerequisites
  • You must be running Unraid 6.8 with the Dynamix WireGuard plugin -installed via the Apps tab (Community Applications).

  • Be aware that WireGuard is technically classified as experimental. -It has not gone through a full security audit yet and has not -reached 1.0 status. But it is the first open-source VPN solution -that is extremely simple to install, fast, and designed from the -ground up to be secure.

  • Understand that giving someone VPN access to your LAN is just like -giving them physical access to your LAN, except they have it 24x7 -when you aren't around to supervise. Only give access to people and -devices that you trust, and make certain that the configuration -details (particularly the private keys) are not passed around -insecurely. Regardless of the "connection type" you choose, assume -that anyone who gets access to this configuration information will -be able to get full access to your network.

  • This guide works great for simple networks. But if you have Dockers -with custom IPs or VMs with strict networking requirements, please -see the "Complex Networks" section below.

  • Unraid will automatically configure your WireGuard clients to -connect to Unraid using your current public IP address, which will -work until that IP address changes. To future-proof the setup, you -can use Dynamic DNS instead. There are many ways to do this, -probably the easiest is described in this 2 minute video from -SpaceInvaderOne.

  • If your router has UPnP enabled, Unraid will be able to -automatically forward the port for you. If not, you will need to -know how to configure your router to forward a port.

  • You will need to install WireGuard on a client system. It is -available for many operating systems as mentioned at WireGuard -clients. Android or iOS make -good first client systems because you can get all the details via QR -code.

Setting up the Unraid side of the VPN tunnel
  • First, go to Settings -> Network Settings -> Interface eth0. If -"Enable bridging" is "Yes", then WireGuard will work as -described below. If bridging is disabled, then none of the "Peer -type of connections" that involve the local LAN will work properly. -As a general rule, bridging should be enabled in Unraid.

  • If UPnP is enabled on your router and you want to use it in Unraid, -go to Settings -> Management Access and confirm "Use UPnP" is set -to Yes
  • On Unraid go to Settings -> VPN Manager

  • Give the VPN Tunnel a name, such as "MyHome VPN"
  • Press "Generate Keypair". This will generate a set of public and -private keys for Unraid. Take care not to inadvertently share the -private key with anyone (such as in a screenshot like this)
  • By default, the local endpoint will be configured with your current -public IP address. If you chose to setup DDNS earlier, change the IP -address to the DDNS address.
  • Unraid will recommend a port to use. You typically won't need to -change this unless you already have WireGuard running elsewhere on -your network.
  • Hit Apply
  • If Unraid detects that your router supports UPnP, it will -automatically setup port forwarding for you:

  • If you see a note that says "configure your router for port -forwarding..." you will need to login to your router and setup the -port forward as directed by the note:

  • Some tips for setting up the port forward in your router:
    • Both the external (source) and internal (target/local) ports -should be set to the value Unraid provides. If your router -interface asks you to put in a range, use the same port for both -the starting and ending values. Be sure to specify that it is a -UDP port and not a TCP port.
    • For the internal (target/local) address, use the IP address of -your Unraid system shown in the note.
    • Google can help you find instructions for your specific router, -i.e. "how to port forward Asus RT-AC68U"
  • Note that after hitting Apply, the public and private keys are -removed from view. If you ever need to access them, click the -"key" icon on the right-hand side.

  • Similarly, you can access other advanced settings by pressing the -"down chevron" on the right-hand side. They are beyond the scope -of this guide, but you can turn on help to see what they do.
  • In the upper right corner of the page, change the Inactive slider to -Active to start WireGuard. You can optionally set the tunnel to -Autostart when Unraid boots.

There have been cases where this step has been omitted and users -end up wondering why the WireGuard VPN link is not working!

Defining a Peer (client)
  • Click "Add Peer"

  • Give it a name, such as "MyAndroid"
  • For the initial connection type, choose "Remote access to LAN". -This will give your device access to Unraid and other items on your -network.
  • Click "Generate Keypair" to generate public and private keys for -the client. The private key will be given to the client/peer, but -take care not to share it with anyone else (such as in a screenshot -like this)
  • For an additional layer of security, click "Generate Key" to -generate a preshared key. Again, this should only be shared with -this client/peer.
  • Click Apply.
  • Note: Technically, the peer should generate these keys and not -give the private key to Unraid. You are welcome to do that, but it -is less convenient as the config files Unraid generates will not be -complete and you will have to finish configuring the client -manually.
Caution

It can be a little risky to add a new client ("peer") to WireGuard if -you are already connected remotely using WireGuard as adding a new peer -sometimes toggles the WireGuard tunnel off which will render you -unable to reconnect. This is because a configuration change is made -effective by inactivating the tunnel with the current (old) -configuration and next activating it with the updated (new) -configuration. If there is any sort of configuration conflict at this -point the tunnel stays inactive, and you can no longer connect to the -Unraid server

Configuring a Peer (client)
  • Click the "eye" icon to view the peer configuration. If the button -is not clickable, you need to apply or reset your unsaved changes -first.

  • If you are setting up a mobile device, choose the "Create from QR -code" option in the mobile app and take a picture of the QR code. -Give it a name and make the connection. The VPN tunnel starts almost -instantaneously, once it is up you can open a browser and connect to -Unraid or another system on your network. Be careful not to share -screenshots of the QR code with anyone, or they will be able to use -it to access your VPN.
  • If you are setting up another type of device, download the file and -transfer it to the remote computer via trusted email or dropbox, -etc. Then unzip it and load the configuration into the client. -Protect this file, anyone who has access to it will be able to -access your VPN.
About DNS

The Dynamix WireGuard plugin includes a "Peer DNS Server" option

If you are having trouble with DNS resolution on the WireGuard client, -return to the VPN Manager page in Unraid and switch from Basic to -Advanced mode, add the IP address of your desired DNS server into the -"Peer DNS Server" field, then install the updated config file on the -client. You may want to use the IP address of the router on the LAN you -are connecting to, or you could use a globally available IP like 8.8.8.8

This is required for "Remote tunneled access" mode if the client's -original DNS server is no longer accessible after all traffic is routed -through the tunnel.

If you are using any of the split tunneling modes, adding a DNS server -may provide name resolution on the remote network, although you will -lose name resolution on the client's local network in the process. The -simplest solution is to add a hosts file on the client that provides -name resolution for both networks.

Complex Networks

The instructions above should work out of the box for simple networks. -With "Use NAT" defaulted to Yes, all network traffic on Unraid uses -Unraid's IP, and that works fine if you have a simple setup.

However, if you have Dockers with custom IPs or VMs with strict -networking requirements, things may not work right (I know, kind of -vague, but feel free to read the two WireGuard threads for examples)

A partial solution is:

  • In the WireGuard config, set "Use NAT" to No
  • In your router, add a static route that lets your network access the -WireGuard "Local tunnel network pool" through the IP address of -your Unraid system. For instance, for the default pool of -10.253.0.0/24 you should add this static route:
    • Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)
    • Gateway: <IP address of your Unraid system>
  • Note that this covers the entire class B 10.253.x.x network, so you -can add other WireGuard tunnels without having to modify your router -setup again.

With these changes, your network should work normally. However, your -WireGuard clients still may not be able to access Dockers on custom IPs -or VMs. If you find a solution to this, please ask questions in the -forum threads mentioned earlier.

Troubleshooting WireGuard

WireGuard is not a chatty protocol, in fact, it is designed to be -invisible! There aren't really any error messages if things aren't -working, it either works or it doesn't. It cannot be detected by a port -scanner.

If you can't connect, it will mainly be an exercise in double-checking -your work:

  • Confirm that the tunnel is active (!)
  • Confirm that your DDNS is pointed at your current public IP address, -and is assigned to your "Local endpoint"
  • Confirm that you forwarded the correct UDP port through your router -to Unraid, and assigned that same port to the "Local endpoint"
  • If you made any changes to your configuration after setting up your -clients, you will need to set the clients up again so they have the -latest config.
  • Be sure you save your changes before you press "View Peer Config", -otherwise your QR codes/files will not have the latest data.

A few other ideas:

- For your first client, setup a phone using its data connection (not -wifi). This eliminates issues related to the client network, and the QR -code is the easiest way to transfer settings. Once you have it working -from your phone, move on to other clients.

  • Disable any energy-saving features on the client, phones in particular -may not use VPNs properly when in low power mode. Also, you may need to -disable any "Data Saver" features on the phone so that VPN is not -throttled. See this post. -- If your "Peer type of connection" includes one of the LAN options but -you can only access Unraid, go to Settings -> Network Settings and see -whether "Enable bridging" is yes.  If bridging is disabled, you will not -be able to access your LAN over WireGuard.
  • If you are connecting from another network over the Internet, be -sure that the networks on both sides use different subnets. You -can't connect two networks that both use 192.168.1.0/24, for -instance.
  • If you can connect from some locations but not others, keep in mind -that the "broken" remote locations may have a firewall that blocks -UDP traffic. Hopefully, WireGuard will support TCP in the future, -but currently, there is no workaround for this.
  • If nothing is working properly, switch to advanced mode and confirm -that the "Local tunnel network pool" is not already in use on your -network or on one of the networks you are connecting to. If there is -a conflict you will need to change it to a different private network -(10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | -192.168.0.0 to 192.168.255.255)
  • If you can't reach the Unraid webgui for some reason and you need -to prevent a WireGuard tunnel from automatically starting, delete -this file from your flash drive and reboot:

/boot/config/wireguard/autostart

  • Note that if you have Dockers with custom IPs or VMs with strict -networking requirements, you will likely have issues. Please see the -"Complex Networks" section above.

Outgoing VPN Connections

This section explains how to make an outgoing WireGuard VPN connection -from an Unraid server to a commercial VPN provider. If you are trying to -access your Unraid network from a remote location, see the section on -making inbound connections. There is a forum -thread -discussing making an outbound VPN connection using WireGuard

Commercial VPN Providers

Several commercial VPN providers now support WireGuard. A few are listed -below but this is not intended to be an exhaustive list. No endorsement -is implied, you need to research and determine which one meets your -needs.

Note that with the current state of WireGuard, VPN providers cannot -guarantee the same amount of privacy as they can with OpenVPN. See -here for more detail. -Typically the objections are not around security, but around the fact -that it is harder for them to guarantee that they cannot track you.

Configuring VPN tunneled access
  • Download a config file from your preferred commercial VPN provider
  • On the Settings -> VPN Manager page, click the "Import Config" -button and select the file on your hard drive. This will create a -new tunnel specific to this provider.
  • There are no settings to change, except perhaps to give it a name. -Click Apply.
  • Note: You do not need to forward any ports through your router for -this type of connection
  • Change the Inactive slider to Active
  • Now ALL of your Unraid traffic will go through the commercial VPN -tunnel.
    • In the future it may be possible to restrict it so that only -specific Dockers use the VPN tunnel. Until then, you may need to -disable the tunnel in order to check for plugin updates or -perform other Unraid administrative tasks.
    • Note that currently, Unraid will ignore any DNS server that is -specified in the downloaded config file. Unraid's DNS should be -set to something that will work whether the tunnel is up or -down, such as 8.8.8.8 and 8.8.4.4
Testing the tunnel
  • Using Community Applications, install a browser such as the -jlesage/Firefox Docker container
  • Accept all defaults
  • Launch Firefox and visit https://whatismyipaddress.com/ you should -see that your IP address is in the country you selected when you -signed up with the provider

Support

WireGuard is a new feature in Unraid so the forum is the place to -ask questions and get the most up-to-date information on using -WireGuard with Unraid. The threads most likely to be of interest are:

"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

- - +

Security

An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.

The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers.

Review the below recommendations on your server(s) to ensure they are safe.

There is also a forum thread that discusses this topic.

+ + \ No newline at end of file diff --git a/de/unraid-os/manual/security/secure-webgui-ssl/index.html b/de/unraid-os/manual/security/secure-webgui-ssl/index.html new file mode 100644 index 000000000..32168bbf9 --- /dev/null +++ b/de/unraid-os/manual/security/secure-webgui-ssl/index.html @@ -0,0 +1,22 @@ + + + + + +Securing webGUI connections (SSL) | Unraid Docs + + + + + + + + + + +
+

Securing webGUI connections (SSL)

As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.

SSL parameters

When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server.

ParameterDescription
servernameCan be changed in Settings > Identification. The default value is tower.
localTLDCan be changed in Settings > Management Access. Default value is local.
Use SSL/TLSCan be changed in Settings > Management Access. Default value is No.
HTTP portCan be changed in Settings > Management Access. Default value is 80. If you change this, add :[HTTP port] to any of the HTTP URLs in the scenarios below. (example: http://tower.local:8080)
HTTPS portCan be changed in Settings > Management Access page. It defaults to "443". If you change this, add :[HTTPS port] to any of the HTTPS URLs in the scenarios below. (example: https://tower.local:3443)
certificateRefers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)
lan-ipThis is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)
wan-ipThis is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)
hashThis is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued

How to access the Unraid server webGUI on your LAN

HTTP-only

With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate.

  1. Go to Settings > Management Access.
  2. Set Use SSL/TLS to No.
  3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution.
  4. Your URLs:
    • http://[servername].[localTLD] (example: http://tower.local)
    • http://[ipaddress] (example: http://192.168.100.1)
  5. Select Apply.

HTTPS with self-signed certificate

With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you.

  1. Go to Settings > Management Access.
  2. Set Use SSL/TLS to Yes.
  3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution
  4. Your URLs:
    • https://[servername].[localTLD] (example: https://tower.local)
    • https://[ipaddress] (example: https://192.168.100.1)
  5. Select Apply.
info

When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.


HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable

You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down.

  1. Go to Settings > Management Access.
  2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate).
  3. Leave Use SSL/TLS set to either No or Yes.
  4. Press Provision.
  5. Your primary URLs when Use SSL/TLS set to No:
    • http://[servername].[localTLD] (example: http://tower.local)
    • http://[ipaddress] (example: http://192.168.100.1)
  6. Your primary URLs when Use SSL/TLS set to Yes. Note that these URLs use a self-signed certificate.
    • https://[servername].[localTLD] (example: https://tower.local)
    • https://[ipaddress] (example: https://192.168.100.1)
  7. Your alternate URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the Unraid Connect plugin it will also be shown on the Connect dashboard.

HTTPS with Myunraid.net certificate and with no fallback URL

  1. Go to Settings > Management Access.
  2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the use_ssl command mentioned below).
  3. Press Provision.
  4. If DNS Rebinding is not an issue, the Strict option for Use SSL/TLS will be available.
  5. Set Use SSL/TLS to Strict (or Auto in earlier versions of Unraid).
  6. Your URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the optional Unraid Connect plugin it will also be shown on the Connect dashboard.
caution

If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:

  • Type use_ssl no to access the webGUI via http://[servername].[localTLD] or http://[ipaddress].
  • Type use_ssl yes to access the webGUI via https://[servername].[localTLD] or https://[ipaddress] using a self-signed certificate (See HTTPS with a self-signed certificate above).
  • Once DNS resolution is available again, change Use SSL/TLS back to Strict.

Redirects

When you access http://[ipaddress] or http://[servername].[localTLD], the behavior will change depending on the value of the Use SSL/TLS setting:

  • If Use SSL/TLS is set to Strict, you will be redirected to https://[lan-ip].[hash].myunraid.net However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under HTTPS with Myunraid.net certificate - with no fallback URL above.
  • If Use SSL/TLS is set to Yes, you will be redirected to https://[ipaddress] or https://[servername].[localTLD] as that will likely work even if your Internet goes down.
  • If Use SSL/TLS is set to No, then the HTTP URL will load directly.
tip

For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.


Unraid Connect remote access

Looking for setup instructions for Unraid Connect remote access? See our dedicated page.


Custom certificates

HTTPS with custom certificate - with option to have Unraid Connect Remote Access

  1. Navigate to the Settings > Management Access page.
  2. Set Use SSL/TLS to Yes.
  3. Set the LocalTLD to the domain name used in the "Subject" of the certificate.
  4. Your URL will be https://[servername].[localTLD] (example: https://tower.mydomain.com). You are responsible for managing DNS for this URL.
  5. You are responsible for managing the certificate. Upload it to /boot/config/ssl/certs/[servername]_unraid_bundle.pem.
  6. The certificate must be valid for [servername].[localTLD] (example: tower.mydomain.com). For a wildcard cert it must be *.[localTLD] (example: *.mydomain.com). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server's URL is not specified in the certificate.
  7. As an option, use Unraid Connect Remote Access.
+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/security/vpn/index.html b/de/unraid-os/manual/security/vpn/index.html new file mode 100644 index 000000000..f8818b1ed --- /dev/null +++ b/de/unraid-os/manual/security/vpn/index.html @@ -0,0 +1,27 @@ + + + + + +VPN | Unraid Docs + + + + + + + + + + +
+

VPN

caution

Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.

If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections.

In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in this wiki article

There are 2 common Use Cases that Unraid users are likely to have:

  • Remote Access to Unraid from the Internet: This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server.
  • Remote Access from Unraid to the Internet: This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.

There are a wide variety of VPN solutions available both free and commercial.

Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet.

There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN.

Router

Many modern routers have a VPN server built-in as standard (typically based on OpenVPN).

Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN.

OpenVPN

This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet.

OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the SpaceInvaderOne YouTube video of use in setting it up.

WireGuard

Overview

Wireguard logo

Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers.

Some points to note about the Unraid WireGuard implementation are:

  • The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection.
  • The WireGuard service can be set to auto-start as part of the Unraid boot process.
  • The WireGuard service is available even if the array is not started.
  • WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN.
  • The interface is available under Settings > VPN Manager.

More information about WireGuard can be found on the WireGuard website.

What can you do with WireGuard? Let's walk through each of the connection types:

  • Remote access to server: Use your phone or computer to remotely access your Unraid server, including:
    • Unraid administration via the webGUI
    • Access Docker containers, VMs, and network shares as though you were physically connected to the network
  • Remote access to LAN: Builds on "Remote access to server", allowing you to access your entire LAN as well.
  • Server to server access: Allows two Unraid servers to connect to each other.
  • LAN to LAN access: Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.
  • Server hub & spoke access: Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.
  • LAN hub & spoke access: Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.
  • VPN tunneled access: Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider.
  • Remote tunneled access: Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.

The following diagram attempts to show these different connection types in a graphical format

Connection Types

Incoming VPN Connections

This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network.

Implementation considerations

  • Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren't around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.
  • This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the Complex Networks section.
  • Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this 2 minute video from SpaceInvaderOne.
  • If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port.
  • You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at WireGuard clients. Android or iOS make good first client systems because you can get all the details via QR code.

Setting up the Unraid side of the VPN tunnel

  • If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -> Management Access and confirm "Use UPnP" is set to Yes
  • On Unraid go to Settings > VPN Manager

Initial setup screen

  • Give the VPN Tunnel a name, for example MyHome VPN.
  • Select Generate Keypair. This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this).
  • By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address.
  • Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network.
  • Select Apply.
  • If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:

UPnP available

  • If you see a note that says "configure your router for port forwarding..." you will need to login to your router and setup the port forward as directed by the note:

UPnP not available

  • Some tips for setting up the port forward in your router:
    • Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port.
    • For the internal (target/local) address, use the IP address of your Unraid system shown in the note.
    • Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".
  • Note that after Apply, the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.

Key icon

  • Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.
  • In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.

Activate switch

Defining a Peer (client)

  1. Select Add Peer. +Add Peer
  2. Give it a name, such as MyAndroid.
  3. For the initial connection type, choose Remote access to LAN. This will give your device access to Unraid and other items on your network.
  4. Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)
  5. For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.
  6. Click Apply.
info

Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.

caution

It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.

Configuring a Peer (client)

  • Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.

Peer area - Eye icon

Peer details popup

  • If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.
  • If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.

About DNS

Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net.

Short names such as "tower" probably won't work, nor any DNS entries managed by the router.

To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don't forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8

This is particularly important for "Remote tunneled access" mode if the client's original DNS server is no longer accessible after all traffic is routed through the tunnel.

Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection.

Complex Networks

The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid's IP, and that works fine if you have a simple setup.

However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:

  • In the WireGuard tunnel config, set "Use NAT" to No
  • In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:
    • Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)
    • Gateway / Next Hop: IP address of your Unraid system
    • Distance: 1 (your router may not have this option)
    • If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"
  • Navigate to Settings > Docker Settings and set Host access to custom networks to Enabled

Configurations to avoid

There are some configurations you'll want to avoid, here is how a few key settings interact:

  • With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)
    • server and dockers on bridge/host - accessible!
    • VMs and other systems on LAN - accessible!
    • dockers with custom IP - NOT accessible
    • (this is the "simple network" setup assumed by the guide above)
  • With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)
    • server and dockers on bridge/host - accessible!
    • VMs and other systems on LAN - NOT accessible
    • dockers with custom IP - NOT accessible
    • (avoid this config)
  • With "Use NAT" = No and no static route
    • server and dockers on bridge/host - accessible!
    • VMs and other systems on LAN - NOT accessible
    • dockers with custom IP - NOT accessible
    • (avoid this, if "Use NAT" = No, you really need to add a static route in your router)
  • With "Use NAT" = No and "Host access to custom networks" = disabled and static route
    • server and dockers on bridge/host - accessible!
    • VMs and other systems on LAN - accessible!
    • dockers with custom IP - NOT accessible
    • (You've come this far, just set "Host access to custom networks" to enabled you're set)
  • With "Use NAT" = No and "Host access to custom networks" = enabled and static route
    • server and dockers on bridge/host - accessible!
    • VMs and other systems on LAN - accessible!
    • dockers with custom IP - accessible!
    • (woohoo! the recommended setup for complex networks)

Troubleshooting WireGuard

WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner.

If you can't connect, it will mainly be an exercise in double-checking your work:

  • Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.
  • Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"
  • Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"
  • If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config.
  • Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.

A few other ideas:

  • For your first client, setup a phone using its data connection (not wifi). This eliminates issues related to the client network, and the QR code is the easiest way to transfer settings. Once you have it working from your phone, move on to other clients.
  • If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection.
  • Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.
  • If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance.
  • If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.
  • If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.
  • If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | 192.168.0.0 to 192.168.255.255)
  • If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot: +/boot/config/wireguard/autostart
  • Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.

Outgoing VPN Connections

This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on +making inbound connections. There is a forum thread discussing making an outbound VPN connection using WireGuard

Commercial VPN Providers

Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs.

Note that any provider that requires a custom WireGuard client will not work with Unraid.

Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see here for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you.

Configuring “VPN tunneled access for Docker”

  • Download a config file from your preferred commercial VPN provider
  • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
  • The “Peer type of access” will default to “VPN tunneled access for docker”. There are no settings to change, except perhaps to give it a local name. Click Apply.
  • Note: You do not need to forward any ports through your router for this type of connection
  • Change the Inactive slider to Active
  • Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers
  • Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a "DNS" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.
Testing the Docker tunnel
info

The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.

Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel before the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.

  • Using Community Applications, install a Firefox Docker container
  • When setting up the container, set the “Network Type” to “Custom: wg2” (or whatever the name of the tunnel was in the previous step)
  • Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.: +--dns=8.8.8.8 +(if you don't set this, the container may leak your ISP's DNS server)
  • The rest of the defaults should be fine, apply the changes and start the container
  • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider
  • Also visit https://www.dnsleaktest.com/ and run a test, confirm that it only finds IPs related to the DNS provider you specified.
  • Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.

Configuring “VPN tunneled access for system”

  • Download a config file from your preferred commercial VPN provider
  • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
  • There are no settings to change, except perhaps to give it a name. Click Apply.
  • Note: You do not need to forward any ports through your router for this type of connection
  • Change the Inactive slider to Active
  • Now ALL of your Unraid traffic will go through the commercial VPN tunnel.
    • You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks.
    • Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled.
    • Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4
Testing the System tunnel
  • Using Community Applications, install a Firefox Docker container
  • Accept all defaults
  • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider

Support

The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:

"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/shares/create-a-share/index.html b/de/unraid-os/manual/shares/create-a-share/index.html new file mode 100644 index 000000000..d43531db7 --- /dev/null +++ b/de/unraid-os/manual/shares/create-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Create a new share | Unraid Docs + + + + + + + + + + +
+

Create a new share

When you create a new share, plan ahead.

  1. On the Shares tab select Add Share.

  2. Enter a name for your share in Share name

    Share names

    The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so media, Media, and MEDIA would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be.

  3. (Optional) Enter a description for the share in the Comments field. This is visible when viewed over the network.

  4. Set a Minimum free space value, in kilobytes, if you plan to use the setting, otherwise leave it empty.

  5. Select the Primary storage for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.

  6. Select the Allocation method: high-water, fill-up, or most-free, depending on your use case. You can read about the differences here.

  7. Select the Split level method for your data. You can find more information split level, here.

  8. In Included disks choose which disks will be available to the share. By default, all disks will be included.

  9. In Excluded disks choose which disks will not be available to the share. Note that if you configure Included disks there is no need to configure Excluded disks.

  10. Select a Secondary storage if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to None.

  11. (Optional) If you configure a primary and secondary storage, then Mover action option becomes active. This sets the direction of file transfers between Primary and Secondary storage.

  12. Select Add share to complete the creation.

info

Note that, by default, a new share will not be shared over the network. You must configure network access after the share is created.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/shares/delete-a-share/index.html b/de/unraid-os/manual/shares/delete-a-share/index.html new file mode 100644 index 000000000..d7795c369 --- /dev/null +++ b/de/unraid-os/manual/shares/delete-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Delete a share | Unraid Docs + + + + + + + + + + +
+

Delete a share

To delete a share on your Unraid server the share must contain no data.

Delete an empty share

  1. Go to Shares.
  2. Select the share you want to delete.
  3. Select the Delete checkbox. The Apply button switches to a Delete button.
  4. Select the Delete button.
  5. The system confirms the share has been deleted. Select Done.

Delete a share that contains data

  1. Go to Apps.
  2. Install a file management plugin from Community, such as Dynamix File Manager.
  3. Go to Shares.
  4. Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive.
  5. If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion.
  6. Delete the data or move it to another share on the server.
  7. Return to Shares.
  8. Select the share you want to delete. This will open the share settings. If no data is left in the share, a Delete checkbox is available.
  9. Select the Delete checkbox. The Apply button switches to a Delete button.
  10. Select the Delete button.
  11. The system confirms the share has been deleted.
  12. Select Done to return to Shares
tip

Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/shares/disk-shares/index.html b/de/unraid-os/manual/shares/disk-shares/index.html new file mode 100644 index 000000000..2de001a2a --- /dev/null +++ b/de/unraid-os/manual/shares/disk-shares/index.html @@ -0,0 +1,22 @@ + + + + + +Disk shares | Unraid Docs + + + + + + + + + + +
+

Disk shares

tip

Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.

Overview

Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a Disk Shares section on the Shares tab. If you create a disk share, you should modify the user access permissions to restrict network user access.

When viewed at the Linux level, the physical devices or pools will appear directly under /mnt with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled.

Examples of such names are:

  • /mnt/diskX: - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be diskX.
  • /mnt/pool-name: - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be pool-name.
caution

The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the Main tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at /boot.

Due to the nature of the Unraid boot device, we recommend you maintain your shares in Private mode, with read/write access given to trusted users.

Disk share constraints

If you have both disk shares and user shares enabled in Global Share Settings, then there is an important restriction that you must observe to avoid potential data loss.

You must never copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, cp /mnt/user/share/file /mnt/disk1/share/file.

At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost.

There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an Unassigned Disk.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/shares/index.html b/de/unraid-os/manual/shares/index.html index e52c571d1..9c12ecff9 100644 --- a/de/unraid-os/manual/shares/index.html +++ b/de/unraid-os/manual/shares/index.html @@ -1,495 +1,22 @@ - + -Shares | Unraid Docs +Shares | Unraid Docs - - - + + +
-

Shares

Once you have assigned some devices to Unraid and started the array, you -can create shares to simplify how you store data across multiple disks -in the array. Unraid will automatically create a handful of shares for -you that it needs to support common plugins, containers, and virtual -machines, but you can also create your own shares for storing other -types of data. Unraid supports 2 types of share:

  • User Shares
  • Disk Shares

You can control which of these types of shares are to be used under -Settings->Global Share Settings. The default on Unraid is to have User -Shares enabled but Disk Shares disabled.

It is sometimes important to realize that these are two different views -of the same underlying file system. Every file/folder that appears -under a User Share will also appear under the Disk Share for the -physical drive that is storing the file/folder.

User Shares

User Shares can be enabled/disabled via Settings->Global Share -Settings.

From the Shares tab, you can either create a new share or edit -an existing share. Click the Help icon in the top-right of the -Unraid webGui when configuring shares for more information on the -settings available._

User Shares are implemented by using Linux Fuse file system support. -What they do is provide an aggregated view of all top level folders of -the same name across the cache and the array drives. The name of this -top level folder is used as the share name. From a user perspective this -gives a view that can span multiple drives when viewed at the network -level. Note that no individual file will span multiple drives - it is -just the directory level that is given a unified view.

When viewed at the Linux level then User Shares will appear under the -path /mnt/user. This includes the files on the main array and also -any for the share on any pool. It is important to note that a User Share -is just a logical view imposed on top of the underlying physical file -system so you can see the same files if you look at the physical level -(as described below for Disk Shares).

  • Current releases of Unraid also include the mount point -/mnt/user0 that shows the files in User Shares OMITTING any -files for a share that are on any pool. This is just a different -view of the files on your server. However This mount point is now -deprecated and may stop being available in a future Unraid release.

Normally one creates User Shares using the Shares tab. However if you -manually create a top level folder on any drive the system will -automatically consider this to be a user Share and give it default -settings.

Which physical drive in the main array is used to store a physical file -is controlled by a number of settings for the share:

  • Allocation method: This has various options:

    • Most Free: This option means that new files should go to the -disk with the most free space. It has the downside that one is -continually switching drives which keeps the drive involved spun -up.

    • Fill Up: This option means simply fill up drives in disk -order until the free space falls below the Minimum Free Space -setting, and when that happens move onto the next disk. Many -users like this setting because their content is static in -nature to they find this a simple way to manage their storage.

    • High Water: (default) This option attempts to provide a -compromise between continually switching drives as is caused by -the Most Free setting and filling up disks in a sensible -manner, but not fill each drive to capacity before using the -next one. The aim is to allow related files do be kept together -on the same drive and to let unused drives be spun down.

      • It works with switch points based by continually halving the -size of the largest drive in the array.
      • Many people find this confusing (particularly in an array with -drives of varying size). so as an example if you had an array -consisting of drives of 8TB, 3Tb and 2TB
        • The largest drive is 8TB so the switch points are 4TB, 2TB, -1Tb etc.
        • The 4TB switch point is active so The 8TB Drive one would be -filled to 4TB free space left.
        • The 2TB switch point becomes active so the 8TB and 3TB -drives each gets used in disk order until it they have 2TB -free space
        • The 1TB switch point becomes active so each drive now gets -used in disk order until it only has 1TB free space.
        • etc
  • Included or excluded drives: These settings allow you to -control which array drives can hold files for the share. Never set -both values, set only the one that is most convenient for you. If no -drives are specified under these settings then all drives allowed -under Settings >> Global Share settings are allowed.

  • Split level: This setting controls how files should be grouped.

Important: in the event of there being contentions between the -Minimum free space, Split Level and the Allocation -method settings in deciding which would be an appropriate drive to -use the Split level setting always wins. This means that you can -get an out-of-space error even though there is plenty of space on -other array drives that the share can logically use.

Changing any of these settings for a share only affects where any new -files are put. Any files already present in the share are left where -they are located when a setting is changed. It takes Manual action to -move existing files.

Important: The Linux file systems used by Unraid are case sensitive -while the SMB share system is not. As an example this means that a -folder at the Linux level a folder called 'media' is different to one -called 'Media'. However at the network level case is ignored so for -example 'media', Media', 'MEDIA' would all be the same share. -However to take this example further you would only get the content of -one of the underlying 'media' or 'Media' folders to appear at the -network share level - and it can be non-obvious which one this would be.

The following sections proved more detail on how these settings work:

Allocation method

When a new User share is created, or when any object (file or directory) -is created within a User share, the system must determine which data -disk the User share or object will be created on. In general, a new User -share, or object within a User share, will be created on the data disk -with the most free space. However there are a set of share configuration -parameters available to fine tune disk allocation.

The basic allocation strategy for a share is defined by the Allocation -method configuration parameter. You may select one of three allocation -methods for the system to use.

High Water

The high water allocation method attempts to step fill each disk so at -the end of each step there is an equal free space left on each disk. The -idea is to progressively fill each disk but not constantly go back and -forth between disks each time new data is written to the array. Most -times, only a single disk will be needed when writing a series of files -to the array so the array will only spin-up the needed disk. The high -water level is initially set equal to one-half of the size of the -largest disk. A new high water level is again set to one-half of the -previous high level once all the disks have less free space than the -current high water level.

The above example shows what will occur when there is a mix of 4 disks -varying is size from 500gig to 2T in size.

First Pass - The high water level is set to one-half of the size of the -2T drive or 1T. Each disk will be filled until it has <1T of free space -remaining. This means no data is stored on disk1 or disk2 since both -already have <1T of free space. 500gig of data will be stored on disk3 -followed by 1T of data being stored on disk4.

Second Pass - The high water level is reset to one-half of the previous -level or 500gig. Each disk will be filled until it has <500gig of free -space remaining. This means no data is stored on disk1 since it already -has <500gig of free space. 500gig of data will be stored on disk2 and -then 500gig of data will be stored on disk3 and finally 500gig of data -will be stored on disk4.

Third Pass - The high water level is again reset to one-half of the -previous level or 250gig. Each disk will be filled until it has <250gig -of free space remaining. 250gig of data will be stored on disk1 and then -250gig of data will be stored on disk2 and then 250gig of data will be -stored on disk3 and finally 250gig of data will be stored on disk4. An -interesting note is that the 500gig disk does not get used at all until -the third pass. Don't be concerned if the smaller sized disks don't -immediately get used with this method.

This pattern will continue with progressively smaller high water levels -until the disks are full.

Most Free

The most free allocation method simply picks the disk with the most free -space and writes the data to that disk. Each time a file is written -Unraid will check the free space on the disks and pick the one with the -most free space.

Fill-Up

The fill-up allocation method simply attempts to fill each disk in order -from the lowest numbered disk to the highest numbered disk. The fill-up -allocation method must be used in conjunction with the minimum free -space setting. Otherwise, Unraid will begin to give disk full errors and -not allow any more transfers once the first disk gets close to being -full.

Min. Free Space

The minimum free space setting is used with the allocation method and -split level. The Minimum Free space setting doesn't control how much -space is kept free, but instead it controls how much space must be free -for a drive to be chosen for a new file. The minimum free space setting -therefore tells Unraid to stop putting new content onto the disk when -the free space falls below the level you set (as long as the Split Level -setting indicates it can be split to a new disk). This must be used with -the fill-up allocation method or disk full errors will occur when there -is not enough space to fit a file you are trying to write to the array.

First a brief explanation of how Unraid will typically receive a file. -Unraid typically receives data in this manner. First, Unraid receives -the request to store a file, named for example "file.eg". At this -time, Unraid has no idea how big "file.eg" is so Unraid will pick a -spot to place "file.eg" and begin to store the file data as the data -is transferred over the network. Now, this is important because Unraid -may pick a storage disk that does not have enough space to store the -complete "file.eg". Unraid doesn't know there is not enough space -when it first places the file so Unraid will only find out the disk -doesn't have enough space when the disk is full. At this point, the -transfer will fail with a disk full error.

So, Unraid will write to a different disk if the minimum free space is -set to a value larger than the biggest file size you will ever transfer. -The recommended setting is 2 times the largest file size you will ever -transfer. For example, if the largest file you have is 8gig in size then -set the minimum free space to 16gig. This allows you to transfer files -that may vary in size somewhat and not accidentally transfer one too -large. The minimum free space is set in kilo-bytes.

Here are some examples of the minimum free space setting;


Free SpaceValue
500 meg500000
20 gig20000000
40 gig40000000

Note that unRAID will still place files on the disk if the split level -does not allow the files to be placed on another disk with more free -space.

Also note that Unraid will typically not move a file onto a new disk if -you're over-writing or updating it. For example, a backup file that -grows in size over time could end up filling a disk and causing a disk -full error.

IMPORTANT: There is also a Minimum Free Space setting for cache pools. -This is used to determine when a new file for a User Share with the Use -Cache setting having a value of Yes or Prefer should be written to the -cache or instead bypass the cache and go directly to the array. This -needs to be set if you want to avoid filling a cache pool which can -cause problems. As for this value when used with a User Share it -should be larger than the largest file you intend to write, and some -people like to make it significantly larger. You get to this setting by -clicking on a pool on the Main tab.

Split level

The split level setting tells Unraid how many folder levels are allowed -to be created on multiple disks. The split level can be used to ensure -that the contents of a folder are kept on the same disk. The split level -numbering starts with the user share being the top level and given the -number 1.

IMPORTANT: in the event of there being contention between the -various settings for a share over which array drive to select for a file -the Split Level setting always takes precedence. This means the -Allocation Method and Minimum Free Space settings end up being -over-ridden. This can mean Unraid chooses a drive which does not have -enough space for the file so that an out-of-space error subsequently -occurs for the file.

The Split level setting is one that many users find confusing to here -is a more detailed description of how it works.

Here is an example showing a possible directory structure for a user -share called "Media".

Note: I (the original author of this section) consider combining -media types into a single large share a poor way to store media. I use a -share for each media type. Movies is a share and TV shows is a share. I -combined the movies and TV shows to show the pitfalls in the split -levels when doing this as explained after the figure.

Here is an explanation of the different split levels, referenced to the -folder structure above;

  1. Level 1
    • This is what you have if in the GUI you select the -"Automatically split only the top level directory as required" -option.
    • The top level Media share can be created on every disk.
    • Every other folder under the Media share must remain on a single -disk.
    • This setting does not allow the SD Movies, HD Movies, Kids -Movies or TV Shows folders to spread to multiple disks.
    • This setting is too low for all the media.
  2. Level 2
    • this is what you have if in the GUI you select the -"Automatically split only the top two directory levels as -required" option.
    • The top level Media share can be created on every disk.
    • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
    • Each Movie Folder and TV Show Folder must remain on a single -disk.
    • This setting may work well. It will keep each movie and each TV -series together on a single disk.
    • This setting may give issues because it keeps each TV series on -a single disk. So, a disk may fill as new TV seasons are added -to a TV show which is on a disk which is close to full.
  3. Level 3
    • This is what you have if in the GUI you select "Automatically -split only the top three directory levels as required".
    • The top level Media share can be created on every disk.
    • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
    • Each Movie Folder and TV Show Folder can be created on every -disk.
    • Each Season Folder must remain on a single disk.
    • This setting will allow the contents stored in each Movie Folder -to be spread out onto multiple disks.
    • This setting is too high for the different movie types.
  4. Level 4
    • This is what you have if in the GUI you select "Automatically -split only the top four directory levels as required".
    • The top level Media share can be created on every disk.
    • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
    • Each Movie Folder and TV Show Folder can be created on every -disk.
    • Each Season Folder can be created on every disk.
    • This setting is too high because it will allow the contents of -every folder to be spread out onto multiple disks. The split -level is not being used to keep similar content together.

The only valid split level for the above example is 2. This causes a -split level limitation which forces each complete TV series to a single -disk. This can force a new TV season to be placed on a disk which is -almost full and result in out of space errors once new episodes -completely fill the disk. The split level can't be increased to 3 -because each individual movie would not be contained to a single disk.

The first way to fix this split level mismatch issue is to create -separate shares for the movies and the TV shows. This way, the movies -can be set to use a split level of 2 and the TV shows can use a split -level of 3.

For Movies use a split level = 2. This allows the "SD Movies", "HD -Movies" and "Kids Movies" folders to be placed on every disk and it -keeps each individual movie folder on a single disk. This way, any -single movie folder and the contents of the movie folder will remain on -a single disk.

For TV_Shows use a split level of either 1 or 2. A split level of 1 will -keep each TV series on a single disk and split level of 2 will keep each -season on a single disk. The split level of 2 means that the complete TV -series can be stored on multiple disks, however each individual season -of that TV series will be on a single disk.

The second way to fix the issue is to add another folder level to the -movies, starting first with a Movies folder in the Media share and then -placing the different movie types below this.

This user share structure must use split level = 3. SD Movies, HD -Movies, Kids Movies and each TV series can exist on multiple disks. This -structure means each TV season can be on a different disk. This has the -opposite issue compared to the first example. You can not use split -level 2 to force each complete TV series to remain on a single disk -without messing up the ability of the movies to split to every disk.

Some things to keep in mind.

  • The above examples are to demonstrate the use of the split level. It -is not necessary to store your media sorted in the same format as -the above example illustrates. You may want to use a Movies share -and then just place a "Movie Name" folder for each movie directly -into the share without sorting the movies by type.

  • It is completely valid to force each complete TV series to stay on a -single disk. Just understand that a continuing TV series will keep -filling the disk where it is first placed. This may require manual -intervention to shift some TV series from an almost full disk to an -empty disk. Using the Most Free allocation method can help eliminate -the issue since a completely new TV series would be placed on the -disk with the most free space.

  • The above TV example applies to any similar share. It could apply to -a Pictures share where you store the pictures in folders based on -the year (2010, 2011, 2012 etc) or it could apply to a Music share -where you store the music in a folder for each artist. In these -cases, a split level of 1 would keep a whole year of pictures on a -single disk or it would keep all the music by an artist on a single -disk.

Disable Split Level

It is also possible to disable the split level by setting a high split -level. A file copy or move will fail if a folder is locked to a full -disk and an attempt is made to add more files into that folder. Setting -a high split level will ensure each file will get written to the server -as long as a disk has space for it.

Split Level = 1 Example

The following example demonstrates how the share behaves when the split -level is set to 1. The Share name is New_Movies. Each movie stored in -this share has its own folder. Inside the movie folder is the movie file -as well as some metadata files used by MediaBrowser.

The above Windows Explorer screen shot shows the file structure of the -New_Movies share on the left and the contents of the A History of -Violence movie folder on the right. The levels for this share are -labeled on the example. This is what split level = 1 means:

  • A New_Movies folder can be created on each disk allowed by the -include and exclude disk settings. A new New_Movies folder will be -created on the next disk in line when the allocation method calls -for Unraid to begin filling the next disk. Note that the New_Movies -folder will only be created on the next disk in line when it is -necessary and not when the share is created.

  • The A History of Violence folder can only -exist on one disk. Once it is created on the disk, all of the -contents will remain on the same disk. Any changes or additions to -this folder will remain on the same disk. For example, a new file -called movie.nfo for the XBMC metadata might be created in this -folder in the future. The movie.nfo file will be created in the -existing A History of Violence folder. A duplicate A History of -Violence folder will not be created on another disk to store this new -file.

You will notice that the movie folders (500) Days of Summer (2009) and -2 Fast 2 Furious (2003) both appear in the New_Movies share. The next -screen shot will show how each of these files is stored on a separate -disk.

The above screen shot shows side by side Window Explorer views of the -file structure stored on disk1 and disk2. On the left is disk1 and on -the right is disk2. The left Explorer window shows the contents of -disk1. The New_Movies share is a folder stored at the top level or the -root of disk1 with the individual movie directories stored in this -directory. The right Explorer window shows the contents of disk2. The -New_Movies share is a folder stored at the top level or the root of -disk2 with the individual movie folders stored in this directory. As -files were being moved into the New_Movies share, Unraid created the -New_Movies folder on both disk1 and disk2 to store these files.

The windows side by side can be used to examine the contents of the -New_Movies share on a disk by disk basis. You will notice that the movie -folder (500) Days of Summer (2009) is stored on disk1 and the movie -folder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted, -Unraid combines the movies stored on disk1 and disk2 into one network -share called New_Movies and both movies appear in the New_Movies network -share.

Take note that a share called Movies is also visible on disk2.

Split Level 0

This is what you have if in the GUI you select "Manual: do not -Automatically split directories".

Split level 0 is a special case. Split level 0 requires you to create -the desired top level or parent folder structure. Unraid will -unconditionally create an object on the disk that contains the parent -folders. Unraid will choose which disk to use according to the -allocation method if the parent folders exist on multiple disks.

If you set the Split level to 0, then all directories/files created -under that share will be on the same disk where the directory within -that share share was originally created. In other words, use level 0 to -not allow the share to split automatically across disks

NOTE: If you create the same folder structure on multiple disks then -Unraid will apply the other share settings to decide which disk to use.

Example

The server has 4 disks. A user share called Media is desired. Different -types of media will be stored in this share. The desired structure is;

  • disk1 - will hold the DVD movies.
  • disk2 - will hold the BluRay movies.
  • disk3 - will hold the BluRay movies.
  • disk4 - will hold the TV series.

The desired structure is illustrated below.

On the left side is how the user share will appear and on the right side -is the folder structure on each disk. The user will go to each disk and -create the folders shown in red to create the storage as listed above. -Then, the Media folder as well as the DVD Movies, BluRay Movies and TV -Shows folders become the parent folders for everything stored in the -Media share. The media will be sorted by disk as follows;

  • Movies placed in the DVD Movies folder will go to disk1.
  • Movies placed in the BluRay Movies folder will go to disk2 or disk3. -The disk is selected by the allocation method.
  • TV shows placed in the TV Shows folder will go to disk4.

Say one day that disk1 is full and disk5 is added to the server to hold -new DVD Movies. The same folders on disk1 must be created on the new -disk5. In other words, the folder Media and sub-folder DVD Movies must -be created on disk5. Then, Unraid can use either disk1 or disk5 to store -DVD Movies.

Split By Character

Specify a character in the split level box to use this method. Then, -Unraid will not allow any folder name containing the character to split. -For example, set the split level to an opening square bracket ( [ ) -instead of a number. Then, create each movie folder with the year -encased in square brackets after the title in this manner - Iron Man 2 -[2010]. Unraid will see the opening square bracket ( [ ) and it will -not split this folder or any content stored inside this folder.

This type of split level can allow different levels of sub-folders to be -specified as not splitting simply by inserting the character into the -folder name which should not split. This can overcome the limitation of -having a fixed split level for a share.

Included and Excluded disk(s)

The included disk(s) and excluded disk(s) parameters control which disks -are allowed to be used by each user share. These parameters can be used -separately or together to define the group of disks allowed for writing -files to each user share. The disks are entered by disk number with a -comma separating each disk, for example "disk2,disk5".

Unraid will first check the included disks(s) set and then the Excluded -disk(s) set when deciding which disk to place a file on. Then, Unraid -will use the split level and allocation method to pick a disk which is -allowed to hold the file.

Note: The Include/Exclude settings at the individual share level -only control which disks new files can be written to. Files on other -disks that are in a folder corresponding to the share name will still -show up under that share for read purposes.

Included disk(s)

The included disks(s) parameter defines the set of disks which are -candidates for allocation to that share. All disks may be used by the -user share when the Included disk(s) parameter is left blank. Specify -the disks to include here. For example, set the included disk(s) to -"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and -disk3.

Excluded disk(s)

The excluded disk(s) parameter defines the set of disks which are -excluded from use by the user share. No disks are excluded from use by -the user share when the excluded disk(s) parameter is left blank. -Specify the disks to exclude here. For example, set the excluded disk(s) -to "disk1,disk2" to restrict a share from using disk1 and disk2.

Default Shares

If you have Docker or VMs enabled then a number of default shares are -set up to support their use. It is not mandated that you use these -shares (and the system will let you remove them if you do not want to -use them for their standard purpose) but it is recommended as it tends -to make it easier to support users who encounter problems.

The shares that fall into this category are:

  • appdata: this is the default location for storing working files -associated with docker containers. Typically there will be a -sub-folder for each docker container.
  • system: this is the default location for storing the docker -application binaries, and VM XML templates
  • domains: this is the default location for storing virtual disk -images (vdisks) that are used by VMs.
  • isos: this is the default location for storing CD iso images for -use with VMs.

Unraid 6.12

The Unraid 6.12 release has introduced some new terminology to make it -clearer to new users where files are initially placed and where they -will end up. The same functionality is present in earlier releases, but -has often been misunderstood by new users.

Primary Storage

This is the location to which new files will be written.

If Primary storage is below the Minimum Free Space setting then new -files and folders will be created in Secondary storage, if configured

For the Primary storage drop-down:

  • this option is mandatory. ie, Primary storage must be selected
  • any named pool can be selected
  • "Array" can be selected (meaning the Unraid array)

Secondary Storage

This is the location where files will be moved to if appropriate.

For the Secondary storage drop-down:

  • None: This means that there is no secondary storage set for this -share i.e Secondary storage is optional
  • if Primary storage is a pool name, then the only options are -"none" and "Array"
  • if Primary storage is "Array", then only "none" appears as an -option

Unraid 6.11 and earlier

The following settings are only found in Unraid 6.11 and earlier. They -achieve the same functionality as the settings available in 6.12 but are -presented differently.

Use Cache (and Mover Behavior with User Shares)

Note: Starting with Unraid 6.9.0 multiple pools can exist and they -can have any name the user chooses. Any of these pools can act act as a -cache in the way Unraid uses the term. The word cache therefore is -referring to this functionality and not necessarily to the pool name.

Unraid includes an application called mover that is used in -conjunction with User Shares. It's behavior is controlled by the "Use -Cache for new files" setting under each User Share. The way these -different settings operate is as follows

  • Yes: Write new files to the cache as long as the free space on -the cache is above the Minimum free space value. If the free space -is below that then by-pass the cache and write the files directly to -the main array.

    When mover runs it will attempt to move files to the main array as -long as they are not currently open. Which array drive will get the -file is controlled by the combination of the Allocation method, -Split level, and Minimum Free Space setting for the share.

  • No: Write new files directly to the array. Which array drive -will get the file is controlled by the combination of the -Allocation method, Split level, and Minimum Free Space setting -for the share.

    When mover runs it will take no action on files for this share -even if there are files on the cache that logically belong to this -share.

  • Only: Write new files directly to the cache. If the free space -on the cache is below the Minimum free space setting for the cache -then the write will fail with an out-of-space error.

    When mover runs it will take no action on files for this share -even if there are files on the main array that logically belong to -this share.

  • Prefer: Write new files to the cache if the free space on the -cache is above the Minimum free space setting for the share, and -if the free space falls below that value then write the files to the -main array instead.

    When mover runs it will attempt to move any files for this share -that are on the main array back to the cache as long as the free -space on the cache is above the Minimum free space setting for the -cache

    It is the default setting for the appdata and System Shares that -are used to support the Docker and VM sub-systems. In typical use -you want the files/folders belonging to these shares to reside on -the cache as you get much better performance from Docker containers -and VMs if their files are not on the main array (due to the cost of -maintaining parity on the main array significantly slowing down -write operations).

    This setting works for a share even if you do not have (yet) a -physical cache drive(s) as then files will simply be written -directly to the array. If at a later date you add a cache drive -mover will now automatically try and move the files in any share set -to Prefer to the pool defined as the cache for the share to improve -performance. This is why it is the default for shares that are -typically located on the cache rather than Only as it caters for -those who do not (yet) have a cache drive.

Moving Files from a Pool (cache) to the Array

This is the more traditional usage of a pool for caching where one wants -the files for a particular share initially written to a pool acting as a -cache to maximise write speed, but later you want it to be moved to the -main array for long term storage. Most of the time all that is required -is to set the Use Cache setting for the share to Yes and the default -behaviour handles the rest with no further user interaction.

Sometimes for one reason or another users find that the files seem to be -'stuck' on a pool. The way to proceed in such a case to get the files -belonging to a share from a pool onto the main array is:

  • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved).
  • Change the Use Cache setting for the share to Yes
  • Manually run mover from the Main tab to get it to move Yes -type shares from array to the pool (cache).
  • When mover finishes you can re-enable the Docker and/or VMs -services you use if you disabled them earlier.
  • (optional) change the Use Cache setting to Only to say files -for this share can never be written to the array.
Moving Files from the Array to a Pool (cache)

One typically wants files associated with running Docker containers or -VMs on a pool to maximise performance. It is not unusual for one reason -or another to find that one has files on the main array which you really -want to be on a pool. In particular this is likely to happen for the -appdata or system shares

The way to proceed to get the files belonging to a share from the main -array onto a pool is:

  • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved)
  • Change the Use Cache setting for the share to Prefer
  • Manually run mover from the Main tab to get it to move -Prefer type shares from array to the pool (cache).
  • When mover finishes you can re-enable the Docker and/or VMs -services you use.
  • (optional) change the Use Cache setting to No to say files for -this share can never be cached on a pool.

Disk Shares

These are shares that relate to individual array drives or pools within -the Unraid system and that are visible over the network. By default if -User Shares are enabled then Disk Shares are not enabled (see the -IMPORTANT section below for the reason why this is the case). If you -want the Disk Shares to be enabled then this is done under -Settings->Global Share Settings. The Disk Shares will then appear in -the Unraid GUI under a Disk Shares section on the Shares tab. You will -want to modify the user permissions to restrict network user access if -desired, just like User Shares.

When viewed at the Linux level the physical devices or pools will appear -directly under /mnt with a name corresponding to the array drive or -pool. (This happens regardless of whether Disk Shares are enabled) . -Examples of such names are:

/mnt/diskX: these are array drives where X corresponds to the disk -number that shows in the Unraid GUI. The corresponding Disk Share at the -network level would be diskX

/mnt/pool-name: These are pools. A single pool can actually consist of -multiple drives but Unraid treats them as if they were one drive. The -commonest example of a pool-name is 'cache' but it can be any name -defined by the user. The corresponding Disk Share at the network level -would be pool-name.

The Unraid flash device that is used to boot Unraid and store all user -settings is also a physical device, but is not normally considered to be -a Disk Share. If you want it visible on the network then you can click -on it in the Main tab and set it to appear at the network level as the -'flash' share. At the Linux level it is mounted at /boot

IMPORTANT -If you have both Disk Shares and User Shares enabled then there -is an important restriction that you must observe if you want to -avoid potential data loss. What you must NEVER do is copy -between a User Share and a Disk Share in the same copy -operation where the folder name on the Disk Share corresponds to the -User Share name. This is because at the base system level Linux does -not understand User Shares and therefore that a file on a Disk -Share and a User Share can be different views of the same -file. If you mix the share types in the same copy command you can -end up trying to copy the file to itself which results in the file -being truncated to zero length and its content thus being lost.

There is no problem if the copy is between shares of the same type, -or copying to/from a disk mounted as an Unassigned Device.

There is another quirk of the interaction between Linux and the Unraid -User Share system that users can encounter if they are working at the -Disk Share level. The Linux command for Move is implemented by first -trying a rename on the file (which is fast) and only if that fails does -it do a copy then delete operation. This can mean that under some -circumstances when working locally on the server (e.g. from the command -line when you try to move files from one user share to another, Linux -will often simply rename the files so they have a different path on the -same disk, in violation of any user share settings such as included -disks. The workaround for this is to instead explicitly copy from source -to destination so that new files get created following the user share -settings, then deleting from the source.

Network access

You can control what protocols should be supported for accessing the -Unraid server across the network. Click on Settings->Network Services -to see the various options available.. These options are:

  • SMB: This the standard protocol used by Windows systems. It is -widely implemented on other systems.
  • NFS: Network File System. This is a protocol widely -used on Unix compatible systems.
  • AFP: Apple File Protocol. This is the protocol that -has historically been used on Apple Mac systems. It is now a -deprecated option as the latest versions of MacOS now use SMB as the -transferred protocol for accessing files and folders over the -network.
  • FTP: File Transfer Protocol.

When you click on the name of a share on the Shares tab then there is a -section that allows you to control the visibility of the share on the -network for each of the protocols you have enabled. The setting is -labelled Export and has the following options:

  • Yes: With this setting the share will be visible across the -network.
  • Yes (Hidden): With this setting the share can be accessed across -the network but will not be listed when browsing the shares on the -server. Users can still access the share as long as they know the -name and the user is prepared to enter in manually.
  • No: With this option selected then it is not possible to access -the share across the network.

Access Permissions

When you click on the name of a share on the Shares tab then there is a -section that allows you to control the access rights of the share on the -network for each of the protocols you have enabled. The setting is -labelled Security and has the following options:

  • Public: All users have both read and write access to the -contents of the share
  • Secure: All users including guests have read access, you select -which of your users have write access
  • Private: You select which of your users have access and for each -user whether that user has read/write or read-only access.

Windows 'Gotcha'

There is an issue with the way Windows handles network shares that many -users fall foul of:

  • This is the fact that Windows only allows a single username to -be used to connect to a specific server at any given time. All -attempts to then connect to a different share on the same server -that are not public shares put up a Username/Password prompt and -this fails as though you have entered an incorrect password for this -username. If you have any shares on the server set to Private or -Secure access it can therefore be important that you connect to -such a share first before any shares set for Public access which -may connect as a guest user and make subsequent attempts to connect -with a specific user fail.
  • A workaround that can help with avoiding this issue is the fact that -if you access a server both by it's network name and via it's IP -address then Windows will treat it a two separate servers as far as -authentication is concerned.
- - +

Shares

tip

Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.

One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives.

There are two types of shares in Unraid:

It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder.

When you first initialize your array, Unraid automatically creates a handful of user shares. These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data.

You manage shares from the Shares tab in Unraid. You enable or disable shares in Settings > Global Share Settings, with user shares being enabled by default.

+ + \ No newline at end of file diff --git a/de/unraid-os/manual/shares/network-access/index.html b/de/unraid-os/manual/shares/network-access/index.html new file mode 100644 index 000000000..bd3048c58 --- /dev/null +++ b/de/unraid-os/manual/shares/network-access/index.html @@ -0,0 +1,22 @@ + + + + + +Network access | Unraid Docs + + + + + + + + + + +
+

Network access

Communication protocols

For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:

  • SMB, or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X.
  • NFS, or Network File System, is a widely-used protocol on Unix-compatible systems.
  • FTP, or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.
info

As of Unraid 6.9, AFP support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in Settings > SMB set the Enhanced macOS interoperability parameter to Yes.

Protocol selection

Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases.

For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer.

Access permissions at share level

Each protocol can be configured at the share level. On the Shares tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled Export and has the following options:

  • Yes - The share will be visible across the network.
  • Yes (Hidden) - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually.
  • No - This will disable network access through that protocol, for that share.

Share security

Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available.

For example, you may configure a movies share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials.

When you select an existing share on the Shares tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols you have enabled.

The Security setting has the following options:

  • Public - The share is unsecured and all users have both read and write access to the contents of the share.
  • Secure - The share is secured and all users, including guests, have read access. You can select which of your users have write access.
  • Private - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.
Windows 'Gotcha'

There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails.

If you have any shares on the server set to Private or Secure access, it is important that you connect to that share first, before any shares set for Public access.

As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/shares/user-shares/index.html b/de/unraid-os/manual/shares/user-shares/index.html new file mode 100644 index 000000000..399d43a85 --- /dev/null +++ b/de/unraid-os/manual/shares/user-shares/index.html @@ -0,0 +1,27 @@ + + + + + +User shares | Unraid Docs + + + + + + + + + + +
+

User shares

tip

Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.

Overview

User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view.

You manage User Shares from the Shares tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes.

When viewed at the Linux level, user shares appear under the path /mnt/user. This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for Disk Shares.

Note that current releases of Unraid also include the mount point /mnt/user0 that shows the files in User Shares omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release.

The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the allocation method, included or excluded disks, and the split level.

If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action.

caution

There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation.

This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.

Share settings

tip

When you configure the settings for the share, select the Help icon in the top-right of the Unraid webGUI for detailed information on the individual settings.

Minimum free space

The Minimum free space setting is used with the allocation method and split level. This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk).

note

This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.

When Unraid receives a request to store a file, say for example file.eg, it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer.

We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large.

The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter 50GB. Note that new user shares will have a default 10% minimum free space assignment.

Unraid will still place files on the disk if the split level does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error.

caution

There is also a Minimum Free Space setting for cache pools. This is used to determine if a new file for a user share, with the Use Cache setting of Yes or Prefer, should be written to the +cache or, instead, bypass the cache and go directly to the array.

This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.

Primary and Secondary storage (Unraid 6.12)

The Primary storage parameter defines the location - Cache, Array, or any named pool - to which new files will be written for the selected share. The Secondary storage parameter sets the location where files will be moved to if there is not enough room in primary storage.

When primary storage is below the Minimum Free Space value, new files and folders are created in secondary storage.

note

If you select an array or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.

Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users.

For the Primary storage drop-down:

  • This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of Cache
    • any named pool can be selected.
    • Array can be selected.

For the Secondary storage drop-down:

  • None: This means that there is no secondary storage set for this share. Note that secondary storage is optional.
    • if Primary storage is a pool name, then the only options are None and Array.
    • if Primary storage is Array, then only None appears as an option.

Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)

The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently.

INFO

Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.

Unraid includes an application called Mover that is used in conjunction with user shares. It's behavior is controlled by the Use Cache for new files setting under each user share. The way these settings operate is as follows:

  • Yes: Write new files to the cache as long as the free space on the cache is above the Minimum free space value. If the free space is below that then bypass the cache and write the files directly to the main array.

    When Mover runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the Allocation Method, Split Level, and Minimum Free Space setting for the share.

  • No: Write new files directly to the array. Which array drive will get the file is controlled by the combination of the Allocation method, Split level, and Minimum Free Space setting for the share.

    When Mover runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.

  • Only: Write new files directly to the cache. If the free space on the cache is below the Minimum free space setting for the cache then the write will fail with an out-of-space error.

    When Mover runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.

  • Prefer: Write new files to the cache if the free space on the cache is above the Minimum free space setting for the share, and if the free space falls below that value then write the files to the main array instead.

    When Mover runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the Minimum free space setting for the cache

    It is the default setting for the appdata and system shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations.

    This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, Mover will automatically try and move the files in any share set to Prefer to the pool defined as the cache for the share. This is why Prefer is the default for shares that are located on the cache rather than Only as it caters to those who do not (yet) have a cache drive.

Moving Files from a Pool (cache) to the Array

This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage.

Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:

  1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
  2. Set the Mover action field to Cache -> Array.
  3. Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved.
  4. Go to Main > Array Operation, and select Move to manually move files from the pool (cache) to the array.
  5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

Moving Files from the Array to a Pool (cache)

You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the appdata or default system shares.

The way to proceed to get the files belonging to a share from the main array onto a pool is:

  1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
  2. Set the Mover action field to Array -> Cache.
  3. Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved.
  4. Go to Main > Array Operation, and select Move to manually move files from the array to the pool (cache).
  5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

Allocation method

When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user +share, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation.

The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: High-water, Most-free, or Fill-up.

High-water method

The High-water setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level.

Example

If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass.

  • While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left.
  • When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space
  • Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.

This pattern continues with progressively smaller high-water levels until the disks are full.

Fill-up method

The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free +space setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full.

Most-free method

The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the +most free space.

Split level

The Split level setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level +numbering starts with the user share being the top level and given the number 1.

Automatically split any directory as required

When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured Allocation method. If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory.

Automatically split only the top level directory as required

When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory.

Automatically split only the top "N" level directories as required

Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.

Manual - do not automatically split directories

When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists.

info

In the event of there being conflicts between the Minimum free space, Split Level and the Allocation method settings in deciding which would be an appropriate drive to use, the Split level setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.

Included or excluded disks

These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under Settings > Global Share settings are allowed.

Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file.

info

The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.

Included disk(s)

The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.

Excluded disk(s)

The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.

Default Shares

If Docker or VMs are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems.

The shares that fall into this category are:

  • appdata - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container.
  • system - This is the default location for storing the docker application binaries, and VM XML templates
  • domains - This is the default location for storing virtual disk images (vdisks) that are used by VMs.
  • isos - This is the default location for storing CD ISO images for use with VMs.
info

We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the isos share that can be shared over the network so you can place new ISOs to use in virtual machines.

+ + + + \ No newline at end of file diff --git a/de/unraid-os/manual/storage-management/index.html b/de/unraid-os/manual/storage-management/index.html index 2d1ab808c..88943cd62 100644 --- a/de/unraid-os/manual/storage-management/index.html +++ b/de/unraid-os/manual/storage-management/index.html @@ -9,13 +9,13 @@ - - - + + +
-

Storage Management

To assign devices to +

Storage Management

To assign devices to the array and/or cache, first login to the server's webGui. Click on the Main tab and select the devices to assign to slots for parity, data, and cache disks. Assigning devices to Unraid is easy! Just @@ -920,7 +920,7 @@ parity system is file system agnostic as it works at the physical sector level and is not even aware of the file system that is in use on any particular drive.

In addition drives can be -encrypted. A point to +encrypted. A point to note about using encryption is that if you get any sort of file system corruption then encryption can make it harder (and sometimes impossible to recover data on the corrupted file system.

If using a cache pool (i.e multiple drives) then the supported types are @@ -1412,8 +1412,8 @@ using the BTRFS file system.

BTRFS supports a variety of RAID profiles and these will perform more like a traditional RAID system giving much higher throughput than the main Unraid array.

Recovery after drive failure tends to be harder and more prone to lead -to data loss which is one disadvantage of using pools for everything.

- - +to data loss which is one disadvantage of using pools for everything.

+ + \ No newline at end of file diff --git a/de/unraid-os/manual/tools/index.html b/de/unraid-os/manual/tools/index.html index 168b77cd8..a18661649 100644 --- a/de/unraid-os/manual/tools/index.html +++ b/de/unraid-os/manual/tools/index.html @@ -9,13 +9,13 @@ - - - + + +
-

Tools

THIS SECTION IS STILL UNDER CONSTRUCTION

The Tools section of the Unraid GUI is used to access a number of Tools +

Tools

THIS SECTION IS STILL UNDER CONSTRUCTION

The Tools section of the Unraid GUI is used to access a number of Tools to help with managing an Unraid server on a day-to-day basis. The list of tools available is often extended by 3rd party supplied plugins.

Unraid Standard Tools

This section covers tools that are supplied as standard with an Unraid installation. They are grouped into a number of sections for ease of @@ -68,8 +68,8 @@ application's appdata config files without utilizing the command prompt)

Docker Safe New Perms

This is part of the Fix Common Problems plugin.

It differs from the standard Unraid New Permissions tool in that it will never change permissions on the appdata folder/share that is normally -used to store working files for docker containers.

About

Update Assistant

- - +used to store working files for docker containers.

About

Update Assistant

+ + \ No newline at end of file diff --git a/de/unraid-os/manual/troubleshooting/index.html b/de/unraid-os/manual/troubleshooting/index.html index d26574877..2e898fb12 100644 --- a/de/unraid-os/manual/troubleshooting/index.html +++ b/de/unraid-os/manual/troubleshooting/index.html @@ -9,13 +9,13 @@ - - - + + +
-

Troubleshooting

THIS SECTION IS STILL UNDER CONSTRUCTION

More detail still needs to be added

Most of the time Unraid systems function with minimal problems. This +

Troubleshooting

THIS SECTION IS STILL UNDER CONSTRUCTION

More detail still needs to be added

Most of the time Unraid systems function with minimal problems. This section is intended to help with resolving issues that are most commonly encountered.

There are some important general guidelines that it is recommended that a user follows that will help with any troubleshooting that may be @@ -134,7 +134,7 @@ do so to provide the logs captured by the syslog server as these are not included in the standard system diagnostics.

Docker Containers

The standard system diagnostics do not contain much that will help with diagnosing issues with specific docker containers.

MORE DETAIL NEEDED

VMs

The standard system diagnostics do not contain much that will help with -diagnosing issues with specific VMs.

MORE DETAIL NEEDED

Boot Issues

Preparing the flash drive

This is covered under the Getting +diagnosing issues with specific VMs.

MORE DETAIL NEEDED

Boot Issues

Preparing the flash drive

This is covered under the Getting Started section of the documentation.

If for any reason you decide that you need to redo the flash drive then it is a good idea to make sure you first backup the current flash drive @@ -600,7 +600,7 @@ User Share will never appear to be on the same mount point so a copy + delete is done automatically.

  • Make sure the mount points for source and target appear to be different at the Linux level.
  • Move between physical drives rather than at the User Share level.
  • - - + + \ No newline at end of file diff --git a/de/unraid-os/manual/upgrade-instructions/index.html b/de/unraid-os/manual/upgrade-instructions/index.html index a578046fa..b65feb1b9 100644 --- a/de/unraid-os/manual/upgrade-instructions/index.html +++ b/de/unraid-os/manual/upgrade-instructions/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your +

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your USB flash device. You can do this by copying the entire contents of the "flash" share to a separate computer.

    From version 6.4 or higher

    1. Boot your server up and login to the web interface
    2. Click the Tools tab
    3. Click "Update OS" under the About section
    4. Click "Check for Updates" to see if a new release is available
    5. Click "Update" to apply the update
    6. Once the upgrade is complete, reboot your server for it to take effect

    Note: You can optionally install releases from the "Next" branch as @@ -100,7 +100,7 @@ earlier.

    From version 5.x or earlier

    Please see this forum post for information on upgrading.

    Manual Upgrade or Downgrade

    This is useful if you don't have access to the Unraid webgui for some reason.

    Manual upgrade using a network share or by putting the flash drive in another system

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Unzip that file locally
    • Access the 'flash' share on the server, or physically put the flash drive in the local computer
    • If the previous directory does not exist on the flash drive, create it
    • Move (not copy) bz* and changes.txt from the root of the flash drive to the previous directory, overwriting files as needed
    • Copy bz* and changes.txt from the unzipped file to the root of the flash drive
    • Reboot the server

    Manual upgrade from the Unraid command line

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Login to the Unraid server using SSH, telnet, or a local keyboard/mouse
    • Type these commands one line at a time and press enter. If there are errors along the way, stop and ask for help:
    cd /tmp
    rm -f unraid.zip
    rm -rf unraid_install
    wget -O unraid.zip <paste the URL from above>
    [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP the file was not downloaded"
    unzip -d unraid_install unraid.zip
    [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP the file was not extracted properly"
    [[ ! -d /boot/previous ]] && mkdir /boot/previous
    mv /boot/bz* /boot/previous
    mv /boot/changes.txt /boot/previous
    cp unraid_install/bz* /boot
    cp unraid_install/changes.txt /boot
    sync -f /boot
    sleep 5
    reboot
    - - + + \ No newline at end of file diff --git a/de/unraid-os/manual/users/index.html b/de/unraid-os/manual/users/index.html index 4d77c789e..0a56ef688 100644 --- a/de/unraid-os/manual/users/index.html +++ b/de/unraid-os/manual/users/index.html @@ -9,16 +9,16 @@ - - - + + +
    -

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does +

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does not support the standard set of user facilities available on most Linux systems. Instead the users defined in Unraid can be divided into:

    • Admin user:
    • Share permissions Users:
    • Other Users:

    Admin User (root)

    Share permissions Users

    Other Users

    - - + + \ No newline at end of file diff --git a/de/unraid-os/manual/vm-management/index.html b/de/unraid-os/manual/vm-management/index.html index 6d34579e7..17d121768 100644 --- a/de/unraid-os/manual/vm-management/index.html +++ b/de/unraid-os/manual/vm-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running +

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running Linux-based applications such as media servers, backup software, and file sharing solutions, virtual machines add support for non-Linux workloads and the ability to utilize devices that the host cannot (think @@ -382,7 +382,7 @@ file to install the QEMU guest agent.

  • Shut down your VM.
  • Step 6: Remove the temporary vdisk and start the VM

    1. Click to edit the VM using the form-based editor (the pencil symbol)
    2. Remove the secondary vdisk
    3. Ensure the primary vdisk is pointing to your original vdisk file (it may be pointing to the secondary vdisk, and if so, update it to point to your actual vdisk)
    4. When completed, click Update
    5. Start your VM
    6. Verify your device manager shows no warnings
    7. DONE!
    - - + + \ No newline at end of file diff --git a/de/unraid-os/manual/vm-support/index.html b/de/unraid-os/manual/vm-support/index.html index c416b8803..8c44d15c4 100644 --- a/de/unraid-os/manual/vm-support/index.html +++ b/de/unraid-os/manual/vm-support/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    VM Support

    Overview

    Unraid 6 currently supports the virtualization of nearly any 64-bit +

    - - + + \ No newline at end of file diff --git a/de/unraid-os/manual/what-is-unraid/index.html b/de/unraid-os/manual/what-is-unraid/index.html index 68279fdcf..075807ecd 100644 --- a/de/unraid-os/manual/what-is-unraid/index.html +++ b/de/unraid-os/manual/what-is-unraid/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you +

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you with the ultimate control over your hardware. In addition to performing the duties of a robust NAS (network-attached storage), Unraid is also capable of acting as an application server and virtual machine host. @@ -208,8 +208,8 @@ transfer files from the cache to the array.

  • Docker Containers. Manage application controls from a single pane of glass. Add applications with minimal effort using community-provided templates.
  • Virtual Machines. Choose between pre-created virtual machine -images or create your own custom VM from scratch.
  • - - +images or create your own custom VM from scratch.
    + + \ No newline at end of file diff --git a/de/unraid-os/manual/zfs/placeholder/index.html b/de/unraid-os/manual/zfs/placeholder/index.html index a0d5acc3b..e452e0f11 100644 --- a/de/unraid-os/manual/zfs/placeholder/index.html +++ b/de/unraid-os/manual/zfs/placeholder/index.html @@ -9,14 +9,14 @@ - - - + + + - - +
    + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.10.0/index.html b/de/unraid-os/release-notes/6.10.0/index.html index 17c03a08f..1740d3018 100644 --- a/de/unraid-os/release-notes/6.10.0/index.html +++ b/de/unraid-os/release-notes/6.10.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -80,7 +80,7 @@ daemon, we recommend setting up either a static DHCP lease, or assigning a static IP address for your server.  Finally, we have set up nginx such that the URL's:

    • http://<server-name>.<local-tld>/

    or

    • https://<server-name>.<local-tld>/

    will redirect to https://[lan-ip].[hash].myunraid.net

    More information including use cases may be found in Documentation -here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been +here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been compiled with OpenGL support, and ARM emulation (experimental).

    Windows 11 Support

    To support Windows 11 which requires TPM and Secure boot, we have added TPM emulation; and, added a "Windows 11" VM template which automatically selects TPM-aware OVMF bios.  Also, here are @@ -175,7 +175,7 @@ component called wsdd2 in an effort to eliminate instances where the wsd daemon would start consuming 100% of a CPU core.

  • Fixed issue where you couldn't create a docker image on a share name that contains a space.
  • Fixed issue where 'mover' would not move to a pool name that -contains a space.
  • Fixed issue in User Share +contains a space.
  • Fixed issue in User Share file system where permissions were not being honored.
  • Fixed jumbo frames not working.
  • sysctl: handle net.netfilter.nf_conntrack_count max exceeded (increase setting to 131072) - hattip to Community Member @DieFalse
  • Fixed bug found by @thohell where md_sync_limit was not being honored to limit stripe_head cache usage when other I/O is active. @@ -259,7 +259,7 @@ shares
  • webgui: jQuery: version 3.6.0
  • webgui: present CA-signed certificate subject as a link
  • webgui: privatize host in diagnostics
  • webgui: refactor UpdateDNS.php: anonymize verbose output by default, other improvements
  • webgui: remove 'My Servers' skeleton page
  • webgui: require sign in to provision cert
  • webgui: support simultaneous LAN SSL with self-signed cert and DNS-based SSL with Lets Encrypt cert
  • webgui: various Multi-language corrections
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.10.1/index.html b/de/unraid-os/release-notes/6.10.1/index.html index d9b2f5a40..1ae9e9c27 100644 --- a/de/unraid-os/release-notes/6.10.1/index.html +++ b/de/unraid-os/release-notes/6.10.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ introduced a regression where only partition 1 was considered, leaving those users unable to complete the boot sequence.

    This is fixed in 6.10.1 - and this is the only functional change in 6.10.1 vs. 6.10.0.

    Change Log vs. Unraid OS 6.10.0

    Management

    • startup: fix regression: support USB flash boot from other than partition 1
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.10.2/index.html b/de/unraid-os/release-notes/6.10.2/index.html index af1b5d12b..a1ca65da8 100644 --- a/de/unraid-os/release-notes/6.10.2/index.html +++ b/de/unraid-os/release-notes/6.10.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -50,7 +50,7 @@ 'Auto' to 'Strict'
  • webgui: Fixed: smGlue not included when selecting a controller
  • webgui: Fixed: allow share names with embedded ampersand
  • webgui: add LXC terminal support (for LXC Plugin)
  • webgui: Docker Web UI to use Docker label for icons as fallback
  • webgui: VM Manager: support libvirt networks (make libvirt networks accessible via gui)
  • webgui: fix issue where 'root' login works with password from another username which includes string 'root'
  • webgui: Update OS page spelling corrction: warninging -> warning
  • webgui: helptext review: minor corrections
  • - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.10.3/index.html b/de/unraid-os/release-notes/6.10.3/index.html index 1a22ef34b..2cd773eff 100644 --- a/de/unraid-os/release-notes/6.10.3/index.html +++ b/de/unraid-os/release-notes/6.10.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -20,7 +20,7 @@ reports of data corruption involved platforms which also (coincidentally) used 'tg3' network driver. If you created a blank 'config/modprobe.d/tg3.conf' file you may remove it.

    Plugin authors: A plugin file may include an <ALERT> tag which displays a markdown formatted message when a new version is available. Use this to give instructions or warnings to users before the upgrade is done.

    Brought back color-coding in logging windows.

    Bug fixes

    Fix issue detecting Mellanox NIC.

    Misc. webGUI bug fixes

    Change Log vs. Unraid OS 6.10.2

    Base distro

    • no changes

    Linux kernel

    • version 5.15.46-Unraid
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough

    Management

    • startup: improve network device detection
    • webgui: Added color coding in log files
    • webgui: In case of flash corruption try the test again
    • webgui: Improved syslog reading
    • webgui: Added log size setting when viewing syslog
    • webgui: Plugin manager: add ALERT message function
    • webgui: Add INFO icon to banner
    • webgui: Added translations to PageMap page
    • webgui: Fix: non-correcting parity check actually correcting if non-English language pack installed
    • webgui: Updated azure/gray themes
      • Better support for Firefox
      • Move utilization and notification indicators to the right
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.11.0/index.html b/de/unraid-os/release-notes/6.11.0/index.html index 904eeb2f1..fb81517b7 100644 --- a/de/unraid-os/release-notes/6.11.0/index.html +++ b/de/unraid-os/release-notes/6.11.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -25,7 +25,7 @@ "btrfs fi" commands will attempt to read btrfs metadata from this device which fails because there really is not a btrfs filesystem there.

  • Fixed bug in mover that prevented files from being moved from unRAID array to a cache pool (mode Prefer) if the share name contains a space.

  • Change Log vs. Unraid OS 6.10.3

    Management

    • Add sha256 checks of un-zipped files in unRAIDServer.plg.
    • bash: in /etc/profile omit "." (current directory) from PATH
    • docker: do not call 'docker stop' if there are no running containers
    • emhttpd: improve standby (spinning) support
    • mover: fixed issue preventing moving filed from array to cache if share name contains a space
    • rc.nginx: enable OCSP stapling on certs which include an OCSP responder URL
    • rc.nginx: compress 'woff' font files and instruct browser to cache
    • rc.wireguard: add better troubleshooting for WireGuard autostart
    • rc.S: support early load of plugin driver modules
    • SMB: fixed 'fruit' settings for the USB Flash boot device
    • SMB: remove NTLMv1 support since removed from Linux kernel
    • SMB: (temporarily) move vfs_fruit settings into separate /etc/samba/smb-fruit.conf file
    • SMB: (temporarily) get rid of Samba 'idmap_hash is deprecated' nag lines
    • startup: Prevent installing downgraded versions of packages which might exist in /boot/extra
    • upc: version v1.3.0
    • webgui: Plugin system update
      • Detach frontend and backend operation
      • Use nchan as communication channel
      • Allow window to be closed while backend continues
      • Use SWAL as window manager
      • Added multi remove ability on Plugins page
      • Added update all plugins with details
    • webgui: docker: use docker label as primary source for WebUI
      • This makes the 'net.unraid.docker.webui' docker label the primary source when parsing the web UI address. If the docker label is missing, the template value will be used instead.
    • webgui: Update Credits.page
    • webgui: VM manager: Fix VM log can not open when VM name has an embedded '#'
    • webgui: Management Access page: add details for self-signed certs
    • webgui: Parity check: fix regression error
    • webgui: Remove session creation in scripts
    • webgui: Update ssh key regex
      • Add support for ed25519/sk-ed25519
      • Remove support for ecdsa (insecure)
      • Use proper regex to check for valid key types
    • webgui: misc. style updates
    • webgui: Management access: HTTP port setting should always be enabled
    • webgui: Fix: preserve vnc port settings
    • webgui: Fix regression error in plugin system
    • webgui: Fix issue installing registration keys
    • webgui: Highlight case selection when custom image is selected
    • webgui: fix(upc): v1.4.2 apiVersion check regression
    • webgui: Update Disk Capabilities pages for NVME drives
    • webgui: chore(upc): v1.6.0
    • webgui: Plugin system and docker update
    • webgui: System info - style update
    • webgui: Plugins: keep header buttons in same position
    • webgui: Prevent overflow in container size for low resolutions
    • webgui: VM Manager: Add boot order to GUI and CD hot plug function
    • webgui: Docker Manager: add ability to specify shell with container label.
    • webgui: fix: Discord notification agent url
    • webgui: Suppress info icon in banner message when no info is available
    • webgui: Add Spindown message and use -n for identity if scsi drive.
    • webgui: Fix SAS Selftest
    • webgui: Fix plugin multi updates
    • webgui: UPS display enhancements:
      • Add icon for each category
      • Add translation in UPS section on dashboard
      • Add Output voltage / frequency value
      • Add coloring depending on settings
      • Normalize units
      • Make updates near real-time
      • Added UPS model field
    • webgui: JQuery: version 3.6.1
    • webgui: JQueryUI: version 1.13.2
    • webgui: improved 'cache busting' on font file urls
    • webgui: Fixed: text color in docker popup window sometimes wrong
    • webgui: Fixed: show read errors during Read Check
    • webgui: VM Manager: Add USB Startup policy; add Missing USB support
    • webgui: Docker: fixed javascript error when no containers exist
    • webgui: added 3rd party system diagnostics
      • added diagnostics for third party plugin packages
      • added diagnostics for /dev/dri devices
      • added diagnostics for /dev/dvb devices
      • added diagnostics for nvidia devices

    Linux kernel

    • version 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166)
    • md/unraid: version 2.9.24
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough
    • CONFIG_VIRTIO_IOMMU: Virtio IOMMU driver
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_FIREWIRE: FireWire driver stack
    • CONFIG_FIREWIRE_OHCI: OHCI-1394 controllers
    • CONFIG_FIREWIRE_SBP2: Storage devices (SBP-2 protocol)
    • CONFIG_FIREWIRE_NET: IP networking over 1394
    • CONFIG_INPUT_UINPUT: User level driver support
    • CONFIG_INPUT_JOYDEV: Joystick interface
    • CONFIG_INPUT_JOYSTICK: Joysticks/Gamepads
    • CONFIG_JOYSTICK_XPAD: X-Box gamepad support
    • CONFIG_JOYSTICK_XPAD_FF: X-Box gamepad rumble support
    • CONFIG_JOYSTICK_XPAD_LEDS: LED Support for Xbox360 controller 'BigX' LED
    • CONFIG_MLX5_TLS: Mellanox Technologies TLS Connect-X support
    • CONFIG_MLX5_ESWITCH: Mellanox Technologies MLX5 SRIOV E-Switch suppor
    • CONFIG_MLX5_CLS_ACT: MLX5 TC classifier action support
    • CONFIG_MLX5_TC_SAMPLE: MLX5 TC sample offload support
    • CONFIG_MLXSW_SPECTRUM: Mellanox Technologies Spectrum family support
    • CONFIG_NET_SWITCHDEV: Switch (and switch-ish) device support
    • CONFIG_TLS: Transport Layer Security support
    • CONFIG_TLS_DEVICE: Transport Layer Security HW offload
    • CONFIG_TLS_TOE: Transport Layer Security TCP stack bypass
    • CONFIG_VMD: Intel Volume Management Device Driver
    • added additional sensor drivers:
      • CONFIG_AMD_SFH_HID: AMD Sensor Fusion Hub
      • CONFIG_SENSORS_AQUACOMPUTER_D5NEXT: Aquacomputer D5 Next watercooling pump
      • CONFIG_SENSORS_MAX6620: Maxim MAX6620 fan controller
      • CONFIG_SENSORS_NZXT_SMART2: NZXT RGB & Fan Controller/Smart Device v2
      • CONFIG_SENSORS_SBRMI: Emulated SB-RMI sensor
      • CONFIG_SENSORS_SHT4x: Sensiron humidity and temperature sensors. SHT4x and compat.
      • CONFIG_SENSORS_SY7636A: Silergy SY7636A
      • CONFIG_SENSORS_INA238: Texas Instruments INA238
      • CONFIG_SENSORS_TMP464: Texas Instruments TMP464 and compatible
      • CONFIG_SENSORS_ASUS_WMI: ASUS WMI X370/X470/B450/X399
      • CONFIG_SENSORS_ASUS_WMI_EC: ASUS WMI B550/X570
      • CONFIG_SENSORS_ASUS_EC: ASUS EC Sensors
    • patch: add reference to missing firmware in drivers/bluetooth/btrtl.c
      • rtl8723d_fw.bin
      • rtl8761b_fw.bin
      • rtl8761bu_fw.bin
      • rtl8821c_fw.bin
      • rtl8822cs_fw.bin
      • rtl8822cu_fw.bin
    • CONFIG_BPF_UNPRIV_DEFAULT_OFF: Disable unprivileged BPF by default
    • patch: quirk for Team Group MP33 M.2 2280 1TB NVMe (globally duplicate IDs for nsid)
    • turn on all IPv6 kernel options:
      • CONFIGINET6*
      • CONFIGIPV6*
    • CONFIG_RC_CORE: Remote Controller support
    • CONFIG_SFC_SIENA: Solarflare SFC9000 support
    • CONFIG_SFC_SIENA_MCDI_LOGGING: Solarflare SFC9000-family MCDI logging support
    • CONFIG_SFC_SIENA_MCDI_MON: Solarflare SFC9000-family hwmon support
    • CONFIG_SFC_SIENA_SRIOV: Solarflare SFC9000-family SR-IOV support
    • CONFIG_ZRAM: Compressed RAM block device support
    • CONFIG_ZRAM_DEF_COMP_LZ4: Default ram compressor (lz4)
    • turn on all EDAC kernel options
      • CONFIG_EDAC: EDAC (Error Detection And Correction) reporting
      • CONFIGEDAC*

    Base distro

    • aaa_base: version 15.1
    • aaa_glibc-solibs: version 2.36
    • aaa_libraries: version 15.1
    • at: version 3.2.3
    • bind: version 9.18.6
    • btrfs-progs: version 5.19.1
    • ca-certificates: version 20220622
    • cifs-utils: version 7.0
    • coreutils: version 9.1
    • cracklib: version 2.9.8
    • cryptsetup: version 2.5.0
    • curl: version 7.85.0
    • cyrus-sasl: version 2.1.28
    • dbus: version 1.14.0
    • dhcpcd: version 9.4.1
    • dmidecode: version 3.4
    • docker: version 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030)
    • etc: version 15.1
    • ethtool: version 5.19
    • eudev: version 3.2.11
    • file: version 5.43
    • findutils: version 4.9.0
    • firefox: version 105.0.r20220922151854-x86_64 (AppImage)
    • fuse3: version 3.12.0
    • gawk: version 5.2.0
    • gdbm: version 1.23
    • git: version 2.37.3
    • glib2: version 2.72.3
    • glibc: version 2.36
    • glibc-zoneinfo: version 2022c
    • gnutls: version 3.7.7
    • gptfdisk: version 1.0.9
    • grep: version 3.8
    • gzip: version 1.12
    • hdparm: version 9.65
    • htop: version 3.2.1
    • icu4c: version 71.1
    • inotify-tools: version 3.22.6.0
    • iperf3: version 3.11
    • iproute2: version 5.19.0
    • iptables: version 1.8.8
    • jemalloc: version 5.3.0
    • json-c: version 0.16_20220414
    • json-glib: version 1.6.6
    • kmod: version 30
    • krb5: version 1.20
    • libaio: version 0.3.113
    • libarchive: version 3.6.1
    • libcap-ng: version 0.8.3
    • libcgroup: version 3.0.0
    • libdrm: version 2.4.113
    • libepoxy: version 1.5.10
    • libffi: version 3.4.2
    • libgcrypt: version 1.10.1
    • libgpg-error: version 1.45
    • libidn: version 1.41
    • libjpeg-turbo: version 2.1.4
    • libmnl: version 1.0.5
    • libnetfilter_conntrack: version 1.0.9
    • libnfnetlink: version 1.0.2
    • libnftnl: version 1.2.3
    • libnl3: version 3.7.0
    • libpng: version 1.6.38
    • libssh: version 0.10.4
    • libtasn1: version 4.19.0
    • libtirpc: version 1.3.3
    • liburcu: version 0.13.1
    • libusb: version 1.0.26
    • libwebp: version 1.2.4
    • libxml2: version 2.9.14
    • libxslt: version 1.1.36
    • libzip: version 1.9.2
    • logrotate: version 3.20.1
    • lsof: version 4.95.0
    • lzip: version 1.23
    • mc: version 4.8.28
    • mcelog: version 189
    • nano: version 6.4
    • nfs-utils: version 2.6.2
    • nghttp2: version 1.49.0
    • nginx: version 1.22.0
    • ntfs-3g: version 2022.5.17
    • ntp: version 4.2.8p15
    • oniguruma: version 6.9.8
    • openssh: version 9.0p1
    • openssl: version 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274)
    • openssl-solibs: version 1.1.1q (CVE-2022-1292)
    • p11-kit: version 0.24.1
    • pciutils: version 3.8.0
    • pcre2: version 10.40
    • perl: version 5.36.0
    • php: version 7.4.30 (CVE-2022-31625 CVE-2022-31626)
    • pkgtools: version 15.1
    • rpcbind: version 1.2.6
    • rsync: version 3.2.6
    • samba: version 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742)
    • sqlite: version 3.39.3
    • sudo: version 1.9.11p3
    • sysfsutils: version 2.1.1
    • sysstat: version 12.6.0
    • sysvinit-scripts: version 15.1
    • talloc: version 2.3.4
    • tar: version 1.34
    • tevent: version 0.13.0
    • tree: version 2.0.2
    • util-linux: version 2.38.1
    • wayland: version 1.21.0
    • wget: version 1.21.3
    • xfsprogs: version 5.18.0
    • xz: version 5.2.6
    • zlib: version 1.2.12

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.11.1/index.html b/de/unraid-os/release-notes/6.11.1/index.html index f1c072f9f..decac077f 100644 --- a/de/unraid-os/release-notes/6.11.1/index.html +++ b/de/unraid-os/release-notes/6.11.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ at system boot up. Users are advised to regenerate the WG configs. This can be done, e.g., by clicking in a field to change a value and then change it back in order to get the Apply button to light up. Then click Apply.

  • Fixed issue where empty popup windows gets displayed with certain browsers and devices.

  • Restored "NTLMv1 authenication" for incoming SMB connections.

  • Change Log vs. Unraid OS 6.11.0

    Base distro

    • acpid: version 2.0.34
    • bash: version 5.2.000
    • bind: version 9.18.7
    • ca-certificates: version 20220922
    • dbus: version 1.14.2
    • dnsmasq: version 2.87
    • docker: version 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109)
    • git: version 2.38.0
    • glib2: version 2.72.4
    • glibc-zoneinfo: version 2022d
    • gnutls: version 3.7.8
    • harfbuzz: version 5.2.0
    • intel-microcode: version 20220809
    • libXtst: version 1.2.4
    • libXxf86vm: version 1.1.5
    • libffi: version 3.4.3
    • libvirt: version 8.7.0
    • libvirt-php: version 0.5.6
    • lsof: version 4.96.3
    • nghttp2: version 1.50.0
    • pango: version 1.50.11
    • qemu: version 7.1.0 (built adding ppc, riscv32/64 support, replace arm with aarch64)
    • sqlite: version 3.39.4
    • xterm: version 373
    • xz: version 5.2.7

    Linux kernel

    • version 5.19.14
    • CONFIG_DRM_MGAG200: Matrox G200
    • CONFIG_X86_SGX: Software Guard eXtensions (SGX)
    • CONFIG_X86_SGX_KVM: Software Guard eXtensions (SGX) Virtualization
    • CONFIG_CRYPTO_ZSTD: Zstd compression algorithm
    • md/unraid: version 2.9.25
    • patch: silence EDID "block all zeros" and "has corrupt header" notices
    • patch: add NVMe quirks for non-compliant devices reported by users

    Management

    • webgui: VM Manager: Update GUI Options
      • Include 9P and Virtiofs
      • Remove 9P option for Windows.
      • Update XML if virtiofs and Windows in addition to Linux.
      • Update VM Share GUI Options
    • webgui: Fixed: wrong feedback display on VM page
    • webgui: Dashboard: store graph data in file instead of cookie
    • webgui: Ask user to provide diagnostics before downgrading the OS
    • webgui: Spice html client in addition to VNC
    • webgui: improve handling of windows-style config files
    • webgui: WireGuard: add explicit interface name in routing
    • webgui: SWAL: intercept "esc" button to stop nchan upon window closing
    • webgui: nchan: delayed command execution
      • This prevents an empty popup window in certain browsers and devices

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.11.2/index.html b/de/unraid-os/release-notes/6.11.2/index.html index 7c61c58e8..51bfafa2b 100644 --- a/de/unraid-os/release-notes/6.11.2/index.html +++ b/de/unraid-os/release-notes/6.11.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ show text for guest not running or guest agent is not installed.
  • Fix unable to change HyperV settings.
  • Add 'start with console' option.
  • OVMF for QEMU: version edk2-stable202208
  • WireGuard

    Changes:

    • Fixed problem setting up tunnels if using default network.cfg settings.
    • Fix typo setting up routes.

    Plugin manager

    Changes:

    • If plugin files cannot be read from CDN URL, fall back to non-CDN URL.
    • Enforce plugin files must end in '.plg'.
    • Fix post hook failing when plugin download fails.
    • Adjust the wget parameters to keep it from indefinitely hanging.

    Scheduler

    For scheduled Parity Checks, change default mode to Non-correcting. In case there are disk issues during a parity check it would be safer to have the default be non-correct. If sync errors are detected then the user can analyze the log and act accordingly.

    Misc. webGUI

    Changes:

    • DashStats: The inbound networkstats is out of place when numeric value is xxx.x.
    • Docker: Add/clarify Help to Docker Custom Network settings.
    • Docker: Fix display aberration on orphan images
    • SMART attributes: clarify message: "Can not read attributes" to "Attributes not available"
    • ShareEdit/ShareList: show pool not defined when share pool is not a defined pool

    Linux kernel

    • version 5.19.17
    • patch: additional NVMe BOGUS_NID quirks for non-compliant devices reported by users
    • sound support:
      • CONFIG_SOUND: Sound card support
      • CONFIG_SND: Advanced Linux Sound Architecture
      • CONFIG_SND_OSSEMUL: Enable OSS Emulation
      • CONFIG_SND_PCM_OSS: OSS PCM (digital audio) API
      • CONFIG_SND_HRTIMER: HR-timer backend support
      • CONFIG_SND_SUPPORT_OLD_API: Support old ALSA API
      • CONFIG_SND_PROC_FS: Sound Proc FS Support
    • CONFIG_IPV6: The IPv6 protocol (change from module to built-in)

    Base Distro

    Package updates including CVE mitigations:

    • bash: version 5.2.002
    • bind: version 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795)
    • btrfs-progs: version 6.0
    • curl: version 7.86.0
    • dbus: version 1.14.4
    • freeglut: version 3.4.0
    • git: version 2.38.1 (CVE-2022-39253 CVE-2022-39260)
    • glibc-zoneinfo: version 2022e
    • harfbuzz: version 5.3.1
    • icu4c: version 72.1
    • iproute2: version 6.0.0
    • kernel-firmware: version 20221017_48407ff
    • less: version 608
    • libXmu: version 1.1.4
    • libXrender: version 0.9.11
    • libedit: version 20221009_3.1
    • libffi: version 3.4.4
    • libgpg-error: version 1.46
    • libpciaccess: version 0.17
    • libunistring: version 1.1
    • libxkbfile: version 1.1.1
    • libxshmfence: version 1.3.1
    • lsof: version 4.96.4
    • nginx: version 1.22.1
    • openssh: version 9.1p1
    • php: version 7.4.32
    • pixman: version 0.42.0
    • rsync: version 3.2.7
    • samba: version 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592)
    • sudo: version 1.9.12
    • tree: version 2.0.4
    • xkeyboard-config: version 2.37
    • xterm: version 375
    • zlib: version 1.2.13 (CVE-2022-37434)

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.11.3/index.html b/de/unraid-os/release-notes/6.11.3/index.html index c86966471..081983838 100644 --- a/de/unraid-os/release-notes/6.11.3/index.html +++ b/de/unraid-os/release-notes/6.11.3/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.3

    Version 6.11.3 2022-11-08

    This release is focused on bug fixes and minor improvements. In particular, we need to revert a base library due to a bug which prevents formatting devices >2TB in size.

    Management

    • Reverted 'libpopt.so.0.0.1' to workaround 'sgdisk' bug used to format devices larger than 2TB.
    • Fixed issue where description setting for 'root' user was not preserved across reboots.
    • Fix issue that sometimes information window opens empty.

    VM Manager

    • Set correct values when edit for USB Boot and correct Share Selection.
    • Add Nic boot order.

    Base Distro

    • gptfdisk: version 1.0.8 (revert from version 1.0.9)
    • libXext: version 1.3.5
    • libXinerama: version 1.1.5
    • libdrm: version 2.4.114
    • libedit: version 20221030_3.1
    • mcelog: version 190
    • ntfs-3g: version 2022.10.3
    • openssl: version 1.1.1s
    • openssl-solibs: version 1.1.1s
    • pixman: version 0.42.2
    • sessreg: version 1.1.3
    • sudo: version 1.9.12p1
    • xsetroot: version 1.1.3
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.11.4/index.html b/de/unraid-os/release-notes/6.11.4/index.html index 5423d6e4e..b318e4e1b 100644 --- a/de/unraid-os/release-notes/6.11.4/index.html +++ b/de/unraid-os/release-notes/6.11.4/index.html @@ -9,16 +9,16 @@ - - - + + +

    6.11.4

    Version 6.11.4 2022-11-18

    This release is focused on bug fixes and minor improvements.

    Diagnostics

    • Fix share information in Diagnostics.

    Docker

    • docker: version 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715)
    • Fix: "please wait" message after removing orphan image.
    • Set IPVLAN as default for new installations.

    Samba

    • samba: version 4.17.3 (CVE-2022-42898)
    • Set the default "max open files" to the value of 'ulimit -n' which is currently set to 40960.

    VM Manager

    • Allow Network PCI devices to have boot order.
    • Change to use libvirt_domain_interface_addresses which has been available for a long time but was not documented in the API manual. Using this function stops tainted warnings being written to the log, ex: "Domain id=4 is tainted: custom-ga-command".
    • Fix for VM Rename.

    Misc

    • Fixed issue which prevented array Autostart with a Trial key.
    • Fixed encoding issue when passwords contain multi-byte UTF-8 characters.
    • Parity History: add day of week to date.
    • Shares: Fix: do not allow creation of hidden share names.
    • Main page: reinitialize disk transfer statistics upon opening new broswer session.
    • Management Access page: improved messaging for SSL
    • Firefox: version 107.0.r20221110173214 (AppImage)
    • When all browser sessions close, stop unnecessary background processes.

    Base Distro

    • bash: version 5.2.009
    • btrfs-progs: version 6.0.1
    • gdk-pixbuf2: version 2.42.10
    • glibc-zoneinfo: version 2022f
    • intel-microcode: version 20221108
    • libX11: version 1.8.2
    • libnftnl: version 1.2.4
    • nghttp2: version 1.51.0
    • php: version 7.4.33 (CVE-2022-31630 CVE-2022-37454)
    • sed: version 4.9
    • sysstat: version 12.7.1
    • xkbevd: version 1.1.5
    • xkill: version 1.0.6
    • xlsatoms: version 1.1.4
    • xlsclients: version 1.1.5
    • xz: version 5.2.8
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.11.5/index.html b/de/unraid-os/release-notes/6.11.5/index.html index 710fc8fc7..9e9713511 100644 --- a/de/unraid-os/release-notes/6.11.5/index.html +++ b/de/unraid-os/release-notes/6.11.5/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.5

    Version 6.11.5 2022-11-20

    This release reverts a change which modified the wrong file. This resulted in not being able to select 'macvlan' custom docker network type. New installations only will now have 'ipvlan' selected by default.

    Docker

    • fix: Set IPVLAN as default only for new installations.
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.12.0/index.html b/de/unraid-os/release-notes/6.12.0/index.html index 8d597750c..b817e920a 100644 --- a/de/unraid-os/release-notes/6.12.0/index.html +++ b/de/unraid-os/release-notes/6.12.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -79,7 +79,7 @@ still mounted - not good.

    To get around this, you must first create a temp directory on the flash device and then 'mv' (or drag) all the existing bz files into this temp directory. Now you can copy the new bz files to the root of the flash device and reboot.

    Linux kernel

    • version 6.1.33
    • md/unraid: version 2.9.27
    • CONFIG_FS_DAX: File system based Direct Access (DAX) support
    • CONFIG_VIRTIO_FS: Virtio Filesystem
    • CONFIG_ZONE_DEVICE: Device memory (pmem, HMM, etc...) hotplug support
    • CONFIG_USBIP_HOST: Host driver
    • CONFIG_INTEL_MEI: Intel Management Engine Interface
    • CONFIG_INTEL_MEI_ME: ME Enabled Intel Chipsets
    • CONFIG_INTEL_MEI_GSC: Intel MEI GSC embedded device
    • CONFIG_INTEL_MEI_PXP: Intel PXP services of ME Interface
    • CONFIG_INTEL_MEI_HDCP: Intel HDCP2.2 services of ME Interface
    • CONFIG_INTEL_PMC_CORE: Intel PMC Core driver
    • CONFIG_DRM_I915_PXP: Enable Intel PXP support
    • CONFIG_SCSI_FC_ATTRS: FiberChannel Transport Attributes
    • CONFIG_FUSION_SPI: Fusion MPT ScsiHost drivers for SPI
    • CONFIG_FUSION_FC: Fusion MPT ScsiHost drivers for FC
    • CONFIG_FUSION_CTL: Fusion MPT misc device (ioctl) driver
    • CONFIG_FUSION_LOGGING: Fusion MPT logging facility
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_LRU_GEN: Multi-Gen LRU
    • CONFIG_SERIAL_8250_NR_UARTS=32: Maximum number of 8250/16550 serial ports
    • CONFIG_SERIAL_8250_RUNTIME_UARTS=4: Number of 8250/16550 serial ports to register at runtime
    • CONFIG_FANOTIFY: Filesystem wide access notification

    Base Distro updates

    • aaa_glibc-solibs: version 2.37
    • adwaita-icon-theme: version 43
    • at-spi2-core: version 2.46.0
    • bash: version 5.2.015
    • bash_completion: version 2.11
    • bind: version 9.18.12
    • btrfs-progs: version 6.2.1
    • ca-certificates: version 20221205
    • cryptsetup: version 2.6.1
    • curl: version 7.88.1
    • dbus: version 1.14.6
    • diffutils: version 3.9
    • dnsmasq: version 2.89
    • docker: version 23.0.6
    • e2fsprogs: version 1.47.0
    • encodings: version 1.0.7
    • file: version 5.44
    • firefox: version 111.0 (AppImage)
    • freetype: version 2.13.0
    • fuse3: version 3.12.0
    • gawk: version 5.2.1
    • git: version 2.39.2
    • glib2: version 2.74.6
    • glibc: version 2.37
    • glibc-zoneinfo: version 2022g
    • gnutls: version 3.7.9
    • gptfdisk: version 1.0.9
    • gtk+3: version 3.24.37
    • harfbuzz: version 7.1.0
    • htop: version 3.2.2
    • iproute2: version 6.2.0
    • iptables: version 1.8.9
    • iputils: version 20221126
    • kernel-firmware: 20230531_fc90c59
    • less: version 612
    • libICE: version 1.1.1
    • libSM: version 1.2.4
    • libX11: version 1.8.4
    • libXau: version 1.0.11
    • libXcomposite: version 0.4.6
    • libXdamage: version 1.1.6
    • libXdmcp: version 1.1.4
    • libXpm: version 3.5.15
    • libXrandr: version 1.5.3
    • libXres: version 1.2.2
    • libXxf86dga: version 1.1.6
    • libarchive: version 3.6.2
    • libdrm: version 2.4.115
    • libfontenc: version 1.1.7
    • libglvnd: version 1.6.0
    • libjpeg-turbo: version 2.1.5.1
    • libpcap: version 1.10.3
    • libpng: version 1.6.39
    • libpsl: version 0.21.2
    • liburcu: version 0.14.0
    • libwebp: version 1.3.0
    • libxkbcommon: version 1.5.0
    • libxkbfile: version 1.1.2
    • libxshmfence: version 1.3.2
    • lmdb: version 0.9.30
    • logrotate: version 3.21.0
    • lsof: version 4.98.0
    • lz4: version 1.9.4
    • lzlib: version 1.13
    • mc: version 4.8.29
    • mcelog: version 191
    • mpfr: version 4.2.0
    • nano: version 7.2
    • ncurses: version 6.4
    • nginx: version 1.23.3
    • nghttp2: version 1.52.0
    • openssh: version 9.2p1
    • openssl: version 1.1.1t
    • openssl-solibs: version 1.1.1t
    • openzfs: version 2.1.12
    • pango: version 1.50.14
    • pciutils: version 3.9.0
    • pcre2: version 10.42
    • php: version 8.2.4
    • php-libvirt: version 0.5.7
    • php-markdown: version 2.0.0
    • samba: version 4.17.7
    • sqlite: version 3.41.0
    • sudo: version 1.9.13p2
    • sysstat: version 12.7.2
    • tdb: version 1.4.8
    • tevent: version 0.14.1
    • traceroute: version 2.1.2
    • transset: version 1.0.3
    • tree: version 2.1.0
    • usbutils: version 015
    • xcb-util: version 0.4.1
    • xdriinfo: version 1.0.7
    • xf86-video-vesa: version 2.6.0
    • xfsprogs: version 6.1.1
    • xhost: version 1.0.9
    • xinit: version 1.4.2
    • xkbcomp: version 1.4.6
    • xkeyboard-config: version 2.38
    • xorg-server: version 21.1.7
    • xprop: version 1.2.6
    • xrandr: version 1.5.2
    • xset: version 1.2.5
    • xterm: version 379
    • xz: version 5.4.1
    • zstd: version 1.5.4
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.12.1/index.html b/de/unraid-os/release-notes/6.12.1/index.html index e82056d82..dda0ded69 100644 --- a/de/unraid-os/release-notes/6.12.1/index.html +++ b/de/unraid-os/release-notes/6.12.1/index.html @@ -9,14 +9,14 @@ - - - + + +

    Version 6.12.1 2023-06-20

    Changes vs. 6.12.0

    Bug fixes

    • emhttpd: remove "unraid" from reserved names list
    • emhttpd: properly handle "ERROR" strings in 'btrfs filesystem show' command output
    • emhttpd: prevent cmdStart if already Started
    • network: Revised service reload functionality: ensures the services are only reloaded once
    • network: rc.library: read IP addresses directly from interfaces instead of file
    • network: NTP: fix listening interfaces
    • network: NTP: exclude WG tunnels and user defined interfaces
    • network: NTP: add interface name in config
    • network: SSH: add interface name in config
    • webgui: fix PHP8 warning in UPS Settings page
    • webgui: Dashboard: show ZFS percentage based on c_max value
    • webgui: Dashboard: suppress coloring of ZFS utilization bar
    • webgui: Dashboard: other misc fixes

    Linux kernel

    • version 6.1.34

    Base Distro

    • ttyd: version 1.7.3 (fixes issue of invisible underbar characters with certain FireFox versions)

    Security updates

    • ca-certificates: version 20230506
    • curl: version 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319)
    • git: version 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007)
    • ntp: version 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555)
    • openssl: version 1.1.1u (CVE-2023-2650)
    • openssh: version 9.3p1
    • php: version 8.2.7
    • libX11: version 1.8.6 (CVE-2023-3138)
    • libssh: version 0.10.5 (CVE-2023-1667 CVE-2023-2283)
    • zstd: version 1.5.5
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.12.2/index.html b/de/unraid-os/release-notes/6.12.2/index.html index 13da399df..4e478685c 100644 --- a/de/unraid-os/release-notes/6.12.2/index.html +++ b/de/unraid-os/release-notes/6.12.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ is automatically applied to all 'config/wireguard/*.conf' files when you update via Update OS page. For manual update or if you downgrade, it is necessary to make a "dummy change" in a setting on the Settings/VPN Manager page and then click Apply.

    Bug fixes and improvements

    • email notifications: add line in /etc/php.ini: 'mail.mixed_lf_and_crlf=On' to workaround change in PHP8 CRLF handling
    • emhttpd: Fix regression: emulated ZFS volumes not recognized
    • emhttpd: Fix regression: format fails if diskFsType==auto and defaultFsType specifies encryption
    • emhtptd: Fix regression: mount fails if diskFsType==auto
    • htop: remove predefined /root/.config/htop/htoprc file
    • network: RC services update:
      • NFS - fix service reload
      • RPC - fix service reload
      • NGINX - remove HTTPS port in FQDN redirect when default 443
      • All services - register IPv4 Link local assignment (169.254.xxx.xxx)
      • All services - make lock file programmable
      • WireGuard: delayed service update to avoid race condition
      • rc.library: do not allow duplicates in bind list
    • webgui: Dashboard updates:
      • Re-introduce show/hide tile content
      • Add new icon function to show/hide all content at once
      • Reduce gap between columns
      • description -> model
      • ZFS: fix percentage value to max 100%
      • Use prototype function: This makes it easier for 3rd party developers to automatically hide dynamic content
      • Handle duplicate IP assignments and give warning
      • change header MEMORY to SYSTEM
    • webgui: OS Update: add checkbox to confirm reading release notes before upgrading
    • webgui: diagnostics: include list of duplicate assignments
    • webgui: NFS: for Security/Private increase Rule field from 256 to 512 characters.

    Linux kernel

    • version 6.1.36

    Base Distro

    • bind: version -9.16.42 (CVE-2023-2911)
    • docker: 20.10.24 (revert from v23.0.6)
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.12.3/index.html b/de/unraid-os/release-notes/6.12.3/index.html index 6aba086b7..7746946f5 100644 --- a/de/unraid-os/release-notes/6.12.3/index.html +++ b/de/unraid-os/release-notes/6.12.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -19,7 +19,7 @@ an issue where the webGUI will not load in certain instances.

    Note: If you have code in your 'go' script to disable IPv6, remove that and disable it via the 'Settings/Network Settings' page instead. Manually disabling IPv6 will cause conflicts.

    Docker

    This release resolves an issue where Docker does not properly stop when the array Stops, which can result in an unclean shutdown.

    If Docker containers have issues starting after a while, and you are running Plex, go to your Plex Docker container settings, switch to advanced view, and add this to the Extra Params: --no-healthcheck

    Bug fixes and improvements

    • rc.docker:
      • revised docker daemon running check
      • rc.docker: change route metric of main interface as needed to avoid conflict with shim interface with shim interface
    • rc.library:
      • code optimization for ipv6 max/min
      • support ipv4 mapped addresses
    • rc.nginx: explicit ipv4/ipv6 selection on lo interface
    • shfs: correct share size calculation when ZFS is one of the volumes
    • webgui:
      • VM settings page: fixed typo
      • Share Edit page: make minimum free space settings always available
      • Wireguard: fix typo in Ipv6 mask
      • Routing table: fix display of metric value when zero

    Linux kernel

    • version 6.1.38
    • Added support to monitor and also limit power on Intel Core (2nd Gen+) CPU models:
      • CONFIG_POWERCAP: Generic powercap sysfs driver
      • CONFIG_INTEL_RAPL: Intel RAPL Support via MSR Interface
      • CONFIG_IDLE_INJECT: Idle injection framework

    Base Distro

    • firefox: version 115.0.r20230710165010 (AppImage)
    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.9.0/index.html b/de/unraid-os/release-notes/6.9.0/index.html index 356164a68..fce4ef9cf 100644 --- a/de/unraid-os/release-notes/6.9.0/index.html +++ b/de/unraid-os/release-notes/6.9.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -284,7 +284,7 @@ can override at boot
  • mount all btrfs volumes using 'space_cache=v2' option
  • mount loopbacks with 'noatime' option; enable 'direct-io'
  • mount_image: suppport bind-mount
  • non-rotational device partitions aligned on 1MiB boundary by default
  • plugin: support sha256 file validation
  • rsyslog: fix broken "Mirror syslog to flash"
  • samba: disable aio by default
  • shfs: move: preserve ioctl_iflags when moving between same file system types
  • shfs: move: support spares files
  • smart-one.cfg keeps SMART info per-ID instead of per-slot; disk warning/critical config moved to disk/pool cfg
  • smb: fixed Ad join issue
  • smb: remove setting 'aio' options in smb.conf, use samba defaults
  • ssh: add /root/.ssh symlink to /boot/config/ssh/root directory
  • ssh: allow only root user, require passwords, disable non-root tunneling
  • ssh: require passwords, disable non-root tunneling
  • startup: setup an overlayfs for /lib/modules and /lib/firmware
  • syslog: configure to also listen on localhost udp port 514
  • web terminal: inhibit warning pop-up when closing window
  • wireguard support: rc.wireguard: add iptables rules
  • webGUI: Fix dockerupdate.php warnings
  • webGUI: Update statuscheck
  • webgui: Add 'Portuguese (pt)' key map option for libvirt
  • webgui: Add customizable timeout when stopping containers
  • webgui: Add log viewer for vfio-pci
  • webgui: Add notification agent for Discord
  • webgui: Add pools information to diagnostics
  • webgui: Add raid1c3 and raid1c4 btrfs pool balance options.
  • webgui: Add update dialog to docker context menu
  • webgui: Added "safe mode" one-shot safemode reboot option
  • webgui: Added btrfs info for all pools in diagnostics
  • webgui: Added new display setting: show normalized or raw device identifiers
  • webgui: Added new setting "Enable user share assignment" to cache pool
  • webgui: Added support for private docker registries with basic auth or no auth, and improvements for token based authentication
  • webgui: Allow different image types to upload with 512K max
  • webgui: Allow duplicate containers different icons
  • webgui: Allow markdown within container descriptions
  • webgui: Change Icon for Motherboard Info from cog (settings) to info
  • webgui: Changed: Consistency between dashboard and docker on accessing logs
  • webgui: Dashboard: fix stats of missing interface
  • webgui: Dashboard: style adjustment for server icon
  • webgui: Detect invalid session and logout current tab
  • webgui: Diagnostics: Remove SHA256 Hashes
  • webgui: Disallow "?" in share names
  • webgui: Display settings: colors should be 3 or 6 character hex digits
  • webgui: Do not show CA profiles in Add Container list
  • webgui: Docker: allow BTRFS or XFS vdisk, or folder location
  • webgui: Docker: more intuitive handling of images
  • webgui: Fix ' appearing
  • webgui: Fix Azure / Gray Switch Language being cut-off
  • webgui: Fix Banner Warnings Not Dismissing without reload of page
  • webgui: Fix Started VMs not appearing in dashboard
  • webgui: Fix crash when reading very large log files (limiting output to 1000 lines).
  • webgui: Fix dismiss all notification
  • webgui: Fix not able to change parity check schedule if no cache pool present
  • webgui: Fix notifications continually reappearing
  • webgui: Fix unable to use top right icons if notifications present
  • webgui: Fix wrong docker run URL reference
  • webgui: Fix: Dashboard / Docker scrolling on iPad devices
  • webgui: Fix: properly set samesite cookie (fix login issue with Safari)
  • webgui: For raid6 btrfs pool data profile use raid1c3 metadata profile.
  • webgui: Icon buttons re-arrangement
  • webgui: Main page: hide Move button when user shares are not enabled
  • webgui: Multi-language: Fixed regression error: missing indicator for required fields
  • webgui: Multilanguage: Fix unable to delete / edit users
  • webgui: Network settings: show first DNSv6 server
  • webgui: Network: allow metric value of zero to set no default gateway
  • webgui: Network: fix privacy extensions not set
  • webgui: New Perms: Support multi-cache pools
  • webgui: Notifications: Fix gap on white / black
  • webgui: Permit file system configuration when array Started for Unmountable volumes.
  • webgui: Prevent "Add" reverting to English when adding a new user with an invalid username
  • webgui: Prevent bonded nics from being bound to vfio-pci too
  • webgui: Remove WG from Dashboard if no tunnels defined
  • webgui: Show message when too many files for browsing
  • webgui: Support links on notifications
  • webgui: Suppress Autofan link on Dashboard if plugin not installed
  • webgui: Suppress WG on Dashboard if no tunnels defined
  • webgui: Switch Diagnostics to web socket
  • webgui: SysDevs - warn if leave page without saving
  • webgui: SysDevs overhaul with vfio-pci.cfg binding
  • webgui: Tabbed case select window
  • webgui: Task Plugins: Providing Ability to define Display_Name
  • webgui: Update Feedback.php
  • webgui: Update jGrowl to version 1.4.7
  • webgui: Update noVNC to v1.2.0
  • webgui: Updated case icons
  • webgui: Use update image dialog for update entry in docker context menu
  • webgui: VM Manager: add 'virtio-win-0.1.189-1' to VirtIO-ISOs list
  • webgui: VM manager: Fix: Changing from VM VNC graphics to GPU passthrough
  • webgui: VM manager: add virtio-win-0.1.190-1
  • webgui: VM manager: new setting "Network Model"
  • webgui: VMs: Fixed: Adding NICs or VirtFS mounts to a VM is limited
  • webgui: VMs: Fixed: rare cases vdisk defaults to Auto when it should be Manual
  • webgui: VMs: change default network model to virtio-net
  • webgui: VMs: more intuitive handling of image selection
  • webgui: avoid php syntax error if autov() source file does not exist
  • webgui: better handling of multiple nics with vfio-pci
  • webgui: correct login form wrong default case icon displayed
  • webgui: do not try to display SMART info that causes spin-up for devices that are spun-down
  • webgui: dockerMan: Allow readmore in advanced view
  • webgui: dockerMan: Only allow name compatible with docker
  • webgui: dockerMan: Selectable start upon install
  • webgui: fix: jGrowl covering buttons
  • webgui: fix: login prompt when switching between servers
  • webgui: other misc. improvements
  • webgui: pools not enabled for user shares should not be selectable for cache
  • webgui: sanitize input on tail_log
  • webgui: set 'mid-tower' default case icon
  • webgui: support spin-up/down and temperature monitoring of unassigned devices
  • webgui: turn off username autocomplete in login form
  • webgui: vm manager: Preserve VNC port settings
  • webgui: vnc: add browser cache busting
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.9.1/index.html b/de/unraid-os/release-notes/6.9.1/index.html index 00cd481c3..bba99f960 100644 --- a/de/unraid-os/release-notes/6.9.1/index.html +++ b/de/unraid-os/release-notes/6.9.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -35,7 +35,7 @@ spindown/spinup logic
  • rc.local: ensure required directories exist on USB flash boot device
  • rc.local: for Docker containers: grant access to graphics device nodes /dev/dri/*
  • rc.nginx: add Cache-Control:nocache header to novnc
  • webgui: Increase syslog buffer from 1000 to 3000 lines
  • webgui: SysDevs fix display aberration
  • webgui: Diagnostics: include modprobe.d files
  • webgui: Diagnostics: include go as go.txt
  • webgui: Update share security helptext
  • webgui: Deprecate donation links in templates in lieu of links in CA profiles
  • webgui: Protect GUI from invalid .page files
  • webgui: Suppress ipv6 multicast entries in route table display
  • webgui: synchronize helptext.txt with lang-en_US repo
  • webgui: user management - disable password autocomplete
  • webgui: Dashboard: Fix color for utilization of disk
  • - - + + \ No newline at end of file diff --git a/de/unraid-os/release-notes/6.9.2/index.html b/de/unraid-os/release-notes/6.9.2/index.html index f01485390..58ee84b3a 100644 --- a/de/unraid-os/release-notes/6.9.2/index.html +++ b/de/unraid-os/release-notes/6.9.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -26,7 +26,7 @@ @ich777 to facilitate installing the correct driver.

    Change Log vs. Unraid OS 6.9.1

    Base distro

    • docker: version 20.10.5
    • fuse3: version 3.10.2
    • nginx: version 1.19.9
    • samba: verson 4.12.14 (CVE-2020-27840 CVE-2020-27840)

    Linux kernel

    • version 5.10.28
    • include all CONFIGNF* modules
    • oot: realtek r8125: version 9.005.01

    Management

    • emhttpd: detect out-of-band device spin-up
    • shfs: add 'copy_file_range()' support
    • shfs: fix 'mknod' creating a fifo
    • webgui: login: implement max 3 failed login attempts per 15 minute interval
    • webgui: Fix links on notifications not being present if in summary display
    • webgui: Plugins: Move incompatible plugins to ../plugins-error
    • webgui: Fix missing CSRF when deleting pool
    • webgui: Fix .sweet-alert color
    • webgui: Translations adjustments
    • webgui: Diagnostics: Prevent double clicks on download button
    • webgui: Fix default usage thresholds not sending notification
    • webgui: Fix CSS span.select background-color
    • webgui: Make diagnostics messages left aligned
    • webgui: Fixed javascript error in DeviceInfo.page preventing settings to be saved
    • webgui: Update DeviceInfo.page
    • webgui: Prevent autofilling of passwords on containers
    • webgui: Docker: Do not allow CPU pinning if no template present
    • webgui: Fix .sweet-alert .sa-icon color, * in the CSS
    - - + + \ No newline at end of file diff --git a/es/404.html b/es/404.html index 8f37cc333..ce2e29a88 100644 --- a/es/404.html +++ b/es/404.html @@ -9,14 +9,14 @@ - - - + + +

    Página No Encontrada

    No pudimos encontrar lo que buscaba.

    Comuníquese con el dueño del sitio que lo vinculó a la URL original y hágale saber que su vínculo está roto.

    - - + + \ No newline at end of file diff --git a/es/assets/css/styles.2c43762e.css b/es/assets/css/styles.2c43762e.css new file mode 100644 index 000000000..3b34bd753 --- /dev/null +++ b/es/assets/css/styles.2c43762e.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/es/assets/css/styles.5dd3a1e0.css b/es/assets/css/styles.5dd3a1e0.css deleted file mode 100644 index 60ad42e6b..000000000 --- a/es/assets/css/styles.5dd3a1e0.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/es/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG b/es/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG deleted file mode 100644 index 1875d64774735d7928639130ffdb74e1b546e80a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56760 zcmeFa2V7I_mM^@KDpiUgAVft0rHM49MMavt2w12>q)8J{5eX0y6$R-63Ial;iHZ;l zMF9yN5v3O?5)z~nNT?gq?&du+=ggcrGjr$O`R@1ozH8)>&1OGkt!J(E{8!n^`oS6p zcAYgbHv!n#*Z?H-2VfC*jT$3;t^$CiC2#})03LvYO%K=sU2#D_oQ?JYIG}4b=-T>O z_V#yx9{_fJncE9+L-(L-zz}M{-Z|(mp6#pOpWht#&4J$>_|1Xe9Qe(F{~I}A?Rm@d zCIE0gV*e9Ih(UNE=Ml$WuivL6|9Q=>qXPgbDSx~E8>Zk%+2-4CO!0rC^!%pzHwS)m z;5P?;bKo}z{>Fi0N7dDJkE-h)Q{Q(?Ls#p#uBJBdkM040HQ)){f*OQCpy&qQ9`9SX zuIs9)1q7+OdIY+8s=5dIt07<EsCVRRi?l$m_1|exA4Xxp{i|1Q;kRRpS-*`FI#8 z*lAfFwY+ZR>Fr|{cGL4h*tv`DVSer>JQU!D0=)W2U8MhYf6rU4`;h+E0)ljr1_%Be zT^G9EzO8n^Q2(aKRo(MvO#bN!=qG~%|Fo8nkPy`n4b{M#UTW$mPMlCXdQ9!uF%{?u zm7vgoTdqizfFQYl8sLm)ko!%a>$iLY1NLnX=;{_2e9PcKaIlYu?p4>TT5cX5S}Ja? z8XhX@>K?8tt{xidDjpgd9y(g;$B$iAcRTP;(|fr8b@uDQH?RFUw}-o$=QU4%&wyJ& z5I5A-4ygTQ(f?g@LM;00r2mlp5RK3?x<)rWU2l1wftum=mZ}_8S2?DB@t?O@RYzM# zU+wRn(^uPO#=ltTfA7lwr?_RP@8PcNzPH7Z|yZ(l9Jp&+U8v|kTt{`#j6J16`0hl_)Qos*l3n|r(Q z?Bv_Y!^6wN&CM&o%ge_PeYkfD3JLHFZeMQ?vfX{V7xcx?!_Bk(#DDF>ssn_1*f!bE zu(KTib_lbv3$wAB02q{W^_kkN?$L=QQ^2nWjSHJswH|3y)+s%7BdBr96NJ<@&S5Q2B zL{m#!=lBU-qcg@Pre@}6FI>E2YiIA^==;f=|??054S5$udRMpVf)ZEhgrR{4^Z(skw;E$nUB5C5+>PD@Wp!L>kztJ@e@Uyc) zo5wB;zySs=gs0%yc$i%j3uwIUGn|8ab1E053zm?w3?weqbbI!dWs97+HdR&jG2HJ# zLXM}hi1)A4x9>ha-s!lpv-ew)WUJgWuiZop#R|DX32JUtP#}dQ2DPz(-24l$o;wOG zAZp+v3&_)=;#t5>5WaaJ3H0|%+LA*^vj7SHJq*3Z>n zS%42-!}JNW7k%}PzUjXi6#jS9;sTcO!-3zrCoyG&jORka|8~sZl>FY4zsU4&>H4iF zzirpw+4bL6_+K4kzt5B3XZ-)q(TY+TC_p>y11}RyFSRV1tzyQ76H6|YIoq8ZxYk@U znegQv-<`zVjO$&ab>mU{Vz@tt82$<2D7c{=YG4fuC`(u1qZ%3t8KBgND@=45+me`# zF(7w~Zj40GMF*K?gK_wUBIGm+IG=s~b9WW`K#dx6=R6BI=+{hGzfcpz0$!baby9ZT zSj?L3KWRH8#X`iC?`{cOf8CK1w&Eg0Gs4vW!Q6?4z^icQ{hHv3i`{fH&6zc?cS+}} zYEqOOB)bn`bAaZ>cWXZ$O>q z^omS$YOzl^u4GA}>X9*TX-t%9shj;B2 zIccEO3HQPbTQsnMa(F#ir`1I$b9ugT>rJJ#llcwb^`7*KPbmY|Hk3w@hHC_^niYF~`8Sfn)!@3^NE+g)5i1z#%(8+n~kh$cJ6#we|2>e>_ zih*vd;_E#&#$rI!NkNU1kJRhrw8XyV#%PhSW$AP=4G3v3+?^0mI0;6Qes!&VzS&`U z`fHnVK%heA&x68c)mIX}oLrDlV3#kf?AqOVLqRMnx&*nHL5n~g7-Rugv+!|SUJ19p zyA#KropzoZzS(wL#pBo;d4*UlA6w((eh1!w^P%iqpM5R*Y?aC;?FCO1q3;EJoxC%? zs`+X6G=>fCgXKf_NCn20)+lL_`&+0|^r{e)m8hnh_XC8ceLg5Pyn0y$ZI9s%ml+ z|Cr)b=C`}A;<`&-zN`!?>uI9tX|p+{P85O#a2kL@<7$aF=vo7Ya^7K>c!YJFdANhE z4ZpCv&}4*=)E?$h7PDUyR5LutfhvtZFTekwY`*tw z$M^C*p6om7i(ou7rW7_D8ud=DMf(pho;(H`7?znkWsk26cW{yOVV6A~N^y9sUYEqlwg4b4y$-d$h9>XT!Gt@lB!0{)+9xSfn7$Ory_?!m5K zAhCcxr^dC#ej@xGSiqH~ zd)TthIPw|`h=K8;xF;ffJAV4R)(+fy7_fNYzPe|;#=X-~$`L2Dw0+Ij@uWUkbp--Y++d@v>oPGYD!=fLps?{Jd#%OsiU7}uU$%X7h=Y?bFE zLXH3m`;zPRGfTUd{V0fE%_{DJ^S1|QYE7q>=)y{*G#m*bgVLcO;`MFbfO z>7seF7L-=Ydp)gYRpqhl*M|$+&7}&wR1RNDo4C;_R~P{=LVvFXdX)9myaLAw0wYeK zl1;i@mz;&zsl1~gF)fMY zue~~Fn^{u&fFneE&^Sgz=?)JnwIe9?3``|!=8fpU`rHyo*xJON?lzwia%AVCE6OxO zsv^lzoWaw|RVxRkP6(*g!znIUPG{fY(u@Kpe4VrJeuK5q>t`HlP8IEX{>k~$9p-YnjOj&(q`MA{xz> z*kchm@CDx5NsB=5WhkRv&_A%!@)Se^0aU~^3*BMLVH?rA%PT0&1upw2-@D7A5TeaN zdmSGSd^mHxho|7)VUKv?v!e$eSw^tY&Y~_47>YtlbYWEn(+n5UcaNZKSW{Kwhz5d< z^)9NF_eL7S3L74FWS7iXrPn0RmWo)Fw>XgO;x=yFUy&wfTdn(pm=KC*?Ou!VZ9Q#Z zJIHqprCWtEe^F-kb*|P-`l#gYs$j`^hpnQ8I7+oMxDrS`yFnyGsxl8cn7nfWGyRW9 z^pP%cUR0h8@z`lKzLXn7} zn-(Mah+{?65t865;_R*V{Jm)SU~WGFoe_Ss(6Qe&PNdZ*S|TeW?yf}2*cx?^6cULE zL=2}kV)#&6uaWL&Dcp4|K&Fud-vg#tRC|kTG>NBZ#^lbP`ES^rY z6K43bfDc}cv=VV=Ln|)O*FqX6jA?K_$kn!^;%(1nt92`#E@>FFufF4)-<@j6SlOXF z9Fr2WnnmcmAVTLM!P@`goYnKX0D?Iu09&^+flGfFEl z;h$Ddo&dJG&GLB-AD6XkLr0_QpHP_aNQ5+c#8Cb%C7Ld_v~K#jUrRvmkM{}sS8z8% zZ#^<8m|dUXe0Ddrh09cH-RCm?oYHr=x7v^z5l6Oq;j@kqMR60YWbAz|XbxDMMU8ft|flF*iNEL_S2dFt1{~!uxf~qQv|2?$+$5>CIV#l}#=( zS)OGsa`DcWe~^$*^IhtBl7HYj?slo402IhZRBRJQh;B!TB*9{96_HF#bf&^ReJ$;G zg`h%9+ScvQxpO+__c6QsZnZ@P$2nD~o1DBtRo3Bjdt70+s?Y%ckkp80qf1wTp+rd8 zL4+yg5c$o3ovuJ4R!j;-`S#$DX~Icc!TV7iH-)rPN%$YFL|9_&exzTsBcTz_J~t*$ z@vpJ15_}b!U#~UrgdZ_C5oL1T#(LVDDRNUi^JA^u?jgbo3xL=2+TKXV(uJ1kRvnv6 z1!UwIXt#3dmnk_VBufObsJ?R#>gro(yXH(4LTY%ipE_t~l+t)I$NEy)yhXfTdEJUY zqlpT>dqX_E6zW;)_r7iXr(g3?x;=P-gnQt!hk83X_zituq(xMxBUL=#@8zkz1NoO? zC#PwypNw5$L#N!OTE3TkfYoX(4fWQ!DEH7EJYRuEjgARLiE0P%RDO*ixfkz(_-`1C z^-eE+i3#Mf)xRrpgBQM-( z#fHWDJvmMARBIqiZr%SmnnkmtJ9(AbJ4?^+@lv;7%h*l-WFo5{Pj>y0$XwIXmUVL( zz3@8f9(2<3lydRx3qnXj#^8K;u@yf(n30TAD_vN)MrNwDczpbn?G~%W{L;teki`}@ zfh#JB$Z1cLeNs+>?gi`wiDMmR+bz( zR0;!T8Q%p}JAbhNv2LnDs}KzIA}P>!&!6fy6!UcqUW(C|pj0*`P?aurT|NKE@w-5^ zH|6Jd(cL~Z{l}W(Ene?vK2DdLH#Ld(KSAz&_X+9WBoRTpD9jJxJy?XCkQ%A z@^9Tve$nj5S%0&6<2BpI?C*p6dv9DGjK{mG-6QNOTjCxP69GG$(`jRO-%(g;S7(3V&7*u*InsWRFicXB6m769z2!+0$SP9jF)E`r8H#KWrArog?- zfe?Z){Sf8-MhkZxK~i5%@PQX9&5!RV!e>d0*TcR@iA(k*&C5;rjxxT81?*YHh=Fm$ zQoQH*_uIXVE=N9=d-MeBwF^~_IE>zS_bXCqN*;M+&tBR5*iB3$l(@25dWe-VR3#wW z*JG*aku|oi6x)(&ll z?BsJ&&sj#N6oos1d7Sx;sl<57JOXx3*j7@djTm`a$5%1CL6Z&3ib#uYuiEa?a*Gq1 zxWnRRBHU%(PtPuAh@9%W=a&TGrZppn)qjoD}k)#*@MV#yOIL zh)x31jm!3kc^xHJ!)%`$ugrShi&s|USmtqBFRNeu0@&$MqM18SP)!?dLpeR>UL0H>_k1=-gn>mLKo-{lP(R`%Y;Xl^8pW@Ra$+oV_^_x_a&HBcb+L z;XdY3d=a{P@{;=(_f+L&FARN03DKlL1SG`#cz*&vGP&mPgwSr(sdUoS{NNiD+GPqM zZXbfr6oa|J*-=_~E#`TvrtO6o6j*PXP=V{96%XOZ3$X8WVhuUzBIP{?2ZCpB!KF|b zs!-F&k}!xd9#Fl|aNWg7KP|Z<)3NR4W{&&A0VlVZngkYbxZY8*h!F_uA<=9x11T)v zPQ*M7K#vX+$d&FB(*w1lU^>yc^$yBd=RxW70WCki>5urz&S5tjKe;Eu%!TMHA{TRX zVhS!KuUVxfc9lbf1@ zrSdi71?c9v$f71GY-~P4$b0a%jx~btQ*z4I=SA>Q{zuPMi8vCO<%9ND(x%%h9P|m; z8;Wz)k6llGf#+MBPVSTKhXQ18Ll#nBGTXE<;^TegSt@=^ah;~6UC6Dz5vLlsYvlQi zgBD(+=Vo^u=5GY1pX0*WcNb*(92!EOWdRQZ<>`d!qH)NEo1fYaRsQkGy6f35wtHp< zCyIJiZ~W2@iVsS}M}L+teZ$=fV?)_dL$=XYJ~F)lz6%xZP7)BZrHCTq&UM|&KB2t& znM1W`9cgROT$JW6EN||4O+#DQ<{~cyr#YWe;Z2>K=r6m*=tojX_xz@t9rYbk>H6K6 z@){%Y$Gs#fxg_>|HBTE{r~R47U3;bk<1xm^4>Ph1i`&8_qWLUyYcp5?Pt%q&E^3XV zTK8nFj@-49>lZIi_%6y_J+(`l!vIe2d{Z9TI?azH>o_+K~niayJ zPoGLfM$qKh6zP|V_M>tF(?IDlALH6fD|8m{wZ4qt4?hHXk`&mFd-5p zlwrw6M4S|8(R{b&EXtu^cFQ!OM%!^T)X~35$lF!Cr^R+shJA6&@VZe;C44-J$p?WO ztMzb7QA-jG6#?c>(2_*zU;nTqe!gsv@u;KtUT`wi4Yi$Bdnz(2dpZ6K{Z{K|W)ll| zZyJMU1A9qUNf0VdKT8dS?!{$h7fw}&7T9Y=rMvohat|$B^LM=+G9>2N7UI^i{O{Pbvn`+>q>SGQ!vm+lk^_MT^tT_|H z(YEw9n)V7KApEhB@XJ-PxicNzIb~&H+s=xZaI!IXZb98wYQ&SVT;j;gt@)ezz{wYj4)t{0~{` zhJTR?N2>A)OMi(yb<3{)2+zSC8VG4-9sKPEnVY7FtesnFMr(ow6CBjE*ITWLH77F# z^YpDq8SC#`zTY@hpCGb(WUuubKQSBCKI68pkyBZ5!-Px**GPO|-!cmrVgc(25Krm^ z6(yQ+QCrdEVCvTVY0#z+v~Vg@9k$ANtz8hT@bTV+IC8o5hdbW~A2!0lU&33i{yg`e zxpO~Xm3>0O^FYC6OCutIjHkwt-V7HOc3`P+6H3Puf44_f-`$4K&z&|&PWswlRVhE} zE-kG^u0N?cK9ZP+ZT9RTq=?5V=3awR0~es+oMjz!o&%1D*^Bq?*eSaz0gOKq8n`1K ztJ}jR&=q--&sZ$0@6OE=vz?C6Lpp+?dxLX5Y-j2i0)UE`%}LJxorbhpz_5TrS?iA> z;loNW^TuGf+y5Z6x5~EI_uroZv9Y}M_PA|_Q_*J&2g75OYGidoRcVH7;met2-`gp} zh3h#p>9)!<7p?eo-^W-#`s!fMW%I~XjI9{|gL$!6RlOdUYDE`WYEn1RpxHC~z4l_h zG!}ZWfJxntYQw4Pf>caBVrZh7snmn_B@D+pTb%AKsIG8Iz*r#TUhNspx8g{QFm^t2 z^VNAxVzp1iRIsn&sSYO<^u!XId>FeK!hns0=d^0-Omu)#AH!uKyyaPhS(brOKA=xv zy1VEo$jM5}W&vM<*9lZ1jikvWCI_l&;_|z>ELzgo9rU&FahoqQ0_g34%6D**1(+I9 zA@`NbF$BWg-7J7lXCj>;Bh=bSm-HdfqtDmqejgly#?WcWaGzsNY~(-UI(D*vExI(q z4^l7jz*e;_U04zpJl2cf6ifmguzRb~eQ+3@;=a8sp~g3)5mOehLujp6c}eXfV_GG7 zG&2m|-o?BG9x;?h-8_hCu|}aFuj6InpR3-$E+o+Skew6w1tJkHJ_ntef#g%-MJ2;WO1Q5@RtNbN7ya5gjyu7g^d?+$v`u~g0dJ8L<$xWhuE{9tg`8cS8^NNM z*5Oa2KPRBFAg`v1D#VaUB41(w4+Nh;rgbi#qz1}k9+qWut!goa;!E)zO1-6Ulr z$(M`;)9pGBg?NNp4qe`20ho96mud@`BlPCz^*}K4;8`p3CE6bzcdY2=ZsD0Hi!hDa z^ph+g|25+UoDx*X0+u<$EEJp8P1(PBZ_tH$-OK}?(hrx)RNVmWrVw-uuO`@*E^gS1 z1#s&^`G&~nk#B?_M`xLw%{euDZp9#J5&=Cy z`HtU(nVG};VCj2jG4#9UQ2&v??+>Yuxa1+Hm6jo=q@6)VUY@0ExIjAk-(1X~uTiXpzJ)eMF&Z@SO3 z0GF~Q&>uf+%1rc|FlBPtLyT34&_`MvO*z+&(5Oe5-aXf0wdl2qn+od17anQ5+k?-< zZ1*tw=N_146&Pg%Qxh|)avh2wT{gYT^xDwaviH&W(W5bG>d5qk z6Dy!vIM~(+TmlS~bceQ~4Abb(?18TaA*A4xW34P8*_#Di3=(W#5?V`T$7|3s7)mks zh*pl*AB)ECjb-|zuMaZ{pbbgQ03m(4n+BuDAs~ZRe~`&bw`5e+av-CdYL7yZFdsf= zQ}aQ>ANPGSJ2E&-_6PDu9vM)z2uS|a`NxgR_Vh@J$U<`QA-@rmoT96u#~a;z!*$Os z4*p;`5g<{7l4??$dQ6#M5^PHkHe3t=G#Mop@T4yWLJPH2HaU2CG}+b!Gvm6w6D~?V z0byPP;f$n7GmkF@ew$Gs#9q#wj2BRLG>i%r@M$g$UzlK@9h0D*E6H=H*|=?~RPPsI zP~-Wf0{CRs_YT-$UMHiJ#sZ>q(0v~v@>0PM5P8}ddXh`oF=daug0$%@8*`vB1apI7W%^jo z!0?H}Qv;z%#MdRd{>nO}Q~7_J(e&TmI{iic^R}>q0ZWVU*J>I$QFkE@G3`w0Vo>i+ z`m^+AEPW@mS7HV7>4`$4|~eM_1_2nV1-Xx7ZGwDaJ(<&Lp-nzU_iN&kR-#*bQ> zLfe-;ElPXOU5Lr$KA+buZSzgBAA3-?HkvFBowf8=SRcgE!yMwXO9(|wV`+^MWKZ2` zmoP-5Ld@q`SlSx9mhCn-$>OQq;3qPej2S0tx=nz+&IN#CwLs5Z(%dR;A?b{JbNK@wz zTnj;3U#nn#!!htKlOUd(JEvY4Rm8u3UsNnI=neXs8b9?}cGu{c(SW*Mh}0Y;q7@+u z_prp&;RUa$s-mo@yNQoQyue8r_CmogZNeeWAg}L&%rBsHqd!B$SM7Tu4#-xTVJFzJi)eqKq0>aiHdx*ylT< z)OVh@8XHxQw@o5rXlBFAuL!m^D_LhBiOk8`^pGNl^1_-12~0Vm{^}mR9e|M`N$-B^ zb-%B0_s;uFd5QuVLoL2Mu&PAXF&U&Aj8|J4F8W6)&H5_`Onfq~S5Vh`U2#&bjz_Lm>doW%S<wu0i=G&2C7Yd7f- zj``^nURrjg;x@eplZCcbKaXzDF2Rf=m~2~4*;H}xCRXg$7?DnY&kr75G>O=_a%8^Q#$N)7Wo1$Ot0 znd`e9`XhjopCiQ_c61i83w4tbw}z1f-AT^}YIc*9?pK4op(MtECZuh9vy{%m{mhQU z-ToF9nHMdJ&DoyrSAK7#+kE7S$A!yDP(surDVAvf4ib}Ok(EULDqQ1FrFy0yLYjWK zH&gN!3)p25sM5RVx$4j--OD8cb#I?Oyvi$~Ol{$BbkZ3hq;ICJ;yWp~;kF4~d?|0Z zU+rNA|I&>n??+?&is26&bsos~3sl_8IWV~P3TOOA>QYUwIseYRSGE0OWJr&njNZL; z%v|5D13HX~>LQ$oYIL#U)~zWl6i~6L>Ox%|F3o)dB>}<&KIeRJzkc=3DKEjIy>GUj z+<#r_7Uf-EZsu;?x`@-Fxnt^evL>d#ve?JI4N(($Uk$!bHCZA-Lhb(pGU;=`{kU)6B+g(HYrYl%=?_DTn?Z@3oLV zoBh08M$L?8L)VBk&2@WDfGZQ2do>u^`8k)P1Dg2zhI$mb2>QG1K}v9$WB=#!&)%>&HjS2e3>MNhT z?ST7#7C`)We_x}p4u{IlzthfQhOFYCEeaGGthT$)gpR#s2fU9J?JyNHr$XEUHhiJj zs_?&4WaKjQ6E5tso&SVl)hSw}CEDRJ$ZGW!U3@MSocA9m|Jn9>2$djP>0-MuEs`h; znW$(rX1hzr&)V_{IK|p(Qv)7@U1x{zktfbn!LGF%zXGl8tf`E;qH;zMet={aMfE#taPJE3a*+I`<#@y*j$@+!av#2_iIrjjKZrWa6vx4DH-cEe{XwQ8^V$X&$k>=v>tgV|I9?Bn zUMcGJnBTj}ZN0>QYyN?<62Eo%@qbe8Fz7Kd3ts7pK}EH74RJgIcoONB=Q`|t8C{-{nu1)a;g zBmJugeq?1Z_I#`f4@bmd@8?_(twkT$#uo=ut>Am>lr<*OJ`_yYH~KBieQA*4fxM6V~g9*Tce^=*fXSJTi2f{(3rZ4iA* z?i6`wrlU~$<*s_)HgIaLW8CXWpHHQvjAKiUL3Uy%?kUY|OE!9W!hb^u z;)8BVeg!Rh4pKQpt*HkZuJQwthbFOvuAUx9$$0*;E=}BJN^KV}MP7#hY7fef1-RcQ zY?=EZ)SL0kDi~7IRA)E@AqnX7456;7YuOmJ>2ojI2A7$^n--%C&c&o(?duTbsd%s% z+Hm$J>{dv1DQ`95KT$Ghi+s(X<*`Z9p3qdbwF`ph`BWUUAuN!Y`WdZ>{e*Z=p!f>W zW8skEFDSfV0ke98$vG_G6Fz+^%)yHGb=7OWU(5!<5pn&0Rqp?ze*Z7)g#DP#r~U=H z#%rrw2Pa?0Z{k7bMZ?aQ%S%4@e>v@zXntvLOFZr3N0TEv^_=!R7YG#;HE2CcO&Vcr zFq`orZS#z{qYT@cCVBv)YzQ4Vv@#yZlqv3HUKmVg4iO~qekG>s7pdghYKq!;ZAO7b z!57uV67*r`QA=JA&oqsKm+lJ==<=UW+S8>?tP1j3K%rbJO!k_VF=KF3gBbC{urE++ zGGPLd;F)N+7iG{A4h{q|&*U>j5eb-8OQtM_=%dC04%n@xe1GM%UG4-q-ljzC&>B1w z4jzL~h2^Z6thhKpG3lZf{FXcm5Q0<6p~E#9dO_j-AY@HNG0|Ai(E^f+$515Z6$|M6 z1X&iSJ;Hc(ZbA!++|TrSwWJ9x153%ILvouJNLhixNamPLkw@U4LnLhv0U7Hrk1>81 zSO6AUMm^N_F*~s|dQY#*f+0}Sa)SkQFAoykpfT+A>Bqsa zi0A})Nd4N*GPD>`hDVu$j!=eS9EpNMyz3||IF!oBnVKgh{4DDc(zW`$r|0tF4kUl$ zp6PNlhNP;k^;UCYPn%x%k0FnV<==7%yQ04Fnz*~oTV0xgM#26HtPCgN=8pW@uc$52J#8` zG7qc+4@+teTK#nGo8Q#~W9nF<7-Omy6-`Pf8&Ap`?xag8-HoSPe`z-+ zFcX84gk0p@;O&qU&FW3#2O4%0c9gPGn-DRx#T}X-io@cGKIlHo>KP_K3m|q?LD9ru z7^MvFtB+|D1vMa-{Pg^`=O1xZ20IGz8DWP_AH#q9mz|Li5L2K)&bQ!$K^C9{&HJE` zW&^QU$KfrA5s_YEVWtljVDfbOO?@-MH;0$Gp;|gl_Sg#sjn&i)lzAB+ilAv!tL7{A zRr>`@k4_h!?@yQV>}1@;FgOOk;wex%#vi_=L%53vZ{y&bRyHmuf5wN&^2g>hIGx|@ z>rr<|tbAAQMq)Q32Rnle8Y#C$X?SQObZ<}0Up@jRk&cy0G{}k_SHXfW38k2MLZKS{ zAYKGMV?`-qib2M;MQMG;J^w3C5;HD>$=$s8_U3u?Du!~1=@pbZ=iRneD!~*9jM)Q; zKfD18+Tfw&cRo`D@z*=&A#A+o_0}pp4FPiCzhGZmY-_+>wH3WLSjS^lCD&V<@FLvw zHl`R9Tup#Zyk;0Bg>DAD@VPzSpS|>61X&ufKXn<2= z3?X3it^vW2E5|julAxJkR8yoi4bxz%zyjn3=d9?v8cES)4I-2=NNu(O`JhBw16IVR z2bpL05qlAg3o5b@BY0MF?vT$?^c)sj96jNt-i%t>?RM#p&&~4XPAwM2bKPXh8aKb^ zh?TkjLE3Gv1yA+F8z4q^Q-djiAs4X#6B_?L`j~_TU$ugAjYqZ3Nc^Y%q>&kkv}T#fkN7uu!##7$`90dlMXS z2_HdfP3K7aMZOx%a5vX~88Gu$q5kt<>vZ&tk)PM_SsFSXHA-LuRGr<@$UXo+80KwQ%TX z1XcGkMQPm*LX~i;Io%JoCemxgwD^oZzyhv81;G!r*byrl*Cx#(fd{jTn+t-GtNu)?l(Fy*7ZTTT32RhqcDLT^4Ivyv2c z!hff!u=w!Mn(30|?q#b#jm`yT!p2`uic;n`!((9UgtVmtQxz1d&*A)Z&pzEUuCexT zmP;a)Cs4i6M@5DHzF;4~^~L>5Gs=98y8xNq>=<(Y8s|XKOM9P+=8By-Rq;I=vXMc% zG|2W62$`DwUNSW)$PbNtyMM0Lrn6&w8qN%c2)ySD)_d#uFCJFgPhLneM#RRPYah?DPOC^z?wZCq~z+l3ZBm!gdN^h5HU z+DS<aA5=}jpd7BKu9>~sFP^B#c z87Krjj;@Cd^MQ-5!gnFt9idX=H$D=>)6x1#WM^Hzf|Pm7m994K>^+C_L==^)>qbvV z7M-F>m{n2PeU8p;=?}m0yq{(fD*4GW|HilQN`8K?#LZd6L3EvXW=j$+l-VDKE+^(+~v86W_QdtZ_i|`eNp&~u#><+FQ1c$akXL0dh{TgW8P3qM+%DBwss2n>PjPV zXHr^EmDRlcP?He9GNS<@)uHrmjpoCZPM_SLno7qsm|0(NEKdCHjeg)kyW~W6R5>>0 zPd(}@bE-vU18)LNNXlVWB>8we+1z|hi>FQamSebyobbZgRP#g!Nz)&3|I5Xa%)G2WdOsHTx`!SQRj~*C8k}PWvpYE3$ULNjOJ|J=8 zq3NEFK1H5f#sb&a;!mh7+bt+jO`UrUrBM>84eJ>Gay8MPD0witWY)1FHz0W^>qq(1 zcmSd9^Sn35Jj85w*5N3(v%d;MltOhjd@uIrW2~AO+EksUpVIY?iAjEM=7w!kgGhSR z!r5J8&dMUb=~oZSi&MDdzNLSSvitGL|J|n+v4PoVQ8PSb#AB=!{+iXpM|2I)CgK$` z1gd~E)TAE*-;}&YDp>cf{?xdna}#Og^z0P>fRM_QQF-~$JnhNC;Dp@a0N%o|r8vm4 zBVrIj`fQZ^)gRq2JwxKA)5EXeS1BV115Ub|2W{F+?1}^ z{VwAqe?!{(Ca>@CCW7isV|c3kus(PVTkRr1bD`g)D%4|RupG)|#l=pR3N5udmh6}P z9$xA%8T(2)V|<$h*piif?wv4Ds=EdOAbbo|!5W;giV;9oH>PpXCZ=$dDZ)j|BTD@h zJ^pXv@7jbs2*00vIq+ISdz38@`?R|K3C0PNxpStJhFD<%@(~N3!TNV&r}Z7E;f=LB zD;hY5J*&V%W|zslJ25w=?|ZHvP0F8|o$f-;9K)vxl_zzLJDD_zECM0ZGJm zi_kR#zcanhYn<16E{~b=URGrrEquD;#NPNs)60X8nPbf3U?8P;{F~HLlN$Fd+OWpb zSaWG7=u2vlrhUdZeM%r!e)te&eR1^c3uD#ma&a9Yo(UeVE2_~@xN>fQ&Pj11a^*+h zQ2T4BNeybie1$}&M1p1#`8(I4zS0uh=@w>~Ilp#-n@Y;Hqsx)wSNwAkf%Ad$ONTLt z(2dd}s*puDvw8iq)!7eHIo%#!)rso2?eB1e24eNnrGv5?`@F2j%qt&ADgd%{yGi50 zM7l7|8wp##2S!ts8V0JwGvEtL`Cw#Ym`m|BS;S7CN?m70b5mNVv0~fxe9_Y{r@!7$ z_-L((mPHQ}Wb`AbR&{Xx)lP9R(uf)r#oXDwMm9k0sf1oFuqqsJ@e7g2EblwOqn0Of z)ai!eqer>!PYO0QC;N>T$sh}GTvu3F!8pQR>YCsKOY3@uMu&ekrPL@>&b~kLCH_*^ zBlPmyeTmQS37tjbN=CeOQI#Q;+5>5i6n*4#E+uM8wkkKVftmEiK}^8+!13wE?@EnZ zg1Jy8lB#btL5Lx%5F*hq?P|2sS*ifJ{HdSfzOge&4W?$BDnF|>2B^b!JPJTz3jt`vfLBo(03{3=wfX2CZ zwcTqcB+i-tDzC|ak=Gq#+hlqLsEkKVZ(jx;eRLh}tA`Pt#ZYV!(OXmL69%Rh(Waml z>E}5Ety}Hp#3xt!%H-2T4<=`5e`^r=CVeyXh}a!+ig^)Ck7>u?77B%{t(ehJf0zWt zUVQX+diUnLm&_pyY!yCKy&n7|IO0MxQ=O3?_^o#g8Fae4q=53Xyf)o{Hatt6(-;{x z*Pq%gT{`V1=aiNp`9#c~>P0T6nGulDL`-8S>d=IMQ1jN<6Ov5O#hNaExz_nLl_bm3by4vXjcG73%1`gaTed^GQIFk{QmL#~T)Slp!ZIPNj?F!~2Z1kC}# z?89_(YI;)+?+2Kuz6wz(`}~TL)5B8bltp=O`mAhE=p(0>J4lyeLzcVD^8P5DTkagz zSuX{vX|mn~@l|o^T6)t@3uACUj&9zwwy9|WRqd*rZaDBxsWG6|V)z?DcjwK`n8Bd< z@sMh$8cHedR>szjQZsU<&m)|^-8TrNLA4^rlxT7rj((IH9e0iHUNl!L5ZB^}>Yf$$ z!R4P-v#c3Ne%N-*>CqSKua1|7jr69qCSbDoYuKa>Yz4e&NdToyslZ3%p$_$FI&oIq zNBV1i_I7b_a_Ll|ZzbmYhl`Ludb{}@&(Ik;p&}QMp!DRY>aUfOPJGS4`Wwt%)R}Ik zBxq+nh%znq2@{Mde4e(*0<1qeh5KDpkj^pPf6?P^N?0c7)qBS`X4arKguBb%PDvhcGwUN`yc z$(M_lliP4yj2!5Vm6b+9MNyO0eY7Uk5|@zMTLa5Qj#%`yqzYykU`Lj;EKV%MHZQmF zYG?0Ft`<5P+VQ6If!t&uco^4eC55`e$bkFBz*>gk_w^4`s;1yvkZXDv^Pg#3xp!V15s#GZ8qz$w0X z#%4!*6#q-1crbr`p{lGyQP)fJGz3V-@dQCyf&~|kSGqT^g7CV)`iGB0x@IKMInJLBfe5Sl6_SO4< zcR+yQ$Gt&h+aoo1{jdLnlD2>Nw(8xS-_ibmKiUrrw=!p59W~(m*U^4<_AZ;dGf<9_ zU+9zx_jBk)3|CtDYUctJWI7nu&a7313VH^=wJr|!!rw2^ljqg8Kqzt6-RW{J76jHVX)%GRx(;3r+ty1As>*exakC-qz)d+5B<( zN*FKC`2Wf1Kjwcf`o9NCik&|V<%@YbM{z@epcXgN7?yxp7wyHYX3tX#7+)Dsy-%by z=9di!MGajIpsazlu>adI z3P!2G5@kfsR8rO>1!IV9SF+B&wb(N-Xo(bb^_FA5<}XPrJgGEX)q3i{qcAD2q4f5V z;TIhn%o@CnA7*~)W(b^xY!71r7=s*knh`XoG9IL&7(zfyzjwv*=Yu4j9*n0@6k3+5HCE|PS*aVS>c~ITRB6}keS7|f-eo0a8a4nE_NIQb zanXOM?e(zNf;%PMlH%MNMXr?uMMh55R3}+ut&+}ET7;I$NxNq}R#S~zE)Hhjcipe= z{z?Ax_xVgJIj$nr>Z=fq1il~MVX|4S`QBB=Ww&j`#kFSx{XIE+#gFGF02hs|#T23c z*hH_XcK2IqT4Y3_?|`^tPR6U#1B18IufOSXK2sNEYVyT%-=kA|PLv!u9N+Li*n97= zruJ>$JE({>k=}%;R6#%#L}>vP5D^jSAY=(5O$<_`1ws*|qbMKCzIBrXamZ z4IQK=)Bs7mKi1ys?6TbVIq!SUx$pZtcmKfynPet&&R-k9F+Srv`mh4_$+Ph}-^b>6 zEoWk$D{~uPSU1mTw3Vtp9CYnvlu(nJgbD36o<_Smg2m^4&jbZ7Du3q*v~Hi>fRwGy zk@{gr_ROM=$4^)iyxF|tr=jQR?;T2Qs%os>fH3=EQ%`mM}_F8DA37J`{ED`0oRbT1wp#O0%=9LZK zuO9roF;5ZL?pf`&`fpDWEz7d!;x4VzKg^N;v3Gc>$9&XuF1hSshQF2!Q3yC_L#b!I zZdx)n4jql2^b?%vH+xW~bhRpQ+IR$0R!0*!&H828kgTw$LW0&MY#Hw=1lLGq4*wWv zHY|(jxgL6`yxN{zUa9u(z_(kp(yG=M+a711eKZhp=!%N2ZZ$0qv$)$k0fGmE&7ZKR z3DmqyM=K^m>eh=wN7S%+NXpP18Rkvu49qG1`b5q*du09k44tykS1KJzbJ925qFzwY zv$nTDJ~F{iRn#f6^=i0Oq3QE=UA8)gjI>)~OS5 z_tFm)#GEH&g~>0aNkg-B9)7AyxT5PV`kAp_O2^+yR=T)cYo~wDtg|IV(s=J+ZX3N? z52b;d&F2zL)gPr>d`T#(3Dvqvd+o@b1j)|0o0sGlvQN0JUOz@-y!WCdu5+9!;sXP3Le%tX62@~bc z4-!F2d|WY$y9-?N$REV@EpC(mQXP0S!fCyD(xt`HTfoH3nLrA8HNAN14d}ANXblY3VMWs>Fax}2XD{;%4U=oex8}?E#1zDS$up@&!%-G0BIT|7% zxMvd+gRGYCY;135(v${9bP(y5QVIA*AbEg1{mzTAZs=*KJ3Y25+ri++F_mnz^nfm* z$%M81tMHvddbYEd4h>|`L_iu!u(F%TpNXC@`|nmX=UrbQz-v-2LDlJ#b9;(qY_ z$lx=f18+^EejCVPO^&iC9C5XG+>Nxgfl`lIij&He)hVxmYwsby-iHerTONC66?oj& z^+(mM_|V}LyA%`H6k-tf3C&vLl;ag^MX(Ez$FVxFzBe{cr6w{rjuz*08=3Ly&>D*b zw9^R3I90I*KsMfHFrAj1m-C)R7gyBhVNdB!ZWFkJp^cs<^qv10(yu6)jIr`5z2+tptqYZW>!f}T@%#ek@&Er@ZIvsWIyq4YkE{xzbbc1rUBWmZE> z*d)U*#fBHrp4h^hVN|h6u@|m>)t`2_+ZlP+W0IpsZe{>;CcP)8H>8-c(m6fO%sMcu zX^Ky|yExm0DaNO$(4rY#jHyRN2%brV6U73QxiL;|LzD;$ik4>3?BunxpRTqq=!i3Y zI@l@OY`$?ez;5hW!;w{8EAr^&QN`md(Xjg%2wAhZ_su{J`-IeeDXT3h%^if?$NSu# zvRX4*N-I|Pu2I!SFUM8ZoyvT@vs*QK%fotnBV$eqww`ii-<>J}5Xp8eMH zg-_>M#G}!&Q^_mHz*V(?qe*!YHh5Pl1-+-&d&bKuA}&fTKevvMb zn6#q=04MpNQ#S|@;pcxsVqm+sFP?{Oo1-TZsc{|6Z@VMtu1oHQJn%pCIYK;pUsg-> ztOw`rPY7@(4FeqG??c(skOj$2kUC6X0o-&dgjH(YDxkb(Fl}V8;d|~UL!`#3PJsyo z?}&Q3sa2u#&rq51``^JcfMI-j{a5nL|FposJD6cYbF(p;xCq@#&&*whP4&Y7a0Y*j z4ETeqsNZ(_fgbdvUfWEhAn%~&=P*gJqx+%VecBBESK6#5WsxK~u%W_KLh9(;kjQuk zzDIhBS_z{DId1-=9lQ>8fL`gO-f{j5P-gfT??TaA&y(E#vJ~4qQw^A(S3%FK_{=ru z?P*vD14}3}Kk%-JzL0m z7yl1Pvi;BbZ~yrP>-B#ww_H-PN$`A64edm#fmvT6ZCYZ6Su4uh#qdMWk!N3pp1pYy za@&PQ`PSi#UqE6t)2OcjDy_hn5{LQmXT`yDPUZOTKAKjOAtv8G^!k@u$bOb-WF4^9^ zY&H(xWmtfcM6iGtlw%pfe8O*Vg6Mpm)b>vZFXjhls_hn48AcHQ2}vRaw-i-Snf4>O zTIu>$k7160-sm*`eMDB^$@gPP|8xMo)ekNf1|sT#&E!T(Jc!$)0aEb^z9Sf};r*SG zugn~~!+;0WOTykyNL1HP2=njP^S2|EePX7Agc=7M#k1bV3RGkVSj|z>K1Y5%;Ol$# zjJ#M)#Eg262qsGre?o@jcj0@?;C_II5*30k_6%}o_MAMU=#R-Bl=HmM?ZCY^VI%kC zV3^`~Flk_J?9}~>cQg;Dh#N(rRhE){%q?S!$KP|EijmIDH+X3xV>nJ83;{Q3FGi`-$s9Ggyqtj@gC?=Q^IO0^jlnbWp4<$V6zxQ_pMt>4?sv94?8j z52Soasy<1_`U0*cpW1=n&|kt4%)qNA`#&GqZIhW*-}J$?biC2~)0Bq0L`UY-+48pu zBno!GwwU(2kNhgSWSh(d-*O~0*E8zq;KIv`+DmTEpo$Ug2d_7vT3N1GSs~2XGhbS6 zQjU_VqNa>0B_*LQeSZ%C!p{O?X9ad2x+}qjBZ=d{=W?3wQ5ntlWbc^i@{#pRM~KCR z?vYe&I_fKvc1otNA4^>%;-i1gPH%jj*4}lmQ}WGQ8+X9WCEeqCeqiM`_`DllLe$_c z)VLg;tl>Xi!Xy>HptY(sbGyzOunwLwm8mnFAh7q>w}I}s|2`<8NAL)MeK$}fW(AZOppZf@$o|_Wo%??(&~e|M2m2TZsg9=$c?8diODyc*8RGwEj4aCC?f* zH-eq@)FL_UQz`Xe71JhSC^77)A0h?*{HS^zFDO{v5L(R?CEcHp29pH@`PgeJ1BxIy z&a(7%vR0unO}U~Qfk5g@^~zpI^*rs>R#vsra`ltz`%4>`l*trJh9uwUOWCUe$$nHH$%`Ff*S|HaV_#bik^ zltMZtQcz!vVSAeZ0b$n$SW-qkY=a|~N&$a2^yAFmk{4Iuvs!&%4VB!B$&LU<#Dp8k zjv54(JbWIEl&nXx6a+NQoA;>g1wE>0Y{4z62WT^vd?TvKw!rCM!sFRf^(J)f2<#-PLB`7oslX)}Que2&zcgfo#|Pu^~wEHKd~^p`yx(hO7x z-!Og1VCv|}?Dxp_e#srJs3XXt3-}8cZKBKbxP8mIhCv`lR!7TbX-IMwdK6V>RKrYU zY=+a9>d||l8vR9K+{!XeQ~Zpt{2T8lC_1+uiqVRhojh&#OknJuakx^`v65U`ZSX+t zWQNgKC^`PZq~^<=%1V<*+yS@Z=$WiM)c9>nly_y>&R#UUAmgKNt4$^2$*LgMGq!@~ zTIS6Q3UCDn7Tt!Ef?{r-W{P0Zzq3PnJ+auq)jBa>)+Ru{@*wR&l{NnAK#^$YaPqO? zPZBMzTAGKk*9Wk$Md}H#OuZyuCWz(}Jtygcl~pFH^_afCwfBd1%2nrE{6Nrtt>iXn z%O3gmcIe_jc*f@y$>4SRn`<-lN|I=YaL$y8^$7cCE?1^KFi+(0Ls|`1G9che5FBf5 zqF(5eTh^M~jz(U}&(3nT%cc}EN->&vy&qDN8SQXl>dd&>J$u_m3-!t*hx!Q*wE+8r zpnLXsHtb1K-0s4#M)#(l-JO09UcpKGW#@;5W7-1YXX;Ky1}L3?JkE9P1`9xqYvj$= zTC5M)SZp4=2CEH{xFRv76e_vC*o3d}j6nMCY1w6hw7DuVW~iJhousO489#iIPuy*#aY-}X$D z^p@#dlb-WE7PQpToRrh&xX$Bbu!ak&-S{zIQZlY}C4a>(mN zTd|ScCS`aV$1yx!h@0JV{98ST)@EBKJ8lNf85ss#~@}Hn?zP(dY5YwR(Z5vk!~(^Stw!>vctcGdh3ln@;S* zD!-+ibePt+e9FX4GtQWU2mH&3_uyswQ8*jSkWe#}1?e;iCsVLNMr*XwO!?eo> zRuN_Vc}v(&9nPHbi3#^Y?wN_0mLn3~o>y=y@3%1Y1L-RfTF0(}Za{|`cX?Gbs&e&} zTI>mMZ3$eS(kxD}z?HTg+Gf+>(Bnumt8iYciVEgGENryWDG%0z!kj^l{&>S@rUz6O zXYqp>R0eIEJssrzo|=<%^?G4~+`4XcouuvSeP!XLnBoP#t7~BebF6i~QVq_hPlQc} zThif=cokYqDv&uOH7F^{&cwp)25zb%(Os3Bhz%Lv6JS~5(~T}n^+aV3S~d%mO?_qX zJ}P}RPA~UH&?SXasnrTF*rKohJ-h|VvZGL8Jf%!k=$Ut$SK_i1aodUzyCgZK7v?WO z7%PK@0bYr5)G@)wqV=BivM8%8Q+tnJQccF*XJca%LnX$zH>80jlfApRU}Ysj>%@~Z z2&t=(gl|Y=Ehd(ico%pD^_X&Td9usbY_E@vINlD4ZPPzxadnA$=Z(hEQ}IG=X4-}L zfq7%%Z3|RADp|ER9jirxgGZc7(ghOGL<>E^yopt2#{~28thc0O>Z)E`y+wJ?sW{)S z3F6ZCs>?NkPKy|L98$GDDVaPEa#A};5_Ca7Ax?S%!=%T}R|m-QxeL2cvheOHM^AH) zx_-IZFRGnf?F*h24|Ldh9zHoQ{_H?N=)ubtz+L94)m>`R4if-EQ|4lI2rg28Q|qTR zB_cMFP~0MLr8&7hs9efvLj2y75&uoG$_U?Zw(q=SlGn1I-@>$3c3Fr`R**R@>Y>aY ztK3?4AaU1U61eOFN|(hfh;(74uO6UE9>|SqiY7~zoxjt3rX?&Z?P7+5+O*J7hb+Iq z(o(zLmnN_FC!R7i7&NxH;Hf6_)uFKwz0Kt8(|VQEw3+Ly2l zkt8+In#DR4;r1xYBzGO0!zG1`{|ZQwIyyGl?<$O_`utZkh+taN9pBRl1(1YK~s^<>8Lsb%a~@v;4Rmk2{u83xudI4QWgX{Rwd##0r{u)z_QH*0V5r#dY^I{P4A9 zY|JxlRK95)!~e9V^!dH0QfD_NQ4I!S0IheL|H z$p#89C`psW`Qh0gPF<1v(0oERDKnb$yFx-Y#5^HY5%i}Fomwz71xt8a215RnN4tHk ziB4b#!}w?2YMtLq7JSP<^!UG9rdr}sL4sSHMfMT80&NY5y2wlM8Vzm=LE=Jj7}JhE z3kfn=@a)KJ6wCFS6iD9IwY@7`uo38l)}YN#NE#~&e~>KkormN047Kb)&fkuS?+K&U zKg;Zmqe3jwW8jOoB>WO!I}==}e>!!P!xd0xfd)&DIA_H}{f@cq8jOEd@PU<|N9`xX2waw=P}8$!=o1f3(@9!qk>)S3DyN55CLsToFP4CZ2LIAA;N%j=tp@7uosm#y)jX;W72nMJ5xbx6i)k_2Wt>Ne!piba1LoBl zG6g+`)cOg@@vRzHs3`DZS#~_X2S@&$XZGL+lLa34c=6$4a%^z!>IJ;#PSnU?hMP~% z7Rc8gp4Hp@(AKu7xwV+yPTZtz_U0|r%;+Mq zlrlt#{{vM39L^u8!h=mz(bruMzvYpQ;vD1+Ki=Ktts|(pm+|>o8PmM zm*OPY^`~H(Sm+(8@`PYBd#lsEH3IL#Z=1?1DcMUWF{J5FCYcHF++z*!Ii@K&n`%d; z*Lvghe0b3$O%|lwiHJq4D#P6-YqhTTtojeSdD}YYbTFDK!|olUM6`Ev-g=$*MQiMy zblVmUB*r`Qdkx{zR$h69z~H*b_R`@YnP}zHldBBKEB!UlDZQg!{!^a^hO$B(m&MiPa_*!;D`OGA~rx0mj?L*rR><@Vr2&%LVM z7l_5(#coP$N{z?fK`+l{7!%oh!eNv0SP}vCTBvUxP+)Cld2Q!rm-`)`$r|)ZmiLU1 zLA6xbaLUy2=4jmbs{}!5Ki?Y_r0^*L?oVSUiM6o}yhvFm#JzsvLiuiLVfs%9&OWM% z-mZ+PGvRYdTuwmQW=;Zb6dHd(o^BlPO^mrNNSjB#A<&RS@ zKbiQPIQY=C;tdi;34256Saw!uTn4p9%5jC+Xx~h;E0iRgoOc#?S{dUj5WFxj++hBsscHCTX^fjQ z;sF<9X;EMb@_SLT>3;S0R}E zKVb!d|GFdC3aWR^Y5OdaoA>}L-IMeD1lt1pSLZzSnHvXaSwng=VJD2gIkYR7bXm~7 z$!NW^Ay_LOJ;i?_ZZ`2ewL;Z|fFrZ(X%adD+*gm}L?g8oLgk?0Txd2qrSs1AP@QA} zjk3c<=fbvi4t`r=RK3UGQt(NB0ar4x^dp-MJ<57F8ini(+hxuIAoKf0MK@PSe4HN-9%)rLO1fFs<@heaB6$TY4B z0Pj)}ieVw`Xt_?Sj_zrx2W1y&Yss&jg>(nluf7Yt5s;x|YC*hcSq4^e0c?#y+oe~tN$u5<+Iuh|UYM=;qe70gFf-+0Ts0=YIyioohe9j>wyEV=X-|MZNx!uANmzxkN!<7@?WsA%R!x(4Ldc)$_r79zA(v}VFw;OR+gpG^7)UAD1 zf2KB0VPMs|yK~$7IxNI%D|?f(Dh)aw`@Qutfo@3?q@^yE`90KSr?T#$SyFG_k6yie zNAhXBiG8#wFTEiHs~W@M!>94gFq>uWiNwZH$;J;0yR{obi26n7)1dzGt0xlryB$O< zLWkbg%u1`*4aNkpTj4+Wu-tsfambw`xq8+Y*umMl><8Ec8Aw+q zqV+yA=cYPMl&vJ9-hj>FoO(}s!r14nOQ#YBF_R$=XQDLDJTLsA;4JjWmG&{Tn0rZ! zWvPV8g@vPIQqodMS68&YgFsEP@nEikt1sym*@_Q3G=lA3i^#L6Yi8-|15ZylqF zVsg*0Fbyqy4=!Y(`5TTOH=bsUXGh*8axGp1F}Vmb?_2WSlAz{hMb#u{2MMRh;|KaO zV;pQ8r0yqlGJ1M_5i#O@Tosyc1%d`aUO+HekeyVYZsE8)7Mq2%AZ#T~RF0RKUh9&2 zFLkdxY-shiwk%Hd{zN>_D*PJ9p$%xfpm|`YzhRGq8FPMhNi)uVb?}NhC0mujjHF;% zSy^UzYNhpdk4*O%?{slZv4_2=?DYbs49ONn4qNLZ7$u?|nf-B36N(wBlxa!oUyy>= ztBR_gF0U;o^uM5uZfNQQYvaar1y_%z&|}+klGlo9U8WoZH^tQyA*T;H(t%}H(g_7y zT!XuGJSWowUIF)kbpEZE6qz0D=hFmm~P$j3xWyEpcDA3X5jqD>m( zc{$p8%z!P`!5?KmGkCx|O0tg}Pq%`(vysI>r$#I3fRIGNefh^$cZbPO!e*R41NYZY z$j%vjX%6Kj3Af2bp!k;kLLfE!*}f!<0nNXVeu-a+?g3hFK;RL+BV+}_iN&c?Xv%eu z>yT~p{}&tszsxAvNwNvICc1#$oRgsjnio^>O~o}%Am#cYFsQA-CU2f&s%rD{zsZz; zlPUjQRS*6U@cHBS;Xlc4{eqCXxKev7tBBZ_L-yIv6Od5SBW=b~x^A0{qEGyxgmjiN zv}?Bogp%S^0Gt5l21*x;vo?QXro1|6e2i0u>`L1Mz=YbI%c z+Dwnzi0j84|1~$Y6C(veI$)e}pf321C{Xv-66gIx{vx*Jap5K|5p2b+=H_MGQKGe= z?*ANQ`4d%zz5k~U`iCsxxxdO1=Kq~KT7I7vz!6FlfROxD#sz&3Ok0{)j#)6|F>62`Wx`)1OpN}AE2IP!uyXo>eoq8I6l2! zq)>h7K#kyA*HzBsP-cA2Z!ScLV}eva{&Q>ncf6MTjQUR*if>pRgJJOBZYO4!zAFg& z1oeS1~8y#(IX=CNve4 z3;5d!^#43#niozvO!GApJAkxi1#Iny3}BJpzK;{V`L$$f_)4VxzM7_}BmbklmtYb_ zNx1N~0clOu%%lu?9uAsDnswneUQS-9)FGx@d_pIq$0Q^l?O~s+ zp;BRjO*r4%#&8157xQW#*vH32O`>jdQHEesj4j2~*bhCT60#gUsse)PsgTl2irL+Wt zY*E!H3Nro0exEoIuid2SV^W8{qZsj-^nxf;kEW~PL`~`ek%OxQ%v1MFHmilI+706i z#`dN_iXcAz*h5=h>q{p*3$;Gs%eg(17gWJ^|7qYg$uXshin}DMT)B}HFw3Y zu9;u9dA9Q+Q}|j}q3OvHwd37-7BoNH4G$Z^*1EhF*Kg~HU*!KJJnq&X_ri~6K9a*E z1$m!R;Lk~Is|rOs6S*f5^{bFOj>MXNS>Q4?_AwYsKPE6~Hhp;^>m^&|L6;8mm1TJg zr$zCHzkLk#b(k_cm2l}`=DT`{7Og|aG>7P1q+-6am;}cf7QS4%q z_XhRl%O_^(>9;jqom!WG7|3eS(9;G>tvUkoHofH_$odx! z6LL8v5~-@R=S(&Rc~y zCpiL44-O*Lh}cxZVqFy`%)<#+G`~xmvK#YOwdt9~a6P}aWW1W?hj%wQ*yrifr`8n2 z-^)Nqt2(6T;{xmrKJwoI=zqoLaMoS7nHso#kXQdTv{Q)3NYqi@D@j^MzSj`PggtGK;_>I5$4U}bva3RaCmDr%A4q>g z&<#nAJTw_Rm7iO8{9KRtx`1Z|zCl%V5FfPkB6(7&0^E9hIBfBk7N41{IVUC)s|SWd1=I2y>Q46g?d+ z`L-tP_qtqF!A8kKfcdPRPFk>r+ZcqDH4z)(<1w=uiqw8XitD+FMc=4K>-3(giRfQB zJSbli&41R+1`*#m@sgk>Z!o3T1Z5^4B3S?_<;LV1bA_ihu!j#3563QvN+{48UYjzG zGZPrpKNW4REzrkm_Ugb3-hO>k)q})ZfJD(b42?$l6x62WFmy2aWGA|1S*521Sy<#w zrEzU)+ZYQpI`905t*JfV9~rPKA^V7*vp%mwD6O&Sig;e|+gMx48Zn#UL3MWgBXFw1CM%CYz7{NAY-&+xXnLK&zsB-E5@ z2r8H4WG7~wW?N7{^ugOR!IQ<=jcbrod+^MI>HvxFEeVI%yIV+6A=clNPS3t} zkc>{q#atlBEE^G4o41Yot58uJ27ahX0gKOD#))o}h{apIrIj;5)S)rnAm!yl&#v<{ zyw5W561iqmKy;eY1JWt>3FheVvb$Lhy9s%A85S+hGq1EgJkpw4dMYrC(G5TpZ2+^U4g_5A3TQ`Bx&@825iwnfex8 zRoDMUU)UHH{b186mT>|1T{kDY+*yR$=Ct{^%p&z^%lShmqkOkk7~GPq zP5F2sY7ts;^ijK98`x3C-Ug9S>M+o^<)OSn5zGou#D(3a2*{4op4b*1u*%I#AW{+Z z`&;!XFZK{%r)#ry7i<;omjPj|{6#+TgVU=^=wTE!7+S(YWt7KIRkXJBmT>^8jvago zSfS(ru=ByZw+CO3D@Hj3?OY}Rd6Ulc<4Bv(L0I`u2<0$<>d9PAaIz1!C_O;+CiN?& z0<5&Mdw{qfF9AD^sb17CuTtU9S81r27>aXlGr0M&+|O>yn*I_0)dmNjb~PdB`VjVG zdH_tdXG@V%B&3$nfG>FrX;!?60XLF|nuvuxfba6+?gL=N5y;y4;MC>|F&JxDYDx#4 z`YMONKdN5P|2uBuynh>@|NDT@<0h2Qj4qd-*(z9+aw$mUP&a?9!mx*Y#~X59m{Oe<^ol0$O;qtXq^w)yVlKN>xA z*gSrB*b9%~Ni%~;^npzqYWiF+AfI%mkvBTXeqQ`kGLQi!8jbv6$dBB8QhM7U4#0#- zJBCD)7d1lLLP2|=%G%B@L4iW51n$+`HC0hm$3P%%wGm{>a9S>NPys1FHx2mMQ~o6s z5ab^hAIEkO&r|(tz^2k)8bx}i3@TTzZ;m7Oh;CrJY2tfrlo|F8x3eQdKBD^9QzpQB zatb;EkD`8rw8J(eC_3OtbAI>lHK2a8l7O*nLIck_Of|AaqL*6*Zfg%Aiig**hJlxz zht6t(;=em1zm{fhBkIyIVQIS;B4#i*$(i$R!fdocVw`LA0@ zV~U6d4Oly`0{oTuHKaq7H5&EY~}t0Q3SSQ>F+KA<{eYF}(7lJi%z zBxk%jV2fl~@Qmkxn58m?57mKULgDjpO;zts`?9RIuHM~z`o}vjt=IhVP73h22O}Q9 z>?_GKM0@hNUR7p`CV560e`RgE+?K|gguxkaHt~bJ?Y;xEMZe5u@V?YX%Osrn+V>&3 zom_~ya8fj($HnAVb88B9ySPmUboFlmbkQ0?VS}eCg=HNC8{{+)_7E*&vCYkoAUJL zChHXX1l+*eowpPC2pq=>YCI9nL>09p`xp`R8l0;6YfXV#rXnJgZLOW(cL%Q5{cyU% z-udC^sTghHq&wHk!C1;0yFTyV0b>^;wStL4lVmcLj}}C#b(Y2okQqvQOa0E@sVVOn zxKpKT7N=tza5BdGfX?w^Z;ER>S zfo1nJ**@HOHty&K=0HUV3?!vL5tOQUG%5CK@QhUM{HMwoY1^T_b2*UUUO}yPTzN;c zpAL{FBb=o2la)x}1wWFvmsSbedbmJDSu{+mXETu|nN{Fr`MO?S#w#=7P_B?uvD0jb zOYpwzo;OY*&oeaR)s0-=6bEUlskpeDQ+b+YQcK8A%EeoZ-uZ5J$8s>gpl0n;oHoS8 z==1plhG&J3v7C73mF3Zr!9w!GQ%7!Bs8C>fYpQ%ilV$iM^eIRxYNgPbk>WG)^Hw4{ ztx^YXbZx#?sz%YvVKaL4@iO?Vga~ zQ%ixGO^*e|hP zL=IdS?bs%!UD{#X;_Fp*x;u^^f*bX00!`nXC+_$NRoMMfU$KN8G3`51H}1*Onz=Tb zpYIKZd+{3y9&3zN+zYzG{WDr$0*W`>CN0Hf| zULGiAwt^q6dG6(;+ly3tE`(G3|RJpWZo-s53bIAigydz7f#HMKS%uCx^ z+#Y-lCW_P{2CDLr2DVE2knF@eB+5pC)`Z3rtCN*Z0@w99n+l(`GPV>&dVh^^;JA3F zkod)R)GC%ZwUyAf0VYnEU=95wD(oz&e7I5YDDg=ew2ZJ)Y3G+cZ~WN&kqjcwVewdH zQDs!6zKd<#rSPH4=fz zTZN6hS)|jt!8+3Z;Y7lO+W56kwoi+M4J9wGVJpb`E_seARCM5u+1>?e7yKAmcaNnx zYlLjssmepX*|kI#vSoR)>1WQ&f1?~g%Y)VlyzZl#ruV+>M%RF_Tejkja0%@r;b!Oj z3kX`vyci^~(}FI0MNYB=tRjs(CU=mmlLy~ejz(J4>X-4$*938E1@QY8iv}Vqr*0=o zu-*Fj!r4zZm!xx}zrdVvR6(ygaOzm8n?**3=F#ydtU+%BPPiXB*lY9}sNG)d7PpS! z2;sWeEq|mamxlo|58?UrBOEaTO_cdsd_7`3c$WDzYue$}B-!!;vR@y_cexE?CGl-fdPdin z<2d~xq{PNJ*_eLDR0ZQA3r^-v#hrKEH=jh&O)jnC?^ImEq zJ~j1J#Z?oT=;?s7p1(cpxZ`FV*D|EtMb2#~%Dd_p?0ULR;^;ZLmWx}0FITf_{THv} zllQ_+ZtK>85wQ9u(I1>nCu(r$Jeip z*m@Gh$+ap}_~{DG+85J-ZYV)--d(_eO7BM~mN_OMOIA<_TsF~H3_elpWJA|6o2c~I zx!v}z0{6Jr!&DY~6q&a7>wikWhBjRv_%LmQxE;I+DHVap&N49-{RZh5p4k~{Cc>=C}WtMJ? z7dZ$yv1^SD>8asNC*Aofotov4?AsE_Usm?sB~hcjPeknt??t+7U5nzfP{~`*G@msb z=48G6jsnRXoxxqjF2hdfSa{rDG9*b_2pN_(?Sn&p@S zmUp16O-ax7ZtTrud*M*ClTG~*8U`}Sud{V4RlC4KcP|+h2`A{h7I5%Dv(0xpDh>pB z9QFutA8t0=ToyavB@$he#PJ2%dV=G*;qd@NN}~5TMaV2dxVp!E@5=;wS@!)_*Owx& zWU4@fzy`$LZPmC?ZeBWl_>6-@$>Ec|V4+a2+c*Kul%W<3or(>=H1TW$E-kkQ%ZfVo*g zN=eJr{8JeX1*LBu!Sf_@G>&6VXlRR^sLrKHiFuNibFe?78!3`C?*#kqzQ+$O!zEp; zsJK=$duivjJ%6m&i|b#d;d&&P*8t)I5?DQlI*IsbvQYt2t(-^~i&U6G)0;7$(`C>> z@CO{?f)GsUmDveDEV|UYZTXH$vyd+ zbVZw_fbILO=7Z&JC41+ghMb{U?~S=Vmuj{{M)CImqb=YcJ5S~7L7sllKlBi7n`2SU zYc6TZ#$k7nHtZIS@=?DKdGe*~@*4T`ckg?MM7D7IU-q83wBtGT_>!_6r*@$`;BOXP ze%P!7Y=ATX5^b?u1O5`|2tnZ*U?p|xlh|08`F*c;&2~MkF+yb2mVVNjttqN^UDLX- zdCxuSSl!LlYoO=9L;4d3J_`U5(x=J_dCe0tjHLAjlYakGMCIgZzGEeODo-l79!sK> zxmnF?M}7pfv92GIVteUeI4}^MIdmlI{unF2_S`vdM?>uL@Rw$(YUZ>`-t@ite!&wx znPs)56}6?W1@CdQhFiZlbhhQgiSYnUAL}?>5ek^*g1F6bixL_f+nbeDk`^ihbDc{^0D;Feigd+J@6A!NG6 z6_G00G8c7bL9H*J0$k6!(yCIevCVVbb$A}Hobh{AdQqjg<4#v}h+50?lX|pcUS71{oKa${NDQEOS-RSu>lk;Rc1kug)~6$tgE2Ha3q~^7M>Bu=mJu4 z|4RR7z0zR|$svbDH&+bD;rr(O)EuSXnJFIX4!}yw|TyZxzW$l%$>8 zTDbd2IQ*gy#Uoa`JbLPx29NFYEX^Zt^27K6}x*6<9F#VD2ms+AT zS9;4rSidv{Ib#Tc&p>780&nVS%Un&|Tstl$=p?lYaHIM(1u$$!Nx=KSh~9E}YFR@} z%b#Ll)6KJNoV>Ovd2Oi>sqpU1tIBS^J|puH^N-*2L}w+-w$HjWC!l^ ztK=OQe~YOgKtXolCWKcdAm8Yw_ComemO2fN+dTVHF#jKy()r()p85mE*#FJ>_YuRs zg};}gaq!Dj{dc7$7uMvnf6=zoF7;tB7l(Y>;IIbK?N1w-40LyOG(g>wgWbQs&H%;8 zAUuLEAt1^PIV=9Dj}LG99`pA*2pX@MXlL^c_G@&OtZ zTG6hwp#7sN;s^K3d5d<0OVVU>u< z|Cdqf?!9Y%{{|-hF9Ih1-9i3RHu2v?%|DSezv>u&9Q*eS@;B|Y|Lc*fKRU(V|NiF= za>eLxAk<%$n3lgXc^U_4Z{EBFYe&z@ynpqdZ(FaHYOOZ*Qo3imI;sDOWiQU4QQ)PG(i@ZgtsJ|COn-G*8B6&ELX zIXTK_O^O#!Vz0*rhVUsi&}1WoM2!cNF^+nxU<{Pwx}e-XD*M zC6R)uR2E{!^43qtI+2A!hEBn|x5?-1>Y=-0ss}-gmlkYJShe<#&;SLOxlbt4i82t$ zI}KDafEN-CizU;b-hr=2;{wT@6fB^?gT<)`oB0tt*)mcsW8GpiXoazA+yYed+`4@GNK-c|7K1BUlNSS(cUj>&d=fD zqI_3I!WA~v-jDqXD>kV=0Q|%uZsXE^?)$e}6-z^w2aZ#R;z2LZt6dxXm!{8aA5OIs zC`Fuva7zRn_zt9M*0wTqC; zj4_TH8$EjRu)T(BK{qwTXRF7b z{&{)jrqVzA=c@0R_u`+={%rrB*1&TJ*v;}cQM%)Wr z%Yzp1mm>GLsm%u8DqZple8sfqJM~@mll3t#k$zu~C4+tCl0VeH2)tzUZv-$KtW*Rh zA(r%a;cvG8k!l7mRqa2v|2OB${lEOa{wOG(eXIZ!0)j@6$b1-dF!s^Q!h; z9Q#+NFuvOYtk6JX!!*GsL1&B4_n9DPVIw$erZwmMlgq*TL28k9EAiGf{JUWP!QuX` z_DAe*`GM!#Nu@XMG1r^^NMAhLYHv^fqwI)V-qmxR9#za(X&IC}(UX0Gr|3!kALjMn z)*b)T83$aEb!gf3KiOZrEc--*yGq4Qul%_A!1ZT!kMD2%7%Td1`5))~zr&ONxvb{~ z9v2&${m(@Hhk5n4b-;^`wGYex2n8;F?9KeU6c}vtyWcCnG6ik~{CoUpN%*b#ANl?> zyanzBaEb>?epm@?m`m9|k_DbCz58Da*sx%rVZf77HthfWvG(CtDd772e~%wEf6oRl z%Lkg{{y6vmC?Z2BwU4N&9lq9ZG*HQ8XXnZo)rAk+($}xL=64H2xt>arRuUMJ_tOtWB+O&qN$$+IP3AvH% zC;Mabx9Y&7?(Fpcy6&-uWMY=`jPr~fjEN`C*4+QF|DpeJ{f2AzR4)Fp&i$}H^dj&q zfb4rpTXyWz4voAq)Py@^`WQ3r^6*^lZ1L z1JCnc{5$v?aOLCz;H9a5q_g7xB<ObVJtpC_$ztukD{4b^& z;1S9Pw=D%7V}5(ZsA;3&Hkv|4^TKEuGFn=W)(cdvPk|kDNbS6O{-*f{&x_ZXUa?bp zZD(B1SDypi;FtbK#W#Pkr^&W!f$OF(yP;FPG&HR!C-US0<}(Lg#vO&U+3Ww`1OQXq BeH8!z diff --git a/es/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG b/es/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG deleted file mode 100644 index 46e8f061547b2597e889a6e93c7b53c83131142c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64484 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 Xl=8V3LhS66yrnuSj!K_qzmNPc=6Yr+ diff --git a/es/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG b/es/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG deleted file mode 100644 index 22b13894a1c0223da21ccd9a40c85835b674ea54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332398 zcmeFZcUV(h_a=PkND-y?pdcs+Nbf{MnurJ}D2O1vNN=HrB1EZz0s=||q$nWLrAX*a zkq*)cARS4l0YWkdpYpyl^ZR4onYq5}`mTA7L=T&@*Iw&h_g-u5y$=$95NCliH#BuL z0TL1t00#a6i0Ctu8ZbvY0MOF|gaH7c2FOX208;Rd68z={!Vw?`?@7S>+ppi8{0qgSxIncgS< zKM4E_0m&;85{g$O6eZ>OBqbHETv3!(0RF2s0Jsg<0^Z;UtU$os4O(^wZ*O-+adB5K zu}3y;R<>f+ZZ6`mNABVhVpqfgWhl)3k+rj}H=mWQy`!s&&}JP5Aa}NwfHQ zRb@{bJ4M6mntwh4ey4K&PhI@{{KWjE#N0gX#U&IJ6vVGcic3n0f=`Hg`MY{Qf{D6% z@&75{x~-SBr=z>Kqnj(=iNHrzZa&^B=Y4z}Z4~Vu*~wVh*vN=lJ(98!m5{J`B>Kok zNROGU3ph)T-c`OD2>GP3f@;{U^Q%Hk(r{F|cx zcQyZCLQ7TI##+((M0YpOKZZB5_4q&Y_G3rY-^KGE=7Hb+aRbT)Nq6ehDP{40AM$_3 z;CBniIk4Z~31J{3qz<>1cKkWJkuKx&u|LEa=*!BN2xc*h; z+PZ?Jtshv!5+?w4fRu#f;a?<^z7x+a-O+|h3#D8`X8-cUbq)p_X$w9gph7cY}jQeUN|XXm`j&C4%%|DmkB zqOz*`b4_h?OKV$uM`u^}z~IpE$mox;arE5$!q3H}<&{fb0*m z{z@C`)+p_;P!@~c!Ec@HAf7vw-(2<%x@ixPTp zMi-ju%UJUDZWyi(6M-EXNxU|A0Pf(XzkF%V1)t|# zAvfG!bUYxiY(dse+YZo9 zBCu7}@WXbZZgSW$WOLSm2;7rW{rn7s`7!(lj^PiSSm7;E1hRN|RfwcLq1{{w)SzMv zKKleh%7)y4$NF=u&HbrX;2T6<;2kE_IoK|<7~eM{u!IK{lNDbNqQV~}5J(eZCkWIg zm~&c+)$I`cB@k_bao-H)+Dw=lY&b*$j@JD{qn7k*CU18O9$rI~et4jkMg)2fK$UJ< zjIsZz5^pvB%*5;s_&1YzhCkip0KuqRgwaX*Sj0kchM=qP#U&*cR3E9>*9;UUeyLUv zf$DOh!d89Ic{cS(5+a~#O$0)77CPaxku#(Zyo!RXdyiv(yWD9Ain#_2{jP<-MUaRf z0@l30@jEQ$Zkyp>Gk#mw#J#hhbL0nl|LqA_H=$)$Alr*j9F6K73mhM+(H@BNn&%(_ zH7~&7e!3_TxFHxJLIj*03kqX>bK;D{#nIbTvGdqsc2~8XrRju?$qque5D^HwLg;9O z_r3zfUc^lhxX=C35yUZP5J8v+U4%FlL<8C8#DT1dfx}gGAuK%)(LH+E49v zh2{GL4ah`I!ZG;?;NWZt{cE;hLBzsY@bnf3u|ZZ#ggm_yN>{XljqE`TbRI=PRz#rr z58Q&&G4qg%1=E+kDvSuz-%x)l75i^&a>2-p!7B+@K>c)nljqe8M!h5qB)vq!2@zI) z6QPWTRCVJzu6OF#0hIHXaev8)2RnDnkewLU(ar!Gcf!jdIA#GFh6CI3+dvtAkahIO z$InZyPHYx0@j2W79RW%)e-c0yin(qPwl;VNhXSDufP)d_#Ap2YGay-hi@Lb8NiZHA zO%l|erHTE>pg)kXvHtZh-~a8l0|A@AfH!O9BahpM3qW#3!ATdD*Wm0O z$KOo-KqZ}5@4jje*fDTVfu>$YIa*ndae;zteq&%gplw?N3C z%L>>8Feixqj!}pcz2u-?;HdR&f0`;vc8{(srS4u;AGN+Qq)|L^Rf526Pj zCIWvOG|r{Rr6<1e?Y~gNf(V@E#BqUW5rJ4Z&fsLe<`B5$Fw)+mgnuc~*OcR!bL913 zDFN~Y4A_*JwfldKH<(JGR>H_=LeYHxj)jtA4kZ{e{tG2+K_z%klu)PoOGf|y+%!7& zO4@SZ-+1=`^=B??x4@uh!caSZK!5soz_Y-)qZ<1MTOk~9O!goO3>9{k1L10`dXR~+ zzr#dKDj4klh<#rP+!7d>T5u+_w?kL0PI~Br!L_8Z2eox22&7Xp;?_xU4SvO?atq37 zUbF1P>z`(U+dd%~-0CM0_#+}qLNIEOFhu^-liEPzBu3Pxp2XuT2?y+|k{(3B=(nd= zkD&0rz=5310J)v~-}RHEYS`s@LcqvG~3guAJ#bIiv<$L#~u6Iw@|5EN~MyD!UcC-b?Ihjxw(Zh7e#`8Yh$t} z_;BYAXgip<#BuHxjbO|IIT4E>EdJ*Fu!S)gM^E8Tmko&h;va3eQt@0}Ai8*t2kLn4 z)DkCb{(M6#?|Cc}DH|GpObaiJcKB zEpv+-4i&I9XLr}057!Xiz_;XqiGho$^AnGQ)=AaU_D}>I@jT&s17$^&i#-@BSt}Mk z!^QaJo=Kw@KN)`e04>)M0QCEq21=pmet215yD}Vm4~+X+X?%P_{d zR!H@dv99NroB4V#9xX*|A7Z4oO*pb~Yjf{0n~19EAXoUA%e5X2WBDoQtKr5YXXz4+ai3MV1Z+j$!|IEGTsAmX*AeQhy+6x0$M&3SF!B6gJKDKh$?$C zE+MTdFqq~?DclX8GjF1!=G&sqTLyE!Mc6nJvGX;}r#JSzS)H~Rx6o5>%-eeHR=Sn^ z*wW4Mh8CPzfQ*Vs8`DSajCRh_Ug-7_-?BfCBCo~+Oud>iPqwuX;X=wA)JnKfd~n*A zwO%m!**Wun9d!NyrfU+d4lpQ*V?^GM5F`OAAp)a{(n+e~TWx}1G~LGD)ZeZZ#|zFd zw-*caKCUXBi&L<1G`OEG@kWWFIVb7u!edueqlCH(7E|2eB%QtLeM^{juZ^7&;gMY; zaB2m9R#}a=EM2Cfc`YtyPTI6Ps$X@SMekLNGQEj^XeSd=Kz%WY2-pjxz|)${O^^i2 z4!Q)fmqp9JRqNqp20bZB_(o8ulRcD+BM7e=`D@OKqMq$6&Ya=n0Do$S@1(srSp!kr z-lp4R!0{m)%R&Cl#1{V!mmLJ7!sX2;kbs>F2TJzRTF`GP4bxzyampqQE{FL|Z1jdbfm#7`XH|C3IP*NN#zpjJ zWlPb(nlF>Tq)^J4b=FHYTCa3&cbnzSiu{Blz)1=ck#)_Yaz8eN*J)aa6Z!-%=#m%F z3b7QIEp_wZNFt##3qOdC4*FI@(=C6H3N2ylP?Z?yJyv=MS903Qcx$%z8G8}TX&oPt zyB%YrWcXm%iuoP+64@Ldnyt|~w_jIETJGCAEA*TC>I5%+D+J@g7R>ym99|5 z0#~t6B?y6j9aD8BIYpaPciPXp?~Nu?3k4#nx4!m+EzXVZa}cwyGqj{&a@ z2$f5a9VYR$Md+@ZFqlj1B+wg+U?MnLE>tKK@R8!IsUaU|za~1?d z7yYd~ml}x_BG4~jo)dv|)I0<)bRq?UWe|UYTK)tBiGJ$Hf}mpYHtGQpIQwpfFbrAK zbODnsBcZ|ifl`VY?krSQAJ5f+1|2FB0eXP%1im5UzeylxMd1TbYBwVhrjAz7Xyjpk z2AC{BGl; zuWWR{{Yz*(VHYWTQc=Jyz*^SCv-beYv^@!Ls(*N96Lc(sFncm;I@r~9KVl4=cC>-* z$Ul@DK4j1L$eq~KI_&*Z5qRO4{Ry7)MBvOX9F!2fA4hfEC<-D0rk@DkAigQpE3m$K zLhcb*WK{$+)dFV$5zjqgnUPyJ)N9di-3NToPK#e#P>u1fxZ`?!oUeW90d|7 zegKN+Dx4kZz(4#~+vsxERSnJljd>NYguGvFaYzl$G=_D$x)YCVfV0ZG9xP}yBHCx7 zB0)ZNI3fu2qZm8r!Y3FwKDjIs?~Bs#JsMyJ>=Je}Wd8I8q4DcUfvEre1*r2X?s9yH zIPM4NQ<@Vs`k=E@ZWLie;6g-u3t{%Ri0ip}vzB*ksb$2UdHt;eSQoY8u^=nVn!@z) zU_H$R|HF_WIQDdP_yov`I21f*=0i*}*t;c9MYta!|wzqSQnWMmnAx!nsC_0c7i5kP~X31YB#+R~}w` zf?(lmT5G=qFRIB0Hv&L+K=xR{;0Rjcm4K7oZ?Y#iL;kYcF`q!+fUyAMXT57M>eGo{ zA@T1?0@FQcT7cNT&k0h2qo4%Fu9KCv&>|KjvU?C~1VNW79*)sCLC)zCs8<4c)Y2U2 z8vWzO;u8@`%CLDAr&D~B9>*Z}@0CLjhyWNXAU|G#TM10t-k(J7PXw6| z*a5+vKLMZuoPCr_Fo6gnzy|M7CIUk=U^Ngwx*RRutr&7ABW%ME7b6As-Xb(umfieK zkrSGF)}IAw3ja&Y&@O1HXV4iF!VR!D^bb>=ca+ZrQ;ob2S!bC*P}GN26w?}iD-9rN&(tG{7EgH4mL3sG>iCk%v$oE3gD@tz#0NEni8&khh~ zzCo9EB96Ey{vZmxRW|b!5y%Dw{6TN%9G5;hm}ac8C<66mB5=YJ|C)I+p)U%OI^Tui z)#Z?bV?IKA6S#?T+_A)fSGS*yn#J2-8^J9L3MA;@cTkLreb_eWtQQ?%fd9jatL_YU z^GVg#wD$I_i2(GS%!^sjf{^)b7`&;HmkKocLTU$?8vig_6x=&hpMACfR^^dB^UrPE zYrvcz()*K&Fn%<;yzChmw)=jaJ>!Q05lD&1A9jShEkd^sHQ+WNEZ;z(a?M~QcbN(I zAp#8drcv$UT+RE>FBfwzv&J$f_A!YC>w)v+sY4J0NQDegN&PV*0M2Y$oCgA<`7}4Q z=bg0>J9ps7!#FHTYgD?>d5uSEj^a3ZU03BxPkyM(!Q0Pqp|(j1teu59q%@!8Ej=Yg zz?&)>s51;|K*mRQ&A&E#I(E;2 zHS%=>L1J-!8g(77goWs11uqwRO50drgmY z8=*`-Dk31WTE3`G>v?JQ^W&V+g&F=ky@)|vm|KZJ6x#Jk>e=y|S;N*92eg++uXZT4 zxi0g{e!-^X&pz{!|EN0ZIH&hWR9swHb^OBA&m_m9e(k+pX1%zdpV~-EV=e9Tbf0=D ztr=VRmv??*u&_&rhR<=qsdPg|pqLtEhf;N#8`^!Mp6fm5x6|q#lVS70Eota%ICP;L zHgQsPoW#_es(IcEHS8US0_r8lGMObVJ&wmU38qJm>_ot7)&yUxwWta5h;lAS7E}DR zW;jF{mT{xX{_L|7=@?qrSKbJ(ZY8Q?&KU@drn@*U}!Q#U*Aas7K8Ds+`Uu zPu)F{e3IhjLsG%ioM{J6q41pq4q-DK`mv0_5R?AUYyJ|1+!CkH%MA|!1iQ||wQdT! zl|_58bKhQ+6^qx8C3aU#bbHcQ{J&_&99`Iv|Lj8?z z0sSM1uRVj9OuQ3uU?`(t1{0Ld8st+)vpHl=FmA3In-H;STUj=w(eteO%fRAiz2)_S z`<(oIm+JVPS-$(xi0nWKw9<9(*~A99M@SsDuW4zMq58giaGBI@(?*xYqvv)%YKJ&q zmvnF71cMrUlF%$ZU0e>Z68stKSwama5R6eBqT&|OBF-C%Tq=V1WFKgV;YOx0+Sch8 z7vdiBTq9+?t8)jzz-lM()kgrw48{Ws~mBJ`; zCZ(@*ai--Zc2krgxWeMu?+N@c8{FS=z7pql1~lgUwRz`?=vjW!(w;b`pP95 z@$?$6kA@D;)sS0{=cKjX_}<}kx(G&weZMG@yes^CRZ<^vBmO3-YO=97r$e<|Gxct; zm`>PHj33A2V=0qY%u~->LIZq@8CkjqFRo3-4oQY8@RUyHXQ1ZqA~)^xI?2#!f82U?jI4{&X zJ|y{UHL(5qM4{USrxJCHDgdyQFwKD>c;Ld9MY1JB({H;6f4M|sxdTlWq(c4F2w%WV z9=J?bT;9~><{nYw3n1KC&ONo3kjqM&lUv>(MydBeXG@-Hy5`m96%{DWKt%&Pcf7+V zb1s9b11?>BVBVS5v92i*E3S?(=l&okIHf8__B>o1dHyh_OBifOfS_X z95B0rMbi5rF~!*D^3qda+05()Hssu{;dAd`R~}e$T#FqtBLd$q8S8;{RlR{^HO&2CpLWhIii5}2b zB=IPklzaK}MvBoMT|`CVj{L``H>ej9x?jpNu;--AFUeCJBfTa4F_6%N(fhS{)O<&N zrT0hxW&S(Z&E;{s7_^>hzso{(b+o9{f(Esv*H+AFf2$529fjh`=dlZS3T8_ba=R8C zK0H_qGM{~>dTvbJ%&Lm{Pv=z z8vdezgOet0RjrnyJ%XWhgnk(GowSzp9iH0%em-p%565Okg|*p;>UE)G@A5yWZ~4CIQ3duEw@E0&7Pc> zyz`R%6I$o403BH=yjG$w<4thD$}|^L&vOZ^7M<^-n|bLqfrJU^8g>Qq$)2(bRPBgW zeM5p?^^vq>3$t;xy$E&o!Mo(IxvH_p;DHop`5{Qd+On8*XwSx zdQ}GNlMNK7O;03qN^&J&3v4O8()(b0AGP_cOV;lGdkQPPye8 z>K8DkX>;_VZ#swm_%1Aq)kBo&M{e@^7P{R`xEyZ_L2LZt196q>>xh zv8kK#wdBh@yhpP{HeQSps{W}b%=Hl}OuGC%MKXs!`ssUv36@-GrSdRjbD=Vo-_2u6 zFU>4(h_2!6LTfK%-5LlOQp3PD2=I=r{8MVHS|H1y#hi%u zlBE;vA<1&Dfe$g;bg^e|#FE9HO($KhiWgA!eSbccit6>$<3e+>%%+LB(xNmh$T+{av z`s!sh=-UGMJ^cHoPl^oPp|z3~9B%bOxfA!{)-x8zPy9XfZ9N=+c5#+ce-laK%%6ZLvcGxcfIhh4@jCIbD&y{O@y{!ZML#A-i-y>H&aB5DsdRu1oE8)a&-Namf+ zp4@(;G#eF}y;8Mj9Kwq$wzqX;oM>{RY8CmM9e&|A|Ui=Nz&WgQ8a0gAvq(0svTh&=%q%1`18@TRI zC&9w!&-RjO48nJ^jgFmnO2EC4Rt=oT>{v-MdG%@8iL7e}k3*>q_9rf98R61i`pgoX zzy(yqR=9?sj-*4oM6Tf~zX~wb&gbQ;<>?{>Bhqq|m`-wuEIxiYqY227W0k zl>=ynblEl;cLVqD1x+sa&S0)G#K37nByncu*f&E`D>Ixn{x1wFhaX4`?#zpwlhtc< zFjq#&G%_sOYHy85P8%HAm=nI4%0;X4;c|?yavP`M*xNEg1ik4r&Ud4$Mf}e~tKwy1 zSv1&fZ%4X22S{T!IgG?$jxrRrF`kQqCgZ$;iDoQ@>@ch2B9#?06I<6VFoL9X3?k`w z@8b=!wT&KNS>Ck0@b_w?ES0*ZX5Mw#=1ub@W(3EAtEK0i7v*S3cold)u^UtP#&px5 zrq6pUbF#a>L|kgK0D)`166&Y2RV(&fRc_5^kLWJl9B6D%}&^z&y2_ z&Uprv7K`x<4UPW7b{EfN-gvIfw>@`FR4FsU!>J?h0b`N6`((s!QA>6g$Xa zQ2R0!N(^XVU@HWuq~%+V$WR$JA?)?87%k6)bSJ!3tY!ZK}$TJ=!)( zsQQRNj`h|`#A_qSp7FqsSy)NO_4$OIwTHnHF|PO!t1_tL%$T+L@mpn+{8dhqgk85& z8n)R^it^#)cC23JS``*%$u=Si51P(-{6xL(ag4t~4)M|yWPpqW-zGuzA2Da`WioN$@rps;>2y0s_1wQCl zilG@}<5ozw?z!Y(N{ogGjJSx#OUJo^vlHiL7s^tEFvZi^FOr7^&(C-QqCd`ciAhz4 zwNsc#{St_89&CcsRx=77Hg zbb3#@9<`ZnKHFvOM=R=eci1bx$T4+-I(Xm9xd*YCwhZp(SCYFzdq2I<8O4adKZm4P z;pL8Lm90g#a(%HjO?c?s!>?O6SX@*z`t|5)#VffCZ)*}($ua?>xWgH$Emr;B#&r>U+w#f^qGuus5N#c5G(UteOC z(aOa<^#-{ga|Cy`&(Oj}dK3)VAKkjMU}M4$dA3_Zilb_&ja)y>dxkY?3CrW zc0{;7|xen5^(jg<&Fk-f1g-T%FM9hl`%6>$`AMBJm&Nf47sqt+vb-xv=I5m(f37v zg&b@rkBr}22o619yco;q<$Q0ra+51aEOpLhFQW)&)T%fWBP~DXy5qPh=53~X>Ke~T zAp+JmIQ=y-?yF*z?_9hce+Ut{fm6yibu^K);M&+I_UW8s2SO{L&k@LVdf@LPl6O2ZXg{#;r~y-H!#r&Q!=w<5Pi z4NWNq4yMwO%K@`P2-~8&$@8V-wfXx)k|q-a-^7KG@Dds zOObt-*tK0)(0GpUI3m-*@R4;4V$XVz=czs$Y@tBF&HP$VDE|kn%jm?~im}n2%_m^K zji53M@7?$a-N{I3Z}2~kgxgufA;Dwb*(_)!ReZhP-1Wf_THIP2<$Mb-V~T`_%yD0J z)qNjt@K_n`?2R=sPvK>vl4OnCk z7|uu88cH_l0HJzjpO4?{1d1H#>VT!jMX}8o(F#TcIywEUiCQ-kX4Fsc*XO)c)CuLDC!3sWstaZAcO+oY2)zkcwSEujL4X>c=R1^nT zlPuVAzvTN^?VZ=IGM|1225w*AMeMBCK#kieTwU|tOvTcZoc_6yDe)kPhuvs(y5?Kk zniQRi#V6(udQLCCY9k98RNZ_*r*#9|j&jzgwSevK8Q|V$tyCGVnx@pu9^30zmPe9( z^-~^^(o7UC<*>8A+oWI2tQ@NL9j2j zq`j~n^ns4$TpN&H*>nrCpBGUQkvE;2n+v}6UA}nkwr=OT3#Q;LOi(tW$yqybIuj?3=r26ya33!^c`>S#L@({rxhgjaf9$J`i^b-cR^I#Ah%1nW+U+a+fj5!dG&h!yN~Ly!Va1M%Nf&!V0eG6 z{TIVws9o=Ahiy|0|9J~GQ$4u5sHipaPFdW?JmK%>W4YjOx(j88yP8W0Ob_gy1nGg* z8&7WPUT?zACfBOzNTKx{^+V_7ojB+XiK*P2i7fE-!fS7TRCuXB8+)~BPtj(E5sy(l z5BmURa2}O_g*Pv5-cQgD7Bjkh`%~q>uMz)T{n}E!0#fx)TqE)smuVIjt(91gUsgmt zD2Z0~p65Or=;Q@5pLa(8dm_q~o=;FKTG>@os%sk3DiqO+n7kqPj#pZu% zrNUb-I`Y)(%_G|nPcp~*{*dlNQ*H)k*n&L)Sqwkm{Gu4GfOIcYo(%bV=oznUGLOQa zt|S5rPH9j(B^G&JG3*j_=NNoNqjPxqp@Tt$AwsxuN!m*lZR0hl@ z5H#}{#^O8a;LR5EEeVGqzlH2TE4TyfkCWiHmN@27x8@qukKchi!Y+mI35%9=w&pct z1OrC5wR7Kuz&GM8@=OLoC14ix<3gO<8S^f|%}MrVgwlu_WBWkmpkao`qVC6{ddXbp$*C>Q%W1;Q7b_{V4LI!Rn@DYVEpR-&isa1`11oLK|B z35wXFfJmHg_>WcAsQY&%zBI=?-Z1}KQ(EEnATiPWbj2#%QJ+3}0di_h367D|>R8)E zs!!Kznc_UK1HF5@U$8D8aAroBJEpYbl9&Wp( zR;D;V60hdvW11Pv(z^#C-6Im_HzL}3RYkbYXn(0Biw94ZH)4;2 zBkxuoXLx6fc*nF8V}i2%nVoB^6gTpe@Vj&QVRnXJ9sAcI+`y(s~U>8y<0 zNEjE_soH*)_5^2^CfC9j$6fvFbIru6&*#ES@TiTh+6untj@>6vjh{@8i^nNN4EXQ7 zDv&)er|p1mOSl<|eDCOhpSh3A*DV_k@?looiz%qgtI1kPNzr?}HdXkBYNq#jp$3Hm^;#*iYnfpgf~Chben= zI9g7x*47fsM}5nF(pbv~vX08vL)pjH2TX7|TM_y;0D?dC$9B zTX4Xz?*Q5UVCUD2SLKgnJvtsD-U>v-2hKK>e9*=6>wbwbODqcV^ZDpp?ufK|a=i-M z#cjNO5DCsEDPHgdyy)H@K;!Xw9(L4<#C)uGoKJ``;8=*bUh76b!#*l7rsWzgOQX7< z3g@%Vyqan6C*}5xo$Y!&Ov0aKja{;F4$>8T-qh zYu{xVLf>!&mNA#wc5&UsZK0~aGDeqyaf}FLwKa_D5CQGjyc=hFeFO}u?jd zzaIF-T`=P|mZ~2&Y}Ov4aP2$4`FLdZ&jhs|l!fbO@~w;dV;TB>Ka}m~U+~>-Q=M@{ zQDt?EZO7-RNHXLa9_QfYPR?4{aQd19vG55~0h5r+gTo7#*lR1VT=-O^D{}<<9G*t6H9)Z`;5N+{E7ET+ZRkCG{Jh?q3fyj|)Ma$}(#X>#&ppb3DLX>Xv|BLoaA|{!#MZ*#+l`~oO;iI%`Q7;+(`56-R3@ezk=^tCuGoq*UfH!qYeX3g>`oa}XV8Ii|l zJ>3W|*G4}Rco&kqa=W<+J!M*A0U_Bjlm(`K9|68 zS*+kY`QaQ`CMBv z&K2UNF)uA1#Vf@b@1Hem$2Bva>LQ6wG_;65x% z34;5!9)9PVQ@rEZ?{wb1()#)|o9`K(>{L9f)Luoxo>CP?vphI&bv)(G+&v!=_FG6s zoeN*)a!Vt>?_Xv6dUS0`=-7WgPi3BPN(IdjISyZUgtj4RVOc)Tp%Zpy400{xbVE4YPheZzj>Bbv4Z>co9vWP0(Nfr&5h5IhzOkvzW9W* zI14ONXZSVblyhwZ(t|7X(Amk8dPyMEiYwk=`#G&E2fOW3KwvK-NWB=AqgK&ShBYn{ z{n*rz;pi&(EKInw<7=mntt~%!_&Z*&gm9E2J=d((dflw3bw|VLFGF+gQQgljRyx?cNH78Q7((Q0rvi;Hg1?Kf%xjgWVg|v>B^Q(6=a^%?Z zbuNYI@2IAMuTG5-BqyqJif}Ql)-CaEqR%ZprQYEfw8$V9bMcZENys0 ztmTLdGRm`qZcZoY5zB`g=Ucwi{g|$()4I(mADbHxLHgoN<<^Cn4ZkC;A9xo8+IugA z19JA`IXQ`Y>gYUK#zv`HtSfyV#F~m=T1syDp4V>3%}lK6PV4)NT|z8y|Jt=+#Q)?Dt8VyP zMjI=y=z%KS#eK!(-9#K>PP%?D<1t1yBhUZo4a7s`_(*NOL(Xc9eF$4(&D9UY3qPz($FRpo$6NRfu(H~2p|HsD=54bxX9>H=YuyljS{Tmy{Du; zdL-=fcqQ(FwUQ2IG`a|Ho)?qBA*ZQotjv?2b*uqHw4=hHYo21op(RJ%!%2ZQoL+ocRgOtzju1D_>zW>O8?K#0^^D{$Eh-u zmTYqjPeWW^4eU&7g6}1&9tS|O_JN9!p3!S#c@RdK_AutsmyYRJx5r2WC1yI+%jJj%)jY&TrZ!Tq0F6ueDfepd=Dkd_ zm~%o#bCx67s%+qOtHkS1XYe_Rqdfj??kIY^7P`=4ytg%_Ivv%l zYwo(b+OnQv`YJL=U&2M09%UnFesua4X^y+uGv-1^_^*18+^Mmy zBAvG~<-OK6EDh7OF-^~(*Pm-*qwu@IKTaDKwIsIiW491KHZZp}C5V`NSR&0RJCrQF zaXBXwM!#VBIzDs>`S!x-`i6(CA2U;s&Tv-d>>T^TV8uKCc#lXUN}cbNz;{oDwxA`< zkx9(lej|z;XOCV&{HnKgLGzqnYL)nk*4+>TUvV+kT}#Z2;8q%d`ICk|OI@etrOBY07-BZVN_!M7tJ43lefy{(xpaY@ZV2Ao8| zN$>OYM)I4SCi51{?^fj7y^cQULj5R{2HBw!7jJs9b_jz^uvELJ;~`JUnD^Mu)49OF zm_i2<>$Jx`JCaP@UrFQd^7{sD{bE%CtB*Z+s*d5P1yiNS10EFW)4=>e>6_0EB;OSd z&jfG}&L1NeU)+u#3eq1+UwzCRde2eQnB0aZo6%j1Z->vW-mSgbls-I29*cOoD;`y= z7<6s8vX@DjprRe0d9J4V>G-wlNt)zcRw*l?+U!9~Nk;9pw^C*}f}H0HKPxj682T$q zXmsGkKg=$o23*=A%R9UrJ=s5u`$t^}vVJVtjm~gwSNJ*U$UBWJH-7gu5zAoFVR1md z@;0GhOI~#d-XgvFsH(bE{ESEd5C1Ky-H4KE)7>>HN`j!(XGv23`AxVm4*bnlt!zR+ zC&T))K!%PQ{T~x|U*dRY40W`gKHiDjdK`~ODY-LsYEs@wIQPAuQ`kqKHnqDbm>g~w zcat05+&tQ~matwdmk&R9WFWr25-@lfjw$nb!EaAf>zne;_jsM;G;C!pb2#hhcF^?~ z=wFfOs28pCjkRLMA9GVm=Bz|zms7xCQ=9mpa$LuaBMF9nqFh>=AjeMEt@RW~JEuZO zoW1|i8_9@v?pM{oKjKon;X>Y3pw4Y#*lFb^cwT^FjIEoW;ivp~*88tD^!z_i z=!{B!el74NZng*8XVoR)c8-yuD%b^k4sv_;*&$z4`S8?6YhMdi#3bF>cS68pCEcvv z{*xu&0a*6aU_~K&p+j!dbwcVn1lL*_nJfBRX5!%<pFu!g6B;is@|MX&95%+w`ntQ7mkt^Z@n|a}=+Xd#LutllQmqw5Obo zYmhnev|}yU31LMt5!A0Zm6L1irY)Y^Iau_DR*Rt3)Y#d!QG3Mo>^*e+O)pS}w?=t@8-!qJm9M&aym{xB4WY8=y}@ zKhl1aku$J&@`S(8jHbnHq;~KUoPH@mnW<{h;sjfDR?dd{yDztzKL_(Yj5%@G!c)lQ zmZ&d$HG7H+&J);W5Xe0!CYaQx*YDv#ADJJ{Z|$Tq;Q#Xim1_I(i$SF^5(hw*YUU(t zIPY$Ro(dtXFzoq^tiqkds&08IA0AZ>o*@1y>KmvM*0dZopwp8yu6wVtj)COV(T!vz zr*~v4pwU|9nE+L-*ab6!mnVpQc%TnLJvHq`FW@!Wzq-H95ORFJp~iSg$$mRbS&4wu z|GI$2Vwy^Dbl~0rLq$00x&u#qlF5~-^2*X!O$m_`!VNwxWAvaz?B==JN-JOuNX+g9rE|j>Y)KNNa&znngd$^T0C>Q^?&=yYydF zwgxGLyxE~hQGck#Q*~}p$tdHB)Y*k@{Fm~9 zRwcPrj+rj{>43tb9Dg(HoxCjNTHHLZonOV?i!M@SRZyL zy{&C3gb?ww<654GSgY-qShdrPZpRsUpD;GmiGWfA$wg?X$}=o+#uCPvc@yjBJ!t?B z(;rDv^S|np#YK#6c;tvkbDkelJNAy_!wueR{qJMzK&r7uZlyUV7%?-oyue$nPXUz> zxX;k3@Ep2vw``rnLJ5yPJ-DYZx0&=vwE%V*WCk{@_7Xj1!L7WoA{6lnHPvhBP zGNXxWVltyDeHoH_A3CLJS$4F`|#rC!#95QH9* zR4Vt9{Z$>X%c`7RgKs(e?#2v%v)3M#j_$I5Jt}lssyMcw?3w8ca}a3bhX{#S;U*Ye ztx~Q(zuf}Pbf$NgN6a%;amV_q&BM+woVM@ueU1e^#)n}GbXFP3<%w1%~-BHVFyG>&;uV2 zewEM@YhCZ(VGhYJeyx~ZXf#=mtRSEBz=^$^Cde@8h>Ed0t`t}^=h>CBJynrbY2q1j zetVFn-*^>an_+eh^SR`uM>m>3+0@BuJl)>nkmZJys;=tF09AQptLkGb9JeUyij2}3 zcjRY-WQ>@`PHJd^ao z;_NvUjk7-aAb3-8R}WppW}M+X{PG#Q`sFFb2#Evt*&ib9#HPPQ;>eu}aW5)nAmK>G z1&uxxC9U0<$J^;-j<97?10o;Tkg?TEN|@3?@AMiI&Qh@moZ&PLaR>U-5FOKddB#aJD2>S>1Z zsApii69>)n4chK(qyBa5e%0cB40J8C?*>0`chyr#f*S9}7ro z4n3V%hN|{Q%xIsZ(IxWT;b&gO`|obh+G`V~?Lj8m6n?@Jx=Gikgjf#sc`|VrS00V6 zxrV({;ht+^Csbfpfd8@1QTQ|0+4yp9!K;_+Cq`d9>WZZfpE50`WBFMDD@8hP&oj9{TGJv4|i_BEA+ z$Qc^yTu%MhS1`B9vr+h;*&v3sM{jBSQ)crdoMRBC8WiohDNGcL)%8#-WyL(K>m?Mh^h43lxO5tzUTb}SInY8 z`f)1#_d_o|0rj7HF;9(m8)zl7tt1LD{Ez%~AXy2a-{kQ$5= z(cKIZsm!r7aj?g+?8U6co-<^XM`3tXu+LG4E4)zLX?1cTLcn#SQ|&^dqD@G|&gN86 ztC1{{o}?DvIMo_W=37KFmn{=lX`7hr9?f)^l)XIij;M>dpw4n$_du}32KGuD{~p&g z*!(IaG(v{y>+9GC)?zpHu`A|~;;L8tQi92+_FiAezasMf-g$n@&_h4v*IOREViyuD z7)&1bDjw2AUZ&G8P;dXzB~Xr8|F$DdrjKtW^H|`Zg8U4^{2Kc_aa8|H2i1g%B}^iEYWzEszd50PaW66(LP|^^34`L& z?S>S#S#-lEM1ATRb&$2?Ngl@Vo7^t%44ms(I|Pr$Engtcy3kQrvo(CmTY?rl9D zE3Pd!JJGYS>^c@~b_7{q+(F9Dcm2th9}n1566MeId(eMU@wruh?CJHhu+Jgq%!4KS za#vehUww*4m^=6_F59MX^Jt+2(~^2y7be1pXRZ?Y3H7w$hZmkOJgF&NXEHHq+tr*` z6+hJ=Oz)<0{i^$ijW1a@&pb_ts$=y=%x1lFg-)o=gZ59$k)x@nn4BO?lEWIXMOKlS*!9vPZxR{tT++5ZW2ZO zg`F;q8fBFgjDhHJsldLqO}#u+EnRd|q3NxVd-NJl!&{ekNrR~Tz%JhN1L7(n1r8vB z{W)4CdpWdcRTKYiT4VSQ@fqs?)W_9ECOOmUu_CTZxHvtdkZp{gz&M*N4~_=ha>dBG^y#7l1UL99!@0?O;iL9-{GX2MaOD<^&X<>k8l_&!)QeZOw22WHxA3bW zogf79Cu3s#X)O5;V?y8^DASJv#cn=xNkxJy#Mwkk5wa|nnYr7fzG9AC{mJsZYHr?> zq_0gUPaUE;1ZjjmwTCl+ElmS-rbFpoS{GhzA-t*AQAB`lle(;$g(tv4m&~!yGPxyB zpaz!?JJ!i2U`saI0#2}AU_L_#D&X0TkB{5hBtjxlDLacJROoZrwf!dIzF@7 z@tUok=9rq7Uh;id_>H7f(zB|Ju}e1@y^-yrwsuj>cOiUlS(?l-+VY8HH3eSbW(6!t zG?#H@aTdPIO@@E~gAE*+blA^@9+Tmj=HikcjE}V*CJeB1F9P2m1UBH&y@-ajCx}j2 z1ok`#;H#Se%emo-_Kv3>1QWYR1b2t~2ltX|Z3&oY#eLfZDq6p7jh+xDs?Z{}3=q9%rXJqOd; zVc5OCvTF>AYiVEI937VD)b0! zR~Dv*V3WK7j`pR{?Ze;2IR+>?OgSQV<0#|b%-IQBznpRd!Tazv6aM7qpERpz!ng*c zrSkPLyWBqr8xlhmuSZ!d&cY5NiE%~XG2K?8ETLC9RTj$&UD4b}#^rrHr3jM5JRqCL zV5Fn_cuJL$@ECyLw-AK!`w(C`twm9!gQ|Pa5`e}*kT}$W+PXx70-%B(WE7+psCFW1 z*Wi$-MKs?Xsx8b2612I$@45U~G2ZCZ9wxELDo{<#p4j&pMo^(ZGYMfm$tl^6Lp`qgMV0&8ri_uV12?Nm z1Ld!m(A1a5OxlC_CJMG*VkA{Ew?JoqP;9Xo*rE*%^~V-}!+vltQPFyGQ^ET$3(^J4 zxwqgBC$lwCA-7m(vv-YVe^H(3hvP;@;iM1@`4Cu5u6&TB5@+8AA^-(^{4D~8U^U53 z0iG6#5B~RJCar>FGT(2!h{f+{!hj%2yn}*P#W-+3PLyJbr^y}W67ZcAMOwh``&^Kl zjlYL;=SFc5n4x&VKl(eBJ=PB*t34~wV`viqf%0q)n9t)9^CTaDISPLD4M3! z&|Y%ih`{;n_2vRlkB}Xt+E-68t4w=ki@k*x;BO3vZNO0T;H38{AeVcflfww&t1KET z0Hm};GzxkH+tZ@{%l4qtaU=k1(1j6=MeYNPHGLjZyB7T#ZF^Z3^v43_Nc%GAg#&xM zy|8i#wB`hP&RMBwh!`Ckg|MlP{qi|=Qsf0*~xvO()#@yw^KUgpiCAu zgxm~5sMFgMi@QqXME-Nr6>URotkS|E-=_`}WgZ99T^>qh@IYa!XA%y0U?r}$Rm*cP zkbQ>4AuBbr>@lj*{&Xk=Ek$S9NW2p+pJH5R{wDH`9>8g=B!(F!=INF=*;M4aMmvVC zvF$!oxwKN#rdqFt@JFP`%37zo((-GZN|K^FZTO1}!( z2L#(a0Vv{K-)AWBJK%jOzz}d0H$gf87V@{_Xt}rU<+XG!ySL-(57?~v^3&&bH5!ul zZw|M$V_;(73Hs*kc;c~|@Or4DJRf;)2>AHlgVgR1LNP*7$|`$NJP3>tCX^8kDvwd{@O3fue&{gXM8w5Bb`1&178EfBV z0+u_rJ`3CBuG_cReQK4r-9c`rbU!B9j~!9)J8?&A*JyzjWg&mIqe!_^w>4K14YHGG8_k9t0g??m?S-^1eB;|iG9HLRt zyAODou*pB+!>b&hn1RbFv?Q^jm&ld*dU?K8o493iA!W7dyVtikl%3IwVJM)Cb&_;z zH1vl%0jTf^u*?6$T3x=odFs8F0$rf&&T2y6Fy?mIFqBA1+S0#5`~YSf2iq(BfS67p zIRN`gXas#p`NRQxsQ#y_e>0OGne75tQLr~WhbEdquvNO`AoLEv;>a>BnPajA4JHWv z_X+kRIv21c#8~3~VvDMFit1L?DN6})+oAR!1Z}}guYd{~%9s>}FZ2$?q+Yy=B-|!L zAjCL|IM>LSiA%I(Rq-&eTe~?)3A8|jK!1;d!2`g<093(M0SEOz!+AzT*@Xa?ilL0; z8hF5a4AJ==OQgULte}Yw>hZ)Sz_xs-MiSy%B0y4yJ=E3DUKTUf8`+ZNp)3?gxvu?%A7bBw467S@cT7eknm*_>(eTd{wc~8drLzE};E27#DjZh46-eKiWs{NI+Hr-49L9|yu9?KP7u)O^jVxpb!3BRyoQF~4P@u$r5KGc zkvlz6i7&yuaf8Q`mVrYP{5<52Y(F4eaT31Erg4Ig;592M)@n4MD4AcMKQgY#wdgC* zlFZL|;E8{WM#tl&h6h2R7YyVVkgT+(^tG=w3I7kZU*v@VPXkh%zSg7z$&)g(iqHHggNa91_ug}w5H z_*LdHktAuVfEGsQHwHc5-)I}qhNT|Y*3DF!<@XOe>4Ly#sy(zFdUf;z!HRLON=bQk z(_jX$?>m3p{`KkABU$PK8GIZK{9)grj)9$!Vto`* zJ`giv5Ok)bqN*&I<4$I{`>C;^W5#n%N){cbZaU7$L~*}b7?44Qk`=K(vxm1Zv?PVz zf{(}x9nF0vSyZ3dHMw1NAYqdy>DQDYSXc$gK+YfW{amVF^XvRxiA?=3Ov3{2xcTZ? ziqC7rXT0w=`C^Qi%e&zX2@O1B64*JY5AHX_J=#@9WnUO3_%(agqf0zZZm>tt*E~OJ zV&2T#1XoP!3iWv+o#qq>hzXNN5=1T9-vEEOOj2WK|yLh zVl^}27Ztw&ci=JqtHMYEsI~rU7D5GBjn*|E;Pirl&nyRF;`f^#DlG8{XSy@Hn@Enm zLu6A=XT;+E0J?w>d<~gV#mjtxUb~}Wb!Z&URGq*ziw7-{Y5z5VWF58lUJT-cKPzC3!B)S^kEur;j??ma;8h_z(x#xXa#1*B z>i`x;X03pdax-B;s1t1D`^ta`8wP>1eZ}I|yT+C{u8#ZCFhwm|SUBe~F8iXDe7iqv zHYM(iE4mqWek#(n4uM|;F~jQmH#-~rK#K$0we4!o63=dpg=q-ig=WD zdh5?ZcnqCCFqID4fEG}e$!oH7iMjDEsK7QS7=bOTrr<-IB!mfvZiy2Ffd);A$oF)%y=&WG$a2b%nt~)D(D4h5=}j5a0gS2L zp;c)faD2@FeqWd-)Bu9-Z3WFZ?aH`H)hJB@QrpBBxkx2exhd^Js*PqdAb9I&w?5RVD&`Am$;1oDS$lGnxcdmxDT$ZEtd|HHoEIU@)kn8Mv{cTI) zoQXf< zXm1;Ux}BvD7j_48k@F+yUJwr>y)eB`kjEW@?6B3IM67x4pk4GH2|Pa+!Pvqh!?;7cG`lRYPiSmlWgKSM_UOr!l^LY0j0~b7 zi4Y3F1po_7eji=jrNqc22a93|hfL!yDlvuJKeAjUbY#UO1?CbuEP$l4%@y^CaPi+* zuLS$${qa~(*v!Dwh_C3WB9f>xK*P=4ZJvbzo??=9Uj?EKdhZt%nldjf2zx0Yr`Lh+ z0ox)eYN{a#3LaIdNP^ z^D>TYDlA$Nnq>$}(SUsw-x`ILni@5;r6`rYIJeCln^)DMb|~nL9wR{)bpr7>Q{-d| zHbBB}LFde{>L6b`vJcfNyY0gYDKYbis7JcDyYLM6oF5_vzrEQ6`)cZ>@3nezPiq}; z)Q#r+{iR)QOT-3w;;)0dZGJIQ#n8#QfF{v@yV$4qY8XxT3{Sdc z?@5h2j90gPF3lsKrV3SHWjN=&Shu}|-`h)0q?@$EL$$3OoUfj|m2qNlZmYFR514}P zKCQWb20^tkNE~mZB?U71UzNv%DKY|B14ogQm8q5Rs@OoGe=xF%%oNg$nYlzd!yR}w z9(v}dUU6UOa%+^6-4pTyQ`hKk`1jA3ln<8l^xX;joMdV23uCx#RQM`0($#~@rE;Tb z^v2uG`TONQUE1&v#0hry>B&Q6UfF&3p#q4S6u3aXxqgU|m?DPQ(blyO_yXAZ$7&#- zx7%QYgJG?b%*E}y1+_f^sf``+vSvX%fjwo<&#?#{qGBw#o<(SE;1qkon_@M6qqy&3 z*+t2bt5(_klB03)PtJC;Js{6tTzJFz8G1+=ppLr!I(b0@IH|kJNA~>~Z7_1Ln=;$9 zeqxx?9q?fQQQKA7+Ay_##SX>2#E5Tk@K^M&lmk`2s9kDt-O69}YgRsvQ;7@6UJ7JF z>h_hX>(A^CZggm-3J$i*IW+#_*p0iZZFK zt%7kaF~NM&{J1{p)2*0U9+HZDR3#Y{^TsuGZ14&}07rEUao<}Qus&s)_kgw4okoIg zocrWWiL(H;jIq3bq(DSPR_m=`HO?UsBIU(CA8Majc2Q41ol{19aaoa)Z-f}X%k-{k zNa88XJRJ5!r(x14Wli?T+mgN+&1*)`K@F+=DYez^dB?bQL+UBaUp`Iiw>C2Y?aESU zcl{7z+QIz~>+&o;Qc$|yQpYiL&aOyN%z55Vt`Eet9y=VXZ@y1i+qFwdeviAXzG9yh z?Kc%btJ4P;QKYx9@JSoxGE4N={ z!;NH8YM$g=^ouIM2(fX~RdCv%i5t;YHU$T)2_|_9O|N`Lkkk=KLm@vvlpu=x?UXAC zW!8-;(m;mGP_kM+B;us^_1Un;o)CKPiUzO1)7beBc|1QuM~zD5ZWVIV9GtQ_CM*!h zPP$G_zF7p)Zhy_%0mnc?`;_vniO{nBS)0cWu5Uord4H_r*PS<7#JkiVN9JBVTUi6JQNHUY#JW2^hR4$;NJni#|yW~ND^Q}G(!N&0lN4k=CN+gm&yOCxnB-*{#d z>!J)$7IT2M#E!I*PEO7s`)>WB>H{Z@CS-ceymM&4CrN~$oE!Ns?DeZfdxcLlvudie zf97{lqvc3L-Kg?s6cc48yrd;9#mGs5kl5glz^azajV@MJQnGFjIJZb!`YerN@NzvYm z!NKZ?YU=#%{is!LiKYUPsGR(!3q0@hyUJYbv++MM+i_$<5kCQyw?s+C*})jRH+3OdoF37E>_pUG1gR3ClVo)%06mw7JlH)+>Y#(T`k*Q#L&;N zZ8#N4y|?ZhL8Zg|t0$L}iE4lPrjzsPq|k-nd$<8Zsp4X}&dggM^pB{& ze&MwfX{z;vq&lNT?~ukI+&IayUaNyTx;EOBq+I3sel)VnsA%ike7rHg{pjJ9-b?oeqq>IdCmi?a<+^Hk_N3hPMEy;i{0dDMUzE1syU%AOD&`)1-v+bh zew?orKYUc(T#7~|kc}XTooz9f>fhRi;QtcG?-1J!xiSsa=dLC^jUi%MUCAbf3?vcjwU1_1eQTKNPK| z3xsdt*qY3s^+|zoSy!h6RJQBu&h~q%i>24RoK%0LIgTC{@RI!KbZ7XTZN!ehl~zsQ zFs#IjB)i>^t0)h;yrQBN59eIHRP|wyB>7&$!pr6~-E{Rd8SkrKVwcYsUmZoQ3+~~}?TD7m`Q9~nT|!Wnoy(-zl3cY& z&*=3B_ReA{-ICv1PDNHOvDvk=Uue8w@Zr<*{^4cRanO7TF;kc9zD3Hp5i}r_WRSm#7BGLzo@8M zUKtr`pW~R1U9c=yk&Ky(m0XYc`6lOwahw&JKJY7< z5r+=if}H$8=I<>NrEg}t)_SY1{B`@`)q1a}n_LHCCoFZ&9Ai7o&dp@zioP%X72*z~ zCMggu&uTrvPtp`@p^ux_g%vH0s1(g`U3DJD&VRI{8FtQ!qUvC1I&&jmLGzepRHt!q z9lN*1OkE;&RA;D6Nw<}4@&rjf+t`7#E(AVZU~mU%)W0hJpfYw`Yz>}W`f0OQ`1Ofz z@2^?BS)9AWSx5~rbtqm7n@Ga622PJDcup_Nn5 z;>Kh*|Gw51Q(=u)QT;}DKcD?Ehx^9RN>!S_W?!ACCT*0M|J8G^GQM>c3XG3MIhFCK z8g2+A4FtL!d!%#q5$J|;a=eM=RxW!WKfxi7pxdgfFu>PCx=%iZqiq`X1D7AO;si() zyYbHzFFWRm*50j3nK4rnd>#MZ(kkZOQSGDDOYiaUOtM#5gyA!{3X7FI6t^8-`CM_2 zRc(xtiS|>INC$%%_1W;ZuRimpju{ft-z+J}H5zFxO&1jlfpL_qH5nF^^%#!KSK- z@d)Pq(uCBYKQw(&A!Riqq54twTjNHzk)$0a4I58a(bjh6OV7mSyf#J!R9F}@XlmS% zwW#f8p$DrUwR1+QhJjDoH-z-RQ0$5xt$1rWDx49NH$wgz_96Gm${&B)vzJMEU{a-W^3Tgu z|5!}=x3J59@!4OtS|~?+v_NeCMdh#kw-w^g{9oB96#oBjz5Q$>^HVqztkxG^QNk)> zx`f zx4cNQGWeU(Nb||tmj7`a2r&jxbX*p8A0&Jpjz2wuma1gtelL+la{bu%Q&Tf(t)tPv(YW_(z323DwBc)d zBgt?($&`(&)iUQsA7R_MpUhCdNx3YZ5~;`M`3PS(8T2zCzHs~E-42nHBN}IgYni1u zPCt~gco@}Yq($o>(Khv>Jq2!-aN5#0*a1^3o2TJ0og#JqX1=Sc-O;q`_Xj249+Aj% zo+~}7aO8FTm5Z@z=W2ClCs#BqaGUrLYyvVHH`#D% z{blat_z5YA?6`&2X1Dgr!DzXGv;`{_J#p(eYiPYzv={j5PFafm7qak??nH)sT)RDw zUQ?Ib(GS*w!gzn&kf$&0UlGxcIGzWmH2*Ho`_s5(D7hnxidQP*h1gp^qC4#BZ|*^? zM{K!z%ibw{Tg@A25|QF4W3Q1rG`39VMBO2h%dMSj<3>0_C891!{T8}+pRVYoA{KxE$F1xGPZCt8yP)8UDiI&s13l?;3Qm_Zo@4#kd9q1B=2Dsis!b8hl{sN37kfhVp`L750_cvAlsjC&FP)r4SG^fQ^cU?N&! zR6m~IM>JcCs^J=U-j3~6(6GkU9Gs`m5pJ6l;-n0om_(WP1}1234W~(S>)G2MP3ozE z-dR{FTCo8_9u2|A;fkL5GZonmr7{zOrWQLnvtD_;yCoH`b1zTAlmBGCA)pJj}Kl$TfFiVQyW!}+T>3q5&MEQeV$T`yv_X{kH3gWuY~zoegL zhUG;Tffo8#QF!67aH%9iMaNtn`*sz)S7}m>#@Erq;kgR8bR`2Xn(hFX>(A}RxO?us z0`c1r#yuA5#N!csmC5eO2^ZDf3kGGRYyAQ>gjdsAl0j!Nx}T{hdTZ~@+2AolS{BC> ze^F($!=UFge3|0PFj;78;dODmFV=p8s&|H+v|K~(;r%&_Dp{)#t@wv^je|ik`(w#5c!g~>NKZa*UaQ8fD5pgn{(- zpv9A09rMZ@Zh3K=$AvQ-`nXQC&g1i4Q-5dVdbR5TenosDcB zQASy%nVH#bj5p>kYF}$u&_q5|ULfAiUv-M^E$Ed{ce&_;d;+h#;4ei`%552{llkxo zYZJ8f@j<2upXT11lCcSqUZ2aRrlzBYN5Y>yd1o%L!|_y8M6`L;XnP$W4sKjNU*dXt z;B;IN%9xjxNs*Imx4ZJ{zo6;|sp;OeFjWpA(M;$NvS#!kcUF>+7(yb2te!em}VSZu$ zPOQl_PPv;>{K=_G&9{d7M^?W!KTIYesMlAyTB;G@R&^Q-*IIVAI^v6KH5{J29`1gh z|Fw-JCHAn@!{}h@BJP1-RI5zn0e^Aa=xkQHaUVtR{=`g9>wlc;8b416!E9 zAHo*Z6E`0>+;=}?`DUW@JLxMIC@$mkSp6C)BN zuAi(cvf&b1P)8s3!4DaKuM6)fH7*OexbTf%f1|L4O1(-er9x%&o z>OXhiIZjJc^g~(v15W>$UGAdSU{Y#w&W#Gzghz21SktD)3yWt@7G}6{sM8MCx$l+x z+vNN(r^D)Jg5Po;s`iTZ=y=-ylR?>GS>w>b`<6-P7ebRHpEIuCJ$Ns!*&F>-S-}Bv zn9K%>!0h|;JyLXU;-Yq)R^t<0&f<<22yApYc{(|NjDMCn>GJiO*GIE&K3eMxx(%D= zxsv4iOlIWEB>nAlVk+kRp665BL{F^H^Ai4f-9X7(Z_nxA5y%t2nb?7!YN2}8! z^Z+wF22x02~VVjYb3ajfuqQTz4!Le@^t6_GaSs;`z-FPS#QWv3D4dRx1bE7`b% zokjwSRXsMyHbY~r%cl=!s%RXf<8tlxo2C8i@0APM;|1VWQcq%IBE53Py!q;tPlJ-S zZ{@M`LL!+LgN4uWd9APVaLRoPW@K>48sS{POM|-7D)PGfZ7e+L5JiZ7)6ZIVX3{#k)%!zNag%clsA6}jwMimeo^~#9#a4U{ zWco@{pDE(?zWzDE%{z71OrL(atR~>LefRUveW5-~npN>0$RL>~sMi%2odVAgHZ@C8 zMmXVR&chQW>4bBmEu00JC09MON99KAhAynqe!0IA$#;7EU}x8c(=pm7t9x+r)eEcU zZN#+3rop82F?y34hpf_!5E2r`tp^BU9hM?N(!fDNw^lV} z5X|<2Fvc>_Jl8>I!aLodwyy77l~td|Kymc?gP=^q482OB%cqT^OYJQ!P8$Wx;;jd2 z?FtC%CN(&N2w5l3tpGli@`~X@@d{3JC3Za>?%twb-fi-`93RyFULtWoP9ao8psbp+ zs2~xXCGOKVkbpekio!m}?6o1*QenG2iRf)uFauL#{dxQzf4~B-$vJG{J%>4E7Y<5?@IJt2o&(wE+^Q%J(un!5T%ci zc+&3m$Z6)9h0UQ#)wz|1$8^>%m-5&D0g<^n2{Zeog{L#6eX|22OGcSTW%Ba;Oj5EY z0!FPWcTTxRuRi|_Ntkc3z9+BO$}ypDy#gt%OL3nvlHGJt3Vp)7L$j&C@9&$7eew z9}M!DiLbO5`N%0tUloW-=yC8uIqTOY1zeL4ob)v`YdKQ>)bXh({_aETcJ0#Bw)cvJ zZK1YR&dKO^TUz+13P16S8Wa#0K?tkUW;Qbm4FwjByQ-10>j&+JJ_Okm{&2fsZnr7M z!3{rb=H;IsrEJOGc1iXbQHVg@Jb6g@*y4zIw4zr&=@!l;&hx#4Zyxo0_tM+egXdvl z;};*lck{6p6mifC?VY#JQ(7k8@au~OH7_|F@_fOrDEk?3Nc(rtYG;Atu5WE;Gj(Ak z^cgxG#Yc7a)F~{D42D_x@gg(cn_p#F;`~LWeMtE2{W~%<(rr`Vb8d==GOM{jfu{{{ z#>ILrgVNs2Sfz&#mxh?HpYT*Iz5UqQoc-M;*<~2LtPFA*@l<6BF{5jbU_5gNaUI6u z?}A$_+bed?XNf{_+CC9R49%l-6Ta##C^$JL%S)S@G_<^#Aq!fpzQ_qy0Ga3T?Ls;7 zNuj?YpO6`j@bACkc)q8f%C-d5Zhd6o%HHc*N&Ko_Bj#)f%jwvrj~7C0cM=nW zjz$hSSUq<)m$v{LmRqRLFs4!^`WZxH5erEvvYB~@Q*%DkVXo1;m0fefBJ_FOHkUK4 zK+ui@&=cVj42H7_R@9h=F&j6!i#_9qI~H+Pys~i9mnfFxkz2Joc4WkYqvboM8&%4i zJ&S~pcnI#;N9vxDmChsLryM__BS6WO{=j;grPoBPLi3T63i*~#xjNe8+K8m&Cm+1? z4|DeV_vUtWJsP@T<`HmNX}zx~`dR04{`KHt;|ZIsQ#OUyb4+f!!lks}3L-DmIli=I z96Yic%xE4}25TA$hB4S%q&m)HW}<{U$cIxb8YXEKWwV#I4-$1sKisISdU2mD? zZOZ4(knSTh)jSU7shXTSw^~D-XCM3J`3)^h>X-U`!>4Q4_@It}vnrSgS!Qx3%?I4O zQw{q?wN>5{fg~R#wvw1Sno;;8*llvWVGk_L#p<}flIEj?AIRt#t=ZPTpEjVBqrPsn zWR|wMr&U1=HAJrCFX}6L@?5cCCM{<*I-r#ry0Ksbdp(JT|DeZ(&CFloQ|SXQ$hx(s zy@yif^hPv4Cp0YI>+u*Rrq2i+h_|Jd2j#=1OTI&|T7T+s@791)-y2>o_jqn6A;sYX zNm;!*&;d%et(RW@@#)rcbnR43qr7#fA^9%PNo=|z7pN_1i3as|9pHEzLyP$OF%8_| zlp1OU89>#Kz;oV9CfBK+k&TKC<~?V1|2oa>HQJnArWY}7d-o*i9mzYQ;yQNz`=a#tZ+(O*zrHxEC?*6NJd=p+*dSmmLotIb9_PE$_tJkF8Y4QiZ>xzG28mjfjeYV-pu~urNiQDW^xH#@GkYk&C;jkxmD!m=$T% z$~#Agd@Vk5^_^x88V<>P)~uTgW4NUgE$bs&s@o$ssw>nJCCVAAQIWW1Sd!?=pUxvu z%h;Ihh`h~sOWWq0`ibIT_vkl%0avybCpqTJWuReo2XU;?qO0gI8Ox{R!vb~%`q1-5 z6AbOt)Tx!H?r73a-wr%bfwK?{ifc&tdfn5hfGZNQviR>Dx$R3=trQHsau*c#vj zEhoKHI0J)qEAip!k94ogvJ)518=}44YR?%?x!)zp5E6-(Nwz(*UDxX;E)bMvI>hN4 z#5|Kz*vvlkpXp7z&@~TE8zn*|V!V{UUSs|i0UJ57()v^0Iq^ezEON&Ryj26Qj#zku z+U`=H?tq7orLcoR1-9D|Mo%Y5vu<+0$=#Nvk@-=h=OR%$gEtC`cKz-8FY1{SP!qRrZmMC>OIv{+c8NM%5PD6 zwwp27i5M36MU|?9n3Um?=OP=auRPlPiYy9DS&r`uR0!-$Y9;ZbEO85;iD<(0vv#Db zbA$v<#EROWHnY;8fbz9xYMQ-HjS{*T+Dz=>p?Y{Er^>5?CoS)cT|5ly7~rp6Fcim+|{FvuFvTJ|PiYi+)M#Z5&yh4K5?ZVz5aF8F~3 z@*eFEE++P(#(;jJ;?@ z{Hzd5qXPd%$evQp1YZPK4l^bg$RTfAgIh^y1NoB%BYc}00WYB`6&+_bOV&2~XcC5| zhnIJs-JdI~a&`O;*=TR&NyuHZ3v3rBZN`yz3QPSNu+Gpq!yW{d0|W`798;6KtTJ#C zjWMgmsmze2k{{g~E5I3HgrMt53~w?lI$l!$s2wr^T1hhH_566p6LIxwfB;H!tU?p zci%AT>b7`Q435xyLu`b&GZu!vl6l9`y9-KQ|0D;n!(q!2|P$=;)fgwN^9t!hBQkX}JsKOJn6!&fJ z=F2MDFVAP|CL4Ej_F`c>pk?8v863PClv#ZJn2wl|`u*y^bRg0~|5k+mkFw-QD(8v( z*<_=N?`E2q&+D`zjL2g@KCf6bSMnToEeD;-gdEZ{yC&k&uO2;H8r%7d+u_ZD_=i*- zr+8f3)*sthOF{;$jfmXo`Hr-`$YOAktBAsKi0ZTVYJ!6f)#{ zX;j72Qfq;$?d9efN3|rw1N3b~|1vX(Wdhkp9Z>F{75ht3h=yn^{LhL(MzmKTdWr1; zV3rhSP~Eo|H^k(=qW+S%`FhaTZp|}6TX%&JTIW!s+As&cFuCng~ zs_xGV()Zyg58$|r__yB?wCflkn|}}qY!B!`fTD+&fNuU>4|4VCWUD`;Q=S48}dJvdqi>t3Jm$*_5NQ4Og;V&0dM_3X)twP z*MDiyCItNlC*|qkNo9j4&lUcns)?z@XnmcP;W?$*@WqMc z%NyaH>%K8A)SgraT|=55!2pc+BaMA~2c~uO@A;QOVcFkMxtKh8W*bTVm#?15^T%jH z9wtDSPypC9|6KBa!z)}eWSns+ZeoF71W+smEx(~n0nq;jZ7qWK#J}*CRkDxmX-_n* zk$2LOnf|S0(Oc(}{q4N0#Kd(o{W+n3O#RRZ|q&^zOsNP64KZ1#nQEa4={23xTElk%6nlD{U4@Efy_P-vP$?<24{COwl6UrBe1sC zCp{dtQ?OL5>Qm}OaA{zx7-C?b&CLEc{}YV`&MWcvc)9TwYeQzhm)teg9^wPGE;5k|KjdD!Dj-1uQK{04fPf?*U7GX~Akq<}H|ZoGNKdE-Qk>&==ia&B zcW37Qn;-MzJUsAlPR`z0Ywxw+^{#grJua22T1wUyst;iE6iW=Yephy5fkqmHqC*&Q zWk)NeNSt;7l6YJl8*EN-6iZuPHgNv%MMNZ3Fhb;u)LEL6F82CgPcN|fuf&}o z>z|UuuG)E!qphJ8jFKx+&)+(|^cdz4_^vcueYVM$l!U?g!A^0Iu2}}BcqQ-Tf?=Y^5ufqphks~_VBHg-bDcfaR{w|QKDesj zGz-A`?PCb;7T`q>J`$v0w*2ESNHEB4|N3(4<=g}8ZXZ@uF9{5-z`H?eHF!66w+l?p zwFa4jb;x_jHVEKLg|E*8CSYxNAh@%=ayTx=e5%Ol_PyK_9p(6v`Dnomzo2?$S6k(N zKXL$;FL=E)qnQSHp?lZnw-EKhC=#H^lR>);L$1U$fnPRVHrPgbH6Rdm@C1HC&6=eae^iQ?lc>fc-TOFy2sIS z4s-HD+}pu(xWJ%V94H}h$({-MpJw)N#P}}*4+um%15A&_8a`o@z{TzVGT8-SsxBq0 zYWD0J+!AX2#Ha^ZyMHPu?j|o~6~sfeE1AC-*GK;P8!ArkDEfhOG@wk5HfC#~eb`7`@4Tit7K`snCgoq#(rSi2S>P&Btf| z+n4WN06BqB0-w4+@NXXTUq&_T7p$s~%ogy!H5WMSpUmZNeg6M4mt0Er`5#F06t9$j zw=lIrth ztQ;np1KnRTY3)A}=x+RtY5&!&K>uREVgFZ1qJcFIv^>0UTuk~@7hyuP1FkMSxdX>F zxkKdZkGtPk^jlV@bGAyVTpABO8 zn5=rWQ4E!$wl$9%<*JF-6kLh?9KmrWQaD1%YU~yd4Q(9{&2z9CyBG;L8#4;CN)#VE z<-aJ<@#O^4R%}M)7zg;XyTslui)fVyI4_?@p!V0%gslHq(*EPU|7i~#wpw$Ym1tm> zVN9s1Uh|@p@}ic2asdWQJ$nD=k^j>Z#sUHbQ|%w1y#^4zgb{rp3%9z5W_9IiXij~Z zD^}C+#*n|T^Vj8XMbeK>7N7mv{irQs7fjL!e+_G6ew#*GLkSQ9qVqEU&|Lb|o~J+3 zAWeH(GN4`>^#bMoTmFB$I{xRCVqJf^U#g&9`d~2i(WlxQUK}|~os(*x})^_wZ>mJ1#FHE?Foh3toDthhD;2w5-Up%lnuxEbf4AGYoB@YsOUL_rY zKTfmUMc4xsV9;~L<2rKbN7C^S2`sh#0LM(Xn=z9UtIE=el2pAUur?Je4)p!23nJpC zfi6CcmLY#%7y#b@T6@ZKLku5K9lg*NZpGjr1yawk#c-%w)34|IK0UcazBhjv!_R~8EldA_VG96mP82K(!v=2Uh zSJszH)=7Ml8lz8I-{^nx^Qo#I&%-F@0Wxv*p4EB3_>VEc3HmGQpi>#&Nqg~YqDOiQ zdlY1VDcu1pN{a){0TocsnWP`s4>{whAq>i=w;K^o;b38&iqer3+r78+k;#mPh1}o$ zeXsF6DGwcLt$3`&|I^@zYV1ouZ!%=B+E;U?gf|PU5#b@!>+UGwCL*$p;?Q<@)%~@D zL9TW2&FZ9<+dH`0N<(YO81Dp;M~OXY3_&{b(=VaC4{tncSfPFE36fFTejAslwYKj{ z$A4N>3*q*`W zhR^KzfE(Vm4I`WHlZ~u%9KRdZfFdH{21I=THQo2R8y z1BEsnXu4y8fvy6o!R9E8dY3~;y$T^uFbC9;U*N?zm z0D?0ru}maGaPKP(4kwnUKv%E*aK|d>6Pv~-6l8$6&+u-9@TJ7MngIX%t219eM_i)$ zm+Pc7c3+;lh`fB1evn6bkB}t2fQ#N5RP!o=*8%p1_0Xd|LFEI+09DJ>S07QELiDb| zjxP%yUUS$q~2Y!*GSW+~(D0B$9Bur2767G4!i<3W}AFOuGIakN8aK0_SGfqb% z>$#kqEk|_L(iCIdc@<@=#RTIY{=LG$ZX~4x#D#TUIustqE=w1egXgI0*cp4uX>&c? zMbA60E#--lrs+l%uR{GiP}0`<7TVoUTTaIWdzXH0Tsepvsdgow@>h;MH^D8^gP+l3 zOO8*|X^o?=>#A}8hBtPrIBH<1_w)39^uhLNZn@zCeJ4ZnWtX&oANAT^EWXA@LzORn z)9;rC;gKCY&BAUdzVeu1BTFmdt1_8Tv$M%^vIYiZ=rn9ssn2yJ+LG_y z+Wh+!J6f=CJgf^pAB2)1))AUh!a;|nSipzlTK zf4n*)P|3m?tqhx9H*aW6Z#_0{lQlF4O7dphzOJD-!=SY>(yAUe`ETUZ8&23?)=5)0 zG`ey!+_vmwU1aaa{A-KopZ<9H&e(9ivS^>{8a#0R_6GBq6j+uvZnboKgRG;GQEIb( zWo9iwsR^SSEnb!or(0RwU^jPjKq~H1!pMOxfW@KTbK7(6-JtRr5Fs5#MbqwSoXgq% zl(%`)_S!ie47H7hFbzCZGkdz84XPz))c39L>&|3gix+g8oP^~sOSmpmmcL($4O{c~ z{RW$I)&oHP%e@rNcICq<-E_RIgez3^{%~2AEK?8R?3IKY4)7Qom1qO;r}ynVN~v=V z=#b4u1AMe4u4xS+OF)KiAt1%@gb`>ce%;8>KL{p~rSvwMePwY;`}TZO?47QQG|lX`U~$BO*B78Tj#6@@Pa!I^_R07l4%23%`LT_^NM7IgSBMNZk;i`+~65vrdp z_32%=%6W|~W-aMuVIFFGplma+`vty^e^n_Np+=hvt}NBllWtQ77~f)-jC zg>bhOEuuuWSH86&EI=uv1ry;9m$R0LE>1#Jo?sUX_KWA_%_7MLc5}~H`o7=moBCB+ zndb^&_J+_)AHg`=Yq?Zz23HvUV(S&SD>w2aR9u;LNHfbFbJ_Nx@5t`NuHyi0;CLl` zqDw=b1PSx-P@`R7viL&-mM^~Fu3q=|^PY~pes1Kuc&b^i#~_2?*yNpV(VbLVOe}BU zFsKrwAq4G{!z|jLTVe zF9I?ft>;)N5rIpB$qK?;Ahn@&zli`+(&Z)Bs*X4B+is}siKmK1a^tr;OVHZyOZ@` zs})3yBe9SA>}^KKrc4>20-bES4Z%2wEdA{6-FFO%P!cB9U<$ov>&c=^fAPc8rH&i& ze&V(Eb;)Sy6sYUE4>S>1updeNrfUz6&MEK(j1DspOz1;YkavGvsU^u60nVI8k!(Dft8id^gSmEMQKj-gX@ViHGkciMTw zZ{0Jbr48$a5Z23Bl7QUoAKraWy4q`~GU;t|7e>i`c`cR{@M#nz2DF>4d z?jLzkRudu|u6)f2l+Voq>wGIMj67GdCLfT(8eM#mw>5gx> z_?*)=QCwF)9TPAQp0+gC{a;g)DfeJ_=S@E(fxWZgsSt#4n<_}KD}a@3lC?dGItm&F zoO5U0yclF1G)2CRAE@Mt(|-CGr)bJc^N>*(xTLh_6Swu z_oy>`>d9|&ChhDp*e$BdjdUda)01m=H^rK5@7=GySPwO>)DCUHdSvdml>~(zd{-`W`BBp!9buq!A7#{`#d{x z;UnrIkh^eZPw-CLw_3jZXkCnaB*K(Ayc)_ME#|ILX=`V#>2TVRuF@$|q2r_*n+~6v zlxm0QH68mqWB~$KmOBxRXO4tr2N~`;;9n9fgp$r zmOaw18brI{XTTj<#I>)Wt9V^QyfVR1ey%mXE#M@gW~bp!AF19c`rN(Zg%9)DMA3!5 ziOs7dIXLE<-BpFvc=+_~h9OD#m60huH6xY}LZLb`Jm*tQ(~j2h_8YuJ=7S(&DcC@P z`?oMHSi(C4zr5JW9e80-tRA(}*=eh7&_L4JV6zqlE7w*N!b=)S8~n?rax7KY%;688 zL zK32_o5fU+_8xINcRHG+i&CAF3ON{T=*Bimwm_1w_oQO8iVg>Ejv4X)cR=>^WKAD|n zNuE2nzzZNoAhQornSuF^LjpWqvv#<8o1>tz`szbzYvA57v?v;RZ|1zlkgsw!LR)_8 zo1xMCTBk|^W}Yh4GapUGDHc!793xx)&{T)D35P>inS;IMg@F5(L@hnF{5zGS4#^v5 z&K9@z(yM06rKfxeJ^hBs5uSfg_!azOiKt~G39318%~KAhbtj0VFDR#eOGXd4H^H#$ zyOPh@3imot9#>=*0Iof-)z-AC0_FHG5-Eh>>+Tr!J8kCG5i-F?d34829Wk@zS1hiZ zD`{v1_JXxcY6f`Z`vakK^#m^fx`;~g$OqnS+caV#NUgiMS>J^@h#S6z!mB>1TJw8~dH!KWfRj{k6;|()lCJ}2)FI}qK1Nc@&tHZjl*y$;b8!}HJ zfX25gv@sT@u{M;*z!N~%f?A+dEs?e}B^U7AS(e{mKIfXYKi=e+^_hOxZf<#NjsX|( zq{pJ`upG)E&5_Ha`(AlrYM#nt@XUfZuo+b53OS<$2^ZoAe7x}X48PmV8tWRVb2Syo z0m@yfTba>gk&PjeSKFsg=#N%KJe1XQB>7sep*f#bVUTCt*#TveZEUM{`+%2#rq6qs zz@N#>Lqy3B4~pr`+St)DrKj}OdPobBowb1I0y6BC9WOznYyo>ZwW^H8%AG3LKmg@T zB^cag>>s^QFGat$>vVZnMY!2HqHiNPe||r`BJn_-m^9Eaf7yM2NjNNeu><%x9JwC! zCHHvx3zPi!9kp!OL7be%*mBr(cynL;a+)!Azm_cgvG@o!VLw5o@16oH)Y6s7dqa-i_>pE!BcerGOg)Q!=%Ar?%b(4sitWFP^)TEp`9b0i

    ZX&s=}P}ZgDd+Q`6Sd%4i?#-CCC?3DOEW?N6L^(G3%O z<=^-+&53?;_x|KjAUc=o>X)Rkemqa5Ut9`MyM8jh!368=kSoReMOzJa5Z_9^LvYUj zS#7-HXs=}Z6^vuPPe9gD>7f2QS9202r;GeBmJT_A0uyan)|P!L+K?JM%paPEd-D{Q z>fev4rxGd;Q}??zK6#Op;G*cG5Iu_fV9@~N=~&ms*g`Cc_V4fO1OAnT&%~n386B?k zc9kGNE�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
    i*b2M zc}indR191tO5dPsjd>Kks}U=-D0Sgq%0V$54jV~e15*xxm3uR6SFCG zUTd8Gmdzwq%CtEaeI5b~WnI4GWmlFAwpx19t2aF6lzLT1#@OyyU?x)?8Z8ItB6yiq z4T?SO?@z0~Me*<$BsjHAe{GEJQ7$>Jb95{gWBb_gek>;_ppUF<4n87yf6i zxB>6l^KnDhC061wOQcz}V8h>hfEQar5%6M5gvsN965@yU|Jw4pwgZ9G!${~scK$ykUs*bD@m?FU z{J#cQs~rbQMExtcT8&1wDVQt#`RUXwo4YE;Q(C2v9Pf_nRU_@OE`Ds6!^+WASQkMl zuGu^EN1M<&0Ni&CsFZ5BAr+(1SF78M665_bMmD_0(&4S=O7pk|yv8pCyKn<>9+Z`e zgdFoIg*&JfO^gqH8#Fey&IjtCYoP$R!d`6jNqb;3ThxPHPyUGa*Y1@izo*!CfH^{- z(q)AmJuP^#(aLtyKWcd`9V$H)dg@@h`@oDOg3*h=eXKg3Mi@A(I8ElhtF( z;^3opZ)Ts(cn63!E{m&uLLnQ(74OZW;nhDG??DHrC~4`j6lm3ZbT z55_mpC|ug;Zne%PkFc0gCsXNkKBQ$%S$nx

    @*jLk6h0=HMX!%-3|&0%?UNUV?d+ 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 KF$YM$zWxtUg1t@v diff --git a/es/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG b/es/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG deleted file mode 100644 index ce4de45d151efdf9c78b9b7420c362d7933ebead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24060 zcmeIZ1yo#LwkKRz&_E!#yGw8=JOmFAAh`<{F1p1pr(*SXv3Y5Hjy@IqEnMiKx60|PLCz5q`vFHR*~ zL1qAeygYyr001BX;9&#+uu$qb^h7og1b~OqFi=_}Df!nYfDiz9@pG3LfC%kFgPsdR z8-REh`iAt2`hEOH;5P!l5%`V3Zv=iL@c$wLl3=i-DKq&yQ%6&KsQd^KaDTEVu%UKC zb_D!i>H4V1KhbdfTmV2+)Zgg8*%n9%zwrBQTl~MMMZabKjlgdNek1T3f!_%H4FQf< z>>R*X>_B!Na&~s$D-IwR2jG9z2LMO{z|fZ?z!bm?AP2mIe*U6=86;0DsALw7jMRBS9oviZe`4GLMI~p97WI-=xS|iZR%)9?rQzP#sTOmMER$?1EKV< zZZ=9`L37Ru@iIu)R4OJ3l`^+ba$>4h|OR2o?u78%IM| z78?huzue%Bse`dS$kq`Awjuv@Lqj95lcNx&lM~1UXl7`}ZDeA?&0=K8X~M$JZeqw{ zXu`?PV#3L3!pqIh$6>~9MERHLO^p9KyRDP`hd<42V$5dx!PMH+#?b+a20I%i+n<^K z&zcho(O)P1U&0TS5jqAaZf|PnX!-`)gnunC%PV#kcAoeDW6@dpIr#+H{-<$*Y`?(x z1Ec@Boc}{;2@9GS1C4+24z~aE^eU!y|JrJQ015xmr2ey%(9S;-(Az_G4;dL*knN8% z|9dF@)B{yL==c7rsL*ec{~tJhPx4QJ{2Q*{aQ#yV{8NK}Yu9hM{wW0hslmUs>;E#i z{$}i&+CVK_7pN)wGzSm|AR-_px|JWE5;vRBT3Kd}79b`gm#u zU?KsYU>o6JC;_mTFmRYKPn`fVXhISJn!@~*#r(?w0}BU_@C*?N83h$Opy~wx76uLu z79I`(0Unyagz`SlYc2m5KpPw;JOTy# zGb}MBL_@omlpH=t*smkg%G!{rIF*lajO<5HaH+XgXik2K_9w~yF~NNQwnn~?=+yHh^V;v|`9TGF zOQCFXwM|x5i6xXAj}n=ZGA2SX@15vQFUTD$()I)(cZcYuZdxg6s(CXUKW03iulH`qUXU_s zC{97`o!1U?v&ZNcR+%Ef$l}q*bG0F2D4{)h7DH0_(kn%C@$yyVz!N}lrpAD`Z1W@c zc5YFzK~q)G?vU#t%ckgw+{*wdWe$AIHh32t767)A#J|vVQfk&B(>+B;1^IcB^p=!@ z9hSb7k{fj?$r>jQ`VYBMD^0L2pUYnY`DQ%$>Sk?{S9qklWq>^uUu@A7`e zuQnzmy0_JIFJZRo1U=ZRKrw5^@)D2Gzn0cY+D2(37#^+;rnimUUf}1mP@KM{>(!n| ztRf<*5pEKmTe-v=7Vv72Q%19e{GLKM&?{%yiR4r&PjK?U2CamO;)aI9o*06NL+ZbRTBM+a_@zkj zb#B7jdON&>?1#7kTc1epAMk;Pz6~D%=$)%g96@T2%};xCq$f>& zb!m!Pc^=60gW&Ys!3(YWUX7P^@B8P5h%v8R(5r-&{Hu~xL{EqVraCz+<1R0c8TYV2 z{WO@p8rF9VaOAjsp0=U{J)~I@s!JEw59>2pop?1^S~GHjxY2sOeoSB((NhoD{eqj) zV(pbqU{Qd-P(Vf6A}ESwW3avPv~`bi(2hC?F@`G1-!SPT=g)+F`b^&ZvOvgpOLdn~ zMeyo@SvN0vQB$LuDb-q8)I#D?tPrS~{pVrT69C?lP(G>eGH(Tzfo?@}JbzvwTMc2+*8CZV{YfwkD)mA7t&W){fRu?l+Hw=3$aEyF|B(c z+9K%JQEQUp_X62%c{@PjTb;|v<2??oy6VUPN)5e*_xy#)w#=`LkLvyAL zOe_z!j4Y%=2~riEYb8f#Z{>Cm%ARXUy(c@PVbXMd0{A>i#SX6MDqJZ|fVsfW6<6Ba zvUJ5EA8gW2orvP`Fv~M-)X5KN)sZ@1_44zLHXSz?fFXvgU$SPbtB<<|KL**RNF}|c znnx8&J9yF<>Kgs;^o ziyqdDpR1?e1t#Irr423e+PM0)-!>{=t6jYbyQCgvUayLpler^LVA=kNjR)xRDa~s` zeBMSyeoKR+{wK{cdTfDjd1G+RCJPh^Fs`<^z>nXIH49g^a^R@w{o%0gy$>rx&L#>$ zSxgTi{SMtX$WiFiKmKpE6;It2qN5kCVW%1@17FU00%rH@A9oMTHI4X&Tuq-R8HcFb z|H#cs@_)x6!v|1%J{;!BZpH6YHNantSJYIQ;+gRXL#lnAIhpqa(B{4kdjd>lv~1hY zO8Hk^)*T-f70gQE=5b$4ToxKdO4o3Rj&y(D+MI3H@~qodl+9QXdA6tJvF+|$E-3y4 zz;cf0av<7iF+x+Ca%Dv5Q$uq#OiE4U8+684W1tC5eS5rE;~0d@F=$h5kulNyv$xd? zJJqtI`b0mpQI3HWZ=}-0O6&>1&NPrm=U=x@uPVQ_KoI><7^33-1kiVxmmMLv#S6ID zF7|wG?zB>7*-RMwzJ8o=75Al$?;ExkYOJdB1w6~4Q7sJX`E6;}B{IiHfkg)&SR;!< zmu6Gn-o0FWqo>@9Su7JG*?K>HQ;xS-^|E`Bc8r^A%u{Z~0{-+xguHPs>p(^LjrnFi zy^y!0?K~;_;D;wbyPYApyCi4#R_V~D@`eC$Qo5sC1UFqVQBAn!2JPA@b61PZ=fnAf zB`3+gvVw^UWy@mxG;uC!FZnT|o?n*ZMPk-<_?yY=kqZx^RbWw5yR=j;IkDfqm29F5 zmKt>7BijGlm`q_FpIHn+#o1x_aRt3?@4abD$$B2~7nR4}%gc(jh0A?8(ja?Hp+@-; z2xLlp0({C)sb7;lPRXMeqHVM&GQJlV`6hA{#J*-VRFnon@ql4DgSmL<9bOi_`i>rz zNL|)JB*R%~kwNoq8Kb*y=~|)+wb%)avwP+@$)wLXAp%E;EOK(|=nZq+-djEo!qo52 zVPefZa$UX+_*ORDYyo3-auh%rpBAj?d+Nkz!OW}Mi;>;y$KzG@7RpTV<=&&1FwUfn z*bYm(l!f0ejT5Brx#O!goJuB~Mj33&SGhsh7~ipP0h?FXvuB4LX*($Hcv0G$_wSKJ zMUJVY?x}!PQ^1m7CpyGJHFgQh)Ng7LkR_*4HRqxd4U2T{#+ZcF4^V)_smCH`Uf6pL zi;YL{e@B}*MhuAeTLLZ3hM~LcM)$cp?A>jC@Fo#Z$(~|%oJo{AUQA&t$yh1ek5Lw| z_vn8DIE&~ImyzJ)r5aA&i=SDJ_NDI(J^@&H%AWw4{X#VHihYm!<{}3vF*SxcnmcMT zpzPT$D=^tY5H(81__B*|(>5HAASX`&<-BY22HUYXZ8BC&<>$-(6jQ2+>)u|~;t;6k zWPm=dB>G}eQ)`#UepY|3%fXuQAc`OY$ahYDY=yW_*b^vhO|m|5J~E|P8^_rxvJ+D1 zZTR>jaC;fRl$rjKf1~EOCe+ZSeyp$xnS#PB=<=uAI*|G;>eZFH~zu zWmI|>{DDSeYLC&6>`_Ro-mD?hN-1unN{;D*M82q97V+U!UcazNv3(Z3iac6vq>zn< z_={PMnv-x^S%i1MM{bK^@Z*a_ZEr^}eXY@9Lxelo;PWsrJK|4P`p4lDuhe^Yt6A@K zziVz(*f7XJrUEu(sUEOHUktu;=&XjEVjZW|!WHcBo(x{EDq-F~^Qw@#r>kccv}~~+ zMcQ>DA}|Pn%qcf(-V=TV$}*-T7wptGk~&A{YAs1T+<_(~?#C1A{w3q-A2z;l)b3PD zM_10O1m>*xT3YNFyIbNZ%OESlKWW$ArmU&aL7$qYGXst}kI#bMVc566LzIzlfE-6y zT|rLKjzjz5u1qG_C~L%zK5_7osUpsXSGbOzJve7&>{z&GH5JAwUP~YPJpqWhU`F5L zxm4GC)ulXc5?QDhMoVK#ty-ZzzPPG;0z|ZY;hsBoPhUWlcmnh}g{E!za7XH% zQe9nV_mO_GxNVP^lP28@#$UB(b^UHiMgrh)?E13(_${q9?&Pl1j?ivmywu1#^HLEw zo!J758|AwJV+f4g-y8uPz1zpJx8+es@9Kgk7b)Um)lmwr6T0F$M|YK*NU#swHM+=4!!)YX5k6oE-Er_;GhLm4BY23rmh}otWhx@Zme~nJ~O@> za_dPCq2C7-0qFthL4RxCKZ?PdkV5wg;vbrE$5fzE~OI{5OpNRjddPl5skid(xtnon0GITqNm!eP%=t_gFV z07ypK4jFs1n+YBWO}vaE%e=6nh^1YQU*93}Ua}ErLVBu8vUV+iG#iOx6t{guF;9SA zM+o@ZckJ=CH&%)$urF(|%Qj;P%k8byh|FbiR1jbjY9Wdo-wRsC;Sq|FDCB`y^24u* zgI+v{V`|50g~nzfCgAsnQ_=eZ$z&mvZm7?coczbxo_2|HZLR!XdE|8|HGB(V+oQm&0 z;xE6i$UWyI%M{Eea;G@?x}XijTyf!GhjrN&?qc4JkbNn5moP^1) zF#U*Qyq?hO2MUua-q08$T=F&-tY;h=A2SMwmx&2mPuN1!A#i)Vi^O#)i;t~Rb*zP% zz8WNmY;A4r(P4BBEb?aq=R!aE$=>lb@L^UBtr41pl%Wn7m>l%>;rDM* zVYJUq=6MwCxl2}Fs^by9FQcz7`;s0eMs0Zc)!e?Yse7$WrQ3pFbVLFhp!9c}11a!? zr6<6#f#G1IvQoQX`XFnZZ6sl_PlNr88f73t8ik{uV~wutnd7-SQJ$3^bR=O3lsqams7dpMY^DwVa)Ysuq6(yAb}@^!D%XOPQcnMXiGFm2m3bnH=^HgO zPCF;NBm#kKtj$NiA(+X|CAnnyQMXqz^it7AvD1Fc(swzRc_zR_^s~&eu{Fm7moaN__unw=M6!lxd5)j4Ci93uCu*lk$<`~zw zkaB-lR)iOIB=lLk4is5IlS^?5h3Jke+D>)PC|1we;Zsd-on+H>>Z1u&O?2qXqd8YE zSwSi_hLJ5e!@1$UbC9nwfAoor?#;O_=(63u^=jADo9W5TDqqN%U5#1MXzY6Z!x%o~ zu$4sS5)pt~=t;EF!~+%{cwHLiefA9}OGKT#?0(O(v`U0vTT3$iQhmz4uneBFQmuS| zq}1Uw-b8}og^>M*>sAgoa|+{Vv^G$dd;ZF@Kguhi-7VwGHxp!v z4KQW@PTO%dSxz8|`hlaCi0VHBKdZ(+OR!OQUSSs%EV?_ZNrK1%r%4l1k|pdac2gL~ z8+D683C}mfLFn<=&)7W-nFpDqL*~nWBuc82IbIZ%pzif_Y7s8VSYOJ0ik0(7^t!vx z%dihiE9KzGL4>0sM#265LGAfeAnhcWMwp_B7wCPq0V>T4!_`}K;s5#sD7Q`BPpKNZ zCR(NGE=%9z)nf=79g^qu>b0`%4+X`cY}wH{8%2=LV`xRU>j~G@9WPvFtVtj2)A_x_ zjchZ=j^e}(C80v%<%;sWrjX*JhIu`8SSut_62BmUZQB|7I+)lZP4$HVJqdusA6Q!0 z2>Nb`0V1h7bE|RT(2~NgK7F&t!QdP^@fCm0f({*qDl%!D!!?`XUd1p6R1+JDs-vT= z%UmY6$yL@(_TlZbjv5hmI+8&0Ai(x^Arl7SHZUc#TFoVjD+-J$ds&|O^6OnYL;M?i zOkZzFL0ES<QWBCys<3|sv z2(mF}ar7UIa*8-0m)nM&NqHB+vIfa9DMS7m^cFYIhZHq2c+7@esuCQ(6O3;6xKFH= zlBLzvDWj_(vUg{y!C8%#1haxKcoF)xsDg9@*PYxy#GTGCOcbru)Wa7PV#Q;YjeLzj z$4Db~+{&xbkqU0K_R4fkd^5(SQA8KE=_*o5o#=qS8mk&6lqh}k?T9=ngkpKKn);+A zaCK7h+f^|wFYMId9aoF_%g9K~RPa}_>d~1#ID%FG{QC1dpPie;b2ULd<`MHT>!X#X z1%$z+>2zV0L(tV%h6*Adv>bk7fXuR4h2s+8Y|lz4@J^>8z^Y&>hDx4sbQR2(@k&@n z3@sDT!anD7PWf@qI6u9V=A_yWCp2bMXV|``En$&Kj-i;=ppllb%=gT=%G)NQS!@(njWj zkgdER2vJ>5*#k`7Cd+kB$>IiKiBgkcc`oRomt4h-&sT!$20ON6Bj!_TaQoI}q1Lx6 zcrp!Y{K;-kC6jgDPJAPwN^oiv-+#M%bn{C1f;7I!3U`qcf^qG?pMA!4(NI-iRqcwa zT&$+bI4ZL6L#pINbr@;SMVRvEoN5YR6!M|j9a$_Ai%qc_?}zB9HWxde0Ai&FZyt=j z<2wC;lcKo!+7WIi68N$KlP5qh!&kCgrSqa>j@8S}Uf~?0YF?tx7O{r(w*deXGTY}4 zDI6yfi(d*Y>Yb`K6SJi9xW4adWy(`CZo_DZVvr5pP@DG5lfx>$(03iXgX`KH?o>yM zgqTR#PhP5(>#WKjQrlvp?!!oGgrIZ!x~b3I&hXx%FHH^gSVhb*Ks{J12(MOAi z`vkBQGqqwFIfZQHVKU(;c%QUhgP>rOB$8DxRDFp zK0!u@{Z{6^PXHrTwH_h6AZOG#i}WDT|MAF0)|~)m)fR{ivtfN4C+?C;KQX< zEh)(^O%B3{GG-yKK(NV9>1ubEO#Lsb))K7PQf?zW7pmX zg3Obk{Br9Wk4Zx;EH~pS89oAX<6=(DX4KItAv}2x7CFW8YNE!;T0bR^I-4xxxG3eH zQfDv2B)y=CNL?1}SU-3F|0vvTwr8xy)AtZ;owE=nJ8TVM>MW;#x7{tN+#<&Q5E2HQ zjKNN*B?aePztlOt*TTN#B79put*5sjV=$$xJ=e|()A_FS%h1HIlg_DaUF%MxNV+Av zmCNlD;4^jg<49AOfKyGSnMF}rNZEVzRy^tkcB6uE0AJsBZqDRtS-Y!W8)0^q(<;*f zaCdU?a;LDEt1hYL(7XmQuKhSiK!G#HEdNRbExWEXT%NbLdaI*iM|s{Lp3qGff1oA} zKESw_UnJC>1e=BDv9f0U2|xi2&4oSzxNnlIYXUBk!5URfC!c^Om@_+Pn#{N_`(D*@ z!eepby_tUHhr;W%7Q2?@DokQU*H%9fkmd%m%h&Beh$(7wnPoBPi6uVhH9o5_z>M9s zOW1AXcM!b23Z_Z{QOkL0@vW%azp?yat!?S|)5eUCWIE;Ir_uvN-{Y>!n&knaO=?%{ zDcn?df?EMi1Gy*1mMd-6#C7u4TfC;iEXVfIq*2Buj=-QM4pBW2Z?Er6VF&>{^4rf7Qo$BpV2UF)!1^yZ#Ax_!~9 zWG>a4dT~*mGah&_EWR_@5JV3bmMC|kkhuB)R{6Pq?vcyQcQ8SC`lz9W8%kiWWN6UA zlG+G_29wY%M2^F@txRe98fx84YU^qlDh3mzSoiVhECz_tlF;m}^n!3dx;SMtc>(h)_540dc#sqo_8*oVmg5R!w)*h>sp=Yob;vz1V}B}A720=S zu0E5p&CD<;gJ(kXY3u9p(0Kv`vYMyrotQWbQhxy#ND(t0N{7ma7FfS?fBvHfuHogP z|KY)dW$I?jEBB)Zi>dV={P#EodZ7B^G_LA*uD)mQ0+nl|*PUx>qHx}X3by-v<48lB zlUm{? zFVy_g#<9U;fUl(JJezj*TrfsdL*ESCoC{Svb=q6@h-&a9HEi-+Gh{U5d+oZ;)1j*?YvA>cF;AwD<0 zjSW?*fXNq``P#NV@^e9tDKQD!=%w3IVrp-+$+YtFQSUjhUG|Q9SJTF)Xz54$IST6b zC5AqQpqX`JJ}TPGMU)e|neK2fZOlUqX?=b9f(&zj+slL3E9ndsC}PZTM;{L0EVr1p z$5m;^T9TgtY^S0ZW4C*cA67p!auJ!=iiKaQ!|kfhT}plncY26oh$Tg)7WR> z%aJaE>eAi~Bnqdcq~(65YxbJ)5aTmjp5RZO&(Siu+H;3sb~b8>&_w+1g|y!Fh?_WT#7f{ zRlM^NJE&it=#KW%`R4)GTt#wX6(>-ve{F!JeBba^}w?arEAV3tvEkNWGr}d|Gr=TANlNmy#_OQt^X(~LhuBbwiJ2b zotcu+S@MVauf`{-4*?lZfHALR$FKi^^N$Ts=Usu^;NP1+0St4W0Ow2Qx-<^ncu#=H z@NUQ@VfYh3{?ZX<^#6y=|0Znwhl2h=g#RY&{+F_$Q{pcud3uc^@6gF>Y~2`VEw}+d zC03C}L=j*N^P?jfeDef&ad1$0$jVKEs#(Ua$$if*PfT-|_7-e{Ol6R3N~3RO7)W9Z zGc}^Kn739$C7Zk!H=Jsnpod!{y8MM$3I*L>Pm-FxTUaHEZ-^||Q=7ZT*XcUFYP^y~ ztDoNF)zEhN=S5Lm30K{5zpAN#;eLBW0t7EscLW?MEl$>8$H^(>S?RLqt&R^i)S|$z zA#inNNoc%$H`-}if{2BByXpxWRYO@0x!Rh;SaZ;QIIC(kAOsidb*{gpLuEMwm5?Md zZgGdX@xKd#{4oS**YdK8#6{tF;oEW6?#!;bRtV2X@6W=Ihr|8iu>7qAdm6&rCzn~g zK9zIO(kPvWfWzIvDu(&?@^2KPa1>}r@V&c9VS`~3sJabv$1Up^QedXXz+5Gr>b$i% zAx4i0LYpiv>uiL_(Wc5Uo}ghy{6mC}>T!y1lEtD_JIeBFMXW?5dK>BWbaJ&}3u#CV zhlHX5RCt2{7@PFU(p&u9^z-PkL2DoG4XSx=gZ1P*^5;oxbcIJpnJm^K6DcLR%{@(h>H z&svVQfz#b$Wj0?2Wj-&${OWgRPgJ9|FxKc{oU1o2^^lmSt!Ww3mt)D%v&UdZF8DH%B=^TmSg|+}im8Jv->^2<5t6TLf|2c3#_3YqKC%Xhhn2flxWJ|1LQ} zT@~ef{^>$1Y{oGplthrpgtmHuJ5=#q%QzbDmzv?zjJgP{ZgU9=A&2*AqHG zopUXwXz*t>mWOzp*qD61Ma$RAQs!uOU#MIO)HK#vcR#-`BVegK;G<(|C{WfEV|*X^ z^8y=C`Nw)C^%OGfJzNOEA=g|%=`DQl^GsVeSu|d(H=|5PaCXl(>X(yDf&vv!ns%;z z@^vlUqdHbB3R%s3dHh9{z|?k)U1hZ!A>RnPVVBK59Ukmm!;Kx^J3cmH$fVcacvET3 zwAtRK_!Vi$kVG$apdEMW?P7PI`cNAXh%?Y{Xd~w6@OCY7_zu5q@RM(>tEmm^7C7^; zwkF;~vu4Z>EpEkn0`LgMgcF-QwuqcUY)i790L7`BVf_`3O;mThN|QE?PXOLK9 z6uJv1(XS_TA=;1xqLC+n9%S7KTMa#MwYE_#cTszK$KAKh+>X1lrh*!Tm-uquL_gKT zv6n*jlKO?{;;&*Z-@m#%Ov4yKPQfA}SA^CR(_XL=0i%3^SriQ-!{nx41sev7sSW6P<{aW7d_ z;k$Angs4>-B|z5_K(O+;X`CT+16I0~BS2ZHzZyfK7Pnvb;vSm)3sh@?F0?bYI??J8 zftY!=Zd>-E&fL6|G09C+b#<6i08fmn|sc*zvDI#*6T$+B<4cHu8_osJog$8XXE~^##aYJZchM} z20^cV=f2Tm^VMf%4jG<86WsC~$6CW^vM2NYYSXCnECC4aFUK+8J3aw$Kw8epTbkF| zTisC$Iz?5LJfoTe6mcMLy#AzpBF(x|Z(7-fEOr*i zcxTPe=G}T*s`2=v;&7&h=>7+of)}2tp_#*S@*mOx+y;pL#MGkC&I3d@boY;yNlZTV zQ%6P3)B}cvdvSy`74op4S3;R)V@k^3>*M2P&RlHX`TPuFK$+jtxIP>>*bmOJe4ayd zG)<<4N;VVgHOI3Ci4R?;UG{fz>6S;;hN7)M^-TypJ!plygw(5`<92-ZJz;SwX}rK( zU%po?0j6n~LCEKDa<)_*Yrq8>%4BxlTA~og?Jdrj6VaU4D~53}OB5&0H!7FGx`{+2 z@fShsumUHdP8K_RymF%=6;32(d&6gtDmJwvn;&i(H31}b!y>yb=HX3YGhD_emb$J% zUUY9q!AFn%Cs`BoEU;ZRy5ga2>*`cia4~AcCs9b)-c(kc+X=L(T)>`7W|dv%%PYL4 z`iJqi3TyGI5nj@1J758CilrmqE>lFsiEe0UOmcI4zTWlh?nS06;ot$u%uAR)$J2C_ zOrI#R0hqz}VC?LwRehxSoiSZ)Z5=r;l7+&$&?xCuii{YCkPNt84i02|E+GVm`t-)t zweC?XZ~9{o&}BkVSfU$*UoNjYlXrxra(+c8xeldO8aoAAyHD~geyu@B;jm9#e%yM$ z3fHuB++4bo*Hr8SJ-V)a{tw>tb+$3u4tEkE9RC%49EsHhZf+tLws%!!vD~h#Y`9!6 z&G}K%2GB4=B4Bp20=XOH3w{}sAE6#KV72lHZugx9Zwd+YamiGKa$uvh8m#DA4EtlK z=PKJw$9L;d^DIao)l)dIW6E^1@^~O;<_D>1z(?joVq&;vF(z0fL~?rgl<6+#uSy1d zs1Sd(jCNp3AS9Ql!}Y|Cv(F}{FX(ymo41A1k?LUnySc<{(1<6u(#nFi9Mj6)vvDl0 zm)o;=)BXO|OMGXE5V0^x{yp6TY?LWAMyOXezjH(y;~vZFrWOVwe@Wj4AMiHB7X}fY z)RlbF%x`6{NJMR%+e`0}=|J{@^2_4l^jv3TSA$VLouv9(A}>i^6D`#>Kw@R)#*O*+hDYoCj_VOBPTpf$MqwPBz7a^Ducp_{G*MmX z<&dEwO?5?|SR8ph2Hpch!vT*C`u8*4mU;+Hb+waerIVv$vQxdl(25zi@~r_({s7%& z+I3Yjj%FlkW4^p2Ph_ye>VbfIzAcMhXueU0NS%Z@jBC~iZ&9MgogNbndM8KpqupaQdP?xMVE|yNBa-6%eX|xh?DMz~~HHPOkm)%YI z5yfQ&=4raga?*M6P!MjSn>UeH+tSwc(N&T}$w#nbfiAv+FV==&U6r=A$)4;A7yzSab^lELw~216j;jS{TT0nvEL}i5+{~p^^RPm3P4!AM|#Wj7j}z zLq>8R)|kH1%CA2hMc4Av2~W(7NX|jDxNlxPwh%p9Y*ZehSUxY%-X(=*cP>C54oF8A ztoOZtB$~`^a{5snnjvL`=JU6ob(`jNU|O#{*M8%rGe~n2#&@{5^o?b8mNJ;A**Z;; zpMY5bQTB-byP8^Ao0UGAbrl)bk`?apwYN(P{aJBMTJWX1D)L>;*^B%LJVuA!-fnrv zW}4&MYrpn5Ek=dvU?3whE=wD1sUWLVHgK{Fn*}G}!o`g4i>C-{HP>At>WX3RPMkid zDtYBBqfb&&UA|vaRsfwqnveWsNcI{_hG%}sGMFcWwd7fzlc4h)RYYf+8dtd6bc3p- z9Q%;Wkn6rhn#IwBBP1O$zh>a}ZU`3~7&jbD?{pq48LqCYC7@)4me$ppoB?uKPP3kF zXF?090EkOqw9m^w>@9|+?IgOMy}sdhI(Y(MOJoGzQO>oGl|-Ua zoVwrp`V;}{$X=s&1%y(K`?~qi(#$RDEkU)!m5sC2eiARrk&KBcwXkswKYBY`I*VD| zYkFGQgkmM_)?!}5*XlHgJ=2U zZknYv(r!pLDzjKh2W3}~KMi7_rPpzpTIrSlxOyePb8u$DR+Bfx8FF=wQzC&XVftYG zC{5aM`v}?mV{I(Dw%&1Z&MJZ4(4CflB|j@w@`3!vJJIR>6M^7L zVI_m^&$p#Qj*l%x3bJ6>n?;OCF17<=2xv*sW$T7)x3RBrp~1x=EWUSG$GPyqY9+Kf zV^#aWXpszK=xT%1Y4V)iyMH%L#QD((M;UfQ!HodFulO>Er6$7VjPF3d^@_0PbKwQD zjbox~Vdj^jjq1@LeF;L6MdkUMMhbp-_%<~v;?3%Nu{4NHagy-Jx>w-4fU85BrHv@( z3;ZGXv-2X$&3iUzu{v4E6JVd4>@jhF`(XX(>@lL~MtfbR_}cmOPP=rnQeKwnx$F>w z^_hdE4Mi*gPpq2gwiw!H@n@mKHA|i2g z`V8ZfUQ8*;&T5#WW_t>?RHTXq9d)8QWM8{YYihHE^|=1vcmrP!7Km5vCU}jG{(c=N zyh8-_z>_^stErHbBzE>^O$?_6W6d?W|6p%4LVzgC#=6h0gYE_PVne{DqQ9fawWKFQ zjzx>bo#M2ChUY;d?^^SGlDAn^ZhE4N3p8fS@Q+5X{!7OFr-TXrOE~{S-0$Da|1U_S zqwg;$c8L*yN4QyKXJ;D=_Tno3VG@z)Fwok!h4LLHrMb=i;w?8B#MYA=+I1YGEo!ciMVPlD3jGRk@QMdUuL}P{5erS;9>a#loD`XluVy2TVV0cG~XAENhG->z-BHP{3d&5JD^c6oVj zqio!$&EB(tu|vvy6~@sH{7DdK3cU4?MSg(A>;70H`Cmh)6-(sGuN=H)!7}kv_5k6I zs^8@?sFbE)csg?>me-Cplz9i8J!k56H~-Wql-HbIzffIZjMFlEK4^23MX}IW6+;&p z?^*5O+duc7)j6*hI4jaw;H5mLq4W@G=akhNhvv9oCJ?L^TF%S0pH~4=V@5fyrE<1= ze~vYNXi*|kah*jn`K5TF$0}!WIOB$9C??OVcqU2@uCo2rdsh6GUg!L+lo&5TupMn^ zjy%{Z%Mx$4Xr&68Jf3)aS&pM-W|rDd^g3TyR8kPYp@`D9>C7$JA?v5mG=BKqjo?Bc ztNt55JQI>}AgWL699D`$pNQCiNchoeXc3vH+GP5~%eS$EY(AekJ56P9mHp_|LHzGJ zHg9AAJWBzBV#0N#X*ds28cU#>P>=(*N_@sVjt;hczBJ>m+dHw|gV$3~sNO1)8mR9$5maGoxu(L$E6TMpj=Y~C3-sVl>z9V_8TpvfuBX|2Uw zt*|_DU2P?8J_=+P+U3y$&uUFk6m&O!fSG@Ot>a^Z&c!T~Z^d;qPkBAF9_grcNwJee z1DZlQE|T8Di2hZ6XcPKcRgAs2{#RJptKiz)MZgDpnBHf}AGM%=EcsRZOqgR&TTs_+BV>7(cK-H5`yXXY>->5<)(^Q>lC-C1E?>n4fS*4}> zXSdbMGCl&z8iLOEfMFT=3yV_3 z5bHYEQ4KYoC9+t`Hxi7{fTr_$k~uky@`5XOl@RWp{A8nefu+*Wi41WxOSw=(_sT@{ zfWMf4ZxWwj>sqn97Cqdzieqg}xjbF*Re6J5U{rgBe#^|PC?!jc^*^k%>ZEZhl5)JYUzEk&Rn#N;~8cW&T+Y{`}FBW$wsED4vf#| z9-Xs<5$F;uL2bY0WoTIT%*-Y(O>2kh-3zWL)-)HI`F3R_v}M?5fE#b6w&BTgu2dL} z9d%r~J2~aX^3j<@h0^*+LLv?^rOHp}bE-kbmmlDIik!IKRX#RYU%~XVb=)y|u<)?( zz8|l=3*{WvU}Kr3VvtF6{M@!?LY_p{5Lsz(F<|{j3cAF_eYK+%n`7u;$kNf~MVv?7 zs<5#x$&pczNA0yiw}HsNeo?7Z{n4mxB~w@N?Ks$pY3^=;hhbGF=k#kY4WqVeD2_c3 YJwDvhFBSj$k$}G!A^7jm|1|Ue0Z^AhUjP6A diff --git a/es/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG b/es/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG deleted file mode 100644 index 4f89d1eba8cb401075f9420d73c697b6a30d90ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25238 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 WNM=-^!>@V^#1?|F#WM!pv~*d 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.d(t,{Zo:()=>p,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=c(a),u=r,k=m["".concat(s,".").concat(u)]||m[u]||d[u]||i;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=a(7462),r=(a(7294),a(4137));const i={sidebar_position:2},l="Securing webGUI connections (SSL)",o={unversionedId:"unraid-os/manual/security/secure-webgui-ssl",id:"unraid-os/manual/security/secure-webgui-ssl",title:"Securing webGUI connections (SSL)",description:"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.",source:"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/secure-webgui-ssl",permalink:"/es/unraid-os/manual/security/secure-webgui-ssl",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/secure-webgui-ssl.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"Good Practices",permalink:"/es/unraid-os/manual/security/good-practices"},next:{title:"Data Encryption",permalink:"/es/unraid-os/manual/security/data-encryption"}},s={},c=[{value:"SSL parameters",id:"ssl-parameters",level:2},{value:"How to access the Unraid server webGUI on your LAN",id:"how-to-access-the-unraid-server-webgui-on-your-lan",level:2},{value:"HTTP-only",id:"http-only",level:3},{value:"HTTPS with self-signed certificate",id:"https-with-self-signed-certificate",level:3},{value:"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable",level:3},{value:"HTTPS with Myunraid.net certificate and with no fallback URL",id:"https-with-myunraidnet-certificate-and-with-no-fallback-url",level:3},{value:"Redirects",id:"redirects",level:2},{value:"Unraid Connect remote access",id:"unraid-connect-remote-access",level:2},{value:"Custom certificates",id:"custom-certificates",level:2},{value:"HTTPS with custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:3}],p={toc:c},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"securing-webgui-connections-ssl"},"Securing webGUI connections (SSL)"),(0,r.kt)("p",null,"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/remote-access"},"Unraid Connect Remote Access")," using wildcard SSL Certificates provisioned by ",(0,r.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's Encrypt"),"."),(0,r.kt)("h2",{id:"ssl-parameters"},"SSL parameters"),(0,r.kt)("p",null,"When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Parameter"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"servername")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Identification")),". The default value is ",(0,r.kt)("em",{parentName:"td"},"tower"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"localTLD")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"local"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"Use SSL/TLS")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"No"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTP port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"80"),". If you change this, add ",(0,r.kt)("inlineCode",{parentName:"td"},":[HTTP port]")," to any of the HTTP URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"http://tower.local:8080"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTPS port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),' page. It defaults to "443". If you change this, add ',(0,r.kt)("inlineCode",{parentName:"td"},":[HTTPS port]")," to any of the HTTPS URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"https://tower.local:3443"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"certificate")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Refers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"lan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"wan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"hash")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued")))),(0,r.kt)("h2",{id:"how-to-access-the-unraid-server-webgui-on-your-lan"},"How to access the Unraid server webGUI on your LAN"),(0,r.kt)("h3",{id:"http-only"},"HTTP-only"),(0,r.kt)("p",null,"With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"No"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution."),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-self-signed-certificate"},"HTTPS with self-signed certificate"),(0,r.kt)("p",null,"With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution"),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("admonition",{type:"important"},(0,r.kt)("p",{parentName:"admonition"},"When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable"},"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable"),(0,r.kt)("p",null,"You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate)."),(0,r.kt)("li",{parentName:"ol"},"Leave ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either ",(0,r.kt)("em",{parentName:"li"},"No")," or ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"No"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),". Note that these URLs use a self-signed certificate.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your alternate URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate and with no fallback URL"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned below)."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"If DNS Rebinding is not an issue, the ",(0,r.kt)("em",{parentName:"li"},"Strict")," option for ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," will be available."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Strict")," (or ",(0,r.kt)("em",{parentName:"li"},"Auto")," in earlier versions of Unraid)."),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the optional ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]"),"."),(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," using a self-signed certificate (See ",(0,r.kt)("a",{parentName:"li",href:"#https-with-self-signed-certificate"},"HTTPS with a self-signed certificate")," above)."),(0,r.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," back to ",(0,r.kt)("em",{parentName:"li"},"Strict"),"."))),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"redirects"},"Redirects"),(0,r.kt)("p",null,"When you access ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]"),", the behavior will change depending on the value of the ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Strict"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under ",(0,r.kt)("a",{parentName:"li",href:"#https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate - with no fallback URL")," above."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," as that will likely work even if your Internet goes down."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"No"),", then the HTTP URL will load directly.")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"unraid-connect-remote-access"},"Unraid Connect remote access"),(0,r.kt)("p",null,"Looking for setup instructions for Unraid Connect remote access? See our ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/remote-access"},"dedicated page"),"."),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"custom-certificates"},"Custom certificates"),(0,r.kt)("h3",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"HTTPS with custom certificate - with option to have Unraid Connect Remote Access"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Navigate to the ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access"))," page."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of the certificate.'),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS for this URL."),(0,r.kt)("li",{parentName:"ol"},"You are responsible for managing the certificate. Upload it to ",(0,r.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem"),"."),(0,r.kt)("li",{parentName:"ol"},"The certificate must be valid for ",(0,r.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be ",(0,r.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server\'s URL is not specified in the certificate.'),(0,r.kt)("li",{parentName:"ol"},"As an option, use ",(0,r.kt)("a",{parentName:"li",href:"#unraid-connect-remote-access"},"Unraid Connect Remote Access"),".")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/104dd0b4.9393eea1.js b/es/assets/js/104dd0b4.9393eea1.js new file mode 100644 index 000000000..27cd55b8b --- /dev/null +++ b/es/assets/js/104dd0b4.9393eea1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/es/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/es/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/es/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/getting-started/"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/es/assets/js/104dd0b4.dec56907.js b/es/assets/js/104dd0b4.dec56907.js deleted file mode 100644 index 3233f2b90..000000000 --- a/es/assets/js/104dd0b4.dec56907.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/es/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/es/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/es/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"getting-started.md"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/es/assets/js/10869db1.80b06e87.js b/es/assets/js/10869db1.80b06e87.js new file mode 100644 index 000000000..952d189c9 --- /dev/null +++ b/es/assets/js/10869db1.80b06e87.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3563],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>f});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(a),d=n,f=p["".concat(l,".").concat(d)]||p[d]||h[d]||i;return a?r.createElement(f,o(o({ref:t},u),{},{components:a})):r.createElement(f,o({ref:t},u))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,o[1]=s;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=a(7462),n=(a(7294),a(4137));const i={sidebar_position:4},o="Flash Drive",s={unversionedId:"unraid-os/manual/security/flash-drive",id:"unraid-os/manual/security/flash-drive",title:"Flash Drive",description:"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.",source:"@site/docs/unraid-os/manual/security/flash-drive.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/flash-drive",permalink:"/es/unraid-os/manual/security/flash-drive",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/flash-drive.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Data Encryption",permalink:"/es/unraid-os/manual/security/data-encryption"},next:{title:"VPN",permalink:"/es/unraid-os/manual/security/vpn"}},l={},c=[{value:"Backups",id:"backups",level:2},{value:"Network Access",id:"network-access",level:2},{value:"Permissions",id:"permissions",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"flash-drive"},"Flash Drive"),(0,n.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed."),(0,n.kt)("h2",{id:"backups"},"Backups"),(0,n.kt)("p",null,"If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change."),(0,n.kt)("p",null,"You can easily achieve this from the Unraid webGUI:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Select the flash drive on the ",(0,n.kt)("strong",{parentName:"li"},"Main")," tab."),(0,n.kt)("li",{parentName:"ol"},"In the ",(0,n.kt)("strong",{parentName:"li"},"Flash Device Settings")," section select the ",(0,n.kt)("strong",{parentName:"li"},"Flash Backup")," button."),(0,n.kt)("li",{parentName:"ol"},"The system will now create a ZIP file that is a backup of the contents of the flash drive."),(0,n.kt)("li",{parentName:"ol"},"When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.")),(0,n.kt)("p",null,"If you later need to recreate your flash drive for any reason, use this backup as input to the ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Limetech USB Creator tool"),"."),(0,n.kt)("h2",{id:"network-access"},"Network Access"),(0,n.kt)("p",null,"The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"*Network visibility"),": You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any access permissions that you want applied.")),(0,n.kt)("h2",{id:"permissions"},"Permissions"),(0,n.kt)("p",null,"As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location."),(0,n.kt)("p",null,"There are a few ways to handle this:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Copy the files to a location from which they can be executed."),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"The location ",(0,n.kt)("inlineCode",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the files on the default search path."),(0,n.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding appropriate commands to the ",(0,n.kt)("inlineCode",{parentName:"li"},"config/go")," file on the flash drive."),(0,n.kt)("li",{parentName:"ul"},"Give the files execute permission after copying them."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"For scripts, prefix the script name with the command that runs the script (e.g. ",(0,n.kt)("em",{parentName:"p"},"bash path-to-script"),")."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/14eb3368.3f60616a.js b/es/assets/js/14eb3368.64ec88ed.js similarity index 98% rename from fr/assets/js/14eb3368.3f60616a.js rename to es/assets/js/14eb3368.64ec88ed.js index 5de541b9c..25852f8f9 100644 --- a/fr/assets/js/14eb3368.3f60616a.js +++ b/es/assets/js/14eb3368.64ec88ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(3734),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(3734),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(8259),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(8259),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file diff --git a/de/assets/js/17896441.5d44835b.js b/es/assets/js/17896441.63195e72.js similarity index 99% rename from de/assets/js/17896441.5d44835b.js rename to es/assets/js/17896441.63195e72.js index 4bf4e5f5e..0317e0a68 100644 --- a/de/assets/js/17896441.5d44835b.js +++ b/es/assets/js/17896441.63195e72.js @@ -1 +1 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(3734),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?["'])(?.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i<r;i++)l[i]=n[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},3899:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(8259),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(P(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function z(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,S.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?<quote>["'])(?<title>.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/es/assets/js/18d17e09.aacc5121.js b/es/assets/js/18d17e09.6ec93d3c.js similarity index 78% rename from es/assets/js/18d17e09.aacc5121.js rename to es/assets/js/18d17e09.6ec93d3c.js index 435861d23..126c7b5a0 100644 --- a/es/assets/js/18d17e09.aacc5121.js +++ b/es/assets/js/18d17e09.6ec93d3c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4118],{429:e=>{e.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/es/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/es/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Overview","permalink":"/es/unraid-os/manual/what-is-unraid"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4118],{429:e=>{e.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/es/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/es/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Shares","permalink":"/es/unraid-os/manual/shares/"}}}')}}]); \ No newline at end of file diff --git a/es/assets/js/1942e1e1.55c71b28.js b/es/assets/js/1942e1e1.1c6bd3dd.js similarity index 64% rename from es/assets/js/1942e1e1.55c71b28.js rename to es/assets/js/1942e1e1.1c6bd3dd.js index b2e211b20..40b4121e3 100644 --- a/es/assets/js/1942e1e1.55c71b28.js +++ b/es/assets/js/1942e1e1.1c6bd3dd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/es/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/es/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/es/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/security#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/es/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/es/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/es/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"security.md#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/1be78505.010a8141.js b/es/assets/js/1be78505.fe92450b.js similarity index 99% rename from de/assets/js/1be78505.010a8141.js rename to es/assets/js/1be78505.fe92450b.js index 2b4555c18..758818503 100644 --- a/de/assets/js/1be78505.010a8141.js +++ b/es/assets/js/1be78505.fe92450b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(3734),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(8259),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/es/assets/js/1c36a847.97768b3e.js b/es/assets/js/1c36a847.97768b3e.js new file mode 100644 index 000000000..60cdea714 --- /dev/null +++ b/es/assets/js/1c36a847.97768b3e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5289],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=o,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},7732:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={sidebar_position:5},i="VPN",s={unversionedId:"unraid-os/manual/security/vpn",id:"unraid-os/manual/security/vpn",title:"VPN",description:"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.",source:"@site/docs/unraid-os/manual/security/vpn.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/vpn",permalink:"/es/unraid-os/manual/security/vpn",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/vpn.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Flash Drive",permalink:"/es/unraid-os/manual/security/flash-drive"},next:{title:"Multi-Language Support",permalink:"/es/unraid-os/manual/multi-language"}},l={},u=[{value:"Router",id:"router",level:2},{value:"OpenVPN",id:"openvpn",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Overview",id:"overview",level:3},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:3},{value:"Implementation considerations",id:"implementation-considerations",level:4},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:4},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:4},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:4},{value:"About DNS",id:"about-dns",level:4},{value:"Complex Networks",id:"complex-networks",level:4},{value:"Configurations to avoid",id:"configurations-to-avoid",level:4},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:4},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:3},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:4},{value:"Configuring \u201cVPN tunneled access for Docker\u201d",id:"configuring-vpn-tunneled-access-for-docker",level:4},{value:"Testing the Docker tunnel",id:"testing-the-docker-tunnel",level:5},{value:"Configuring \u201cVPN tunneled access for system\u201d",id:"configuring-vpn-tunneled-access-for-system",level:4},{value:"Testing the System tunnel",id:"testing-the-system-tunnel",level:5},{value:"Support",id:"support",level:3}],c={toc:u},d="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"vpn"},"VPN"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.")),(0,o.kt)("p",null,"If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections."),(0,o.kt)("p",null,"In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki article")),(0,o.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.")),(0,o.kt)("p",null,"There are a wide variety of VPN solutions available both free and commercial."),(0,o.kt)("p",null,"Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet."),(0,o.kt)("p",null,"There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN."),(0,o.kt)("h2",{id:"router"},"Router"),(0,o.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically based on OpenVPN)."),(0,o.kt)("p",null,"Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN."),(0,o.kt)("h2",{id:"openvpn"},"OpenVPN"),(0,o.kt)("p",null,"This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet."),(0,o.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube video")," of use in setting it up."),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("h3",{id:"overview"},"Overview"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Wireguard logo",src:n(2602).Z,width:"128",height:"128"})),(0,o.kt)("p",null,"Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers."),(0,o.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid boot process."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,o.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN."),(0,o.kt)("li",{parentName:"ul"},"The interface is available under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")),".")),(0,o.kt)("p",null,"More information about WireGuard can be found on the ",(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard website"),"."),(0,o.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the connection types:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to server"),": Use your phone or computer to remotely access your Unraid server, including:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Unraid administration via the webGUI"),(0,o.kt)("li",{parentName:"ul"},"Access Docker containers, VMs, and network shares as though you were physically connected to the network"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to LAN"),': Builds on "Remote access to server", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server to server access"),": Allows two Unraid servers to connect to each other."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN to LAN access"),': Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server hub & spoke access"),': Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"VPN tunneled access"),": Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote tunneled access"),": Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.")),(0,o.kt)("p",null,"The following diagram attempts to show these different connection types in a graphical format"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Connection Types",src:n(1998).Z,width:"1000",height:"655"})),(0,o.kt)("h3",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,o.kt)("p",null,"This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network."),(0,o.kt)("h4",{id:"implementation-considerations"},"Implementation considerations"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren\'t around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.'),(0,o.kt)("li",{parentName:"ul"},"This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the ",(0,o.kt)("a",{parentName:"li",href:"#complex-networks"},"Complex Networks")," section."),(0,o.kt)("li",{parentName:"ul"},"Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this ",(0,o.kt)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from SpaceInvaderOne"),"."),(0,o.kt)("li",{parentName:"ul"},"If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port."),(0,o.kt)("li",{parentName:"ul"},"You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at ",(0,o.kt)("a",{parentName:"li",href:"https://www.wireguard.com/install/"},"WireGuard clients"),". Android or iOS make good first client systems because you can get all the details via QR code.")),(0,o.kt)("h4",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -",">",' Management Access and confirm "Use UPnP" is set to Yes'),(0,o.kt)("li",{parentName:"ul"},"On Unraid go to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Initial setup screen",src:n(5372).Z,width:"969",height:"314"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Give the ",(0,o.kt)("strong",{parentName:"li"},"VPN Tunnel")," a name, for example ",(0,o.kt)("em",{parentName:"li"},"MyHome VPN"),"."),(0,o.kt)("li",{parentName:"ul"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Generate Keypair"),". This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this)."),(0,o.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address."),(0,o.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network."),(0,o.kt)("li",{parentName:"ul"},"Select Apply."),(0,o.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP available",src:n(7098).Z,width:"1000",height:"61"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port forwarding',".",'.." you will need to login to your router and setup the port forward as directed by the note:')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP not available",src:n(4546).Z,width:"1000",height:"65"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port."),(0,o.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of your Unraid system shown in the note."),(0,o.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".'))),(0,o.kt)("li",{parentName:"ul"},"Note that after ",(0,o.kt)("strong",{parentName:"li"},"Apply"),', the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Key icon",src:n(6423).Z,width:"128",height:"128"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.'),(0,o.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Activate switch",src:n(711).Z,width:"562",height:"44"})),(0,o.kt)("h4",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Add Peer"),".\n",(0,o.kt)("img",{alt:"Add Peer",src:n(8169).Z,width:"866",height:"284"})),(0,o.kt)("li",{parentName:"ol"},"Give it a name, such as ",(0,o.kt)("em",{parentName:"li"},"MyAndroid"),"."),(0,o.kt)("li",{parentName:"ol"},"For the initial connection type, choose ",(0,o.kt)("em",{parentName:"li"},"Remote access to LAN"),". This will give your device access to Unraid and other items on your network."),(0,o.kt)("li",{parentName:"ol"},'Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)'),(0,o.kt)("li",{parentName:"ol"},'For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.'),(0,o.kt)("li",{parentName:"ol"},"Click Apply.")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.")),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},'It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.')),(0,o.kt)("h4",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer area - Eye icon",src:n(3939).Z,width:"912",height:"108"})),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer details popup",src:n(1967).Z,width:"580",height:"694"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.'),(0,o.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.")),(0,o.kt)("h4",{id:"about-dns"},"About DNS"),(0,o.kt)("p",null,"Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net."),(0,o.kt)("p",null,'Short names such as "tower" probably won\'t work, nor any DNS entries managed by the router.'),(0,o.kt)("p",null,'To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don\'t forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8'),(0,o.kt)("p",null,'This is particularly important for "Remote tunneled access" mode if the client\'s original DNS server is no longer accessible after all traffic is routed through the tunnel.'),(0,o.kt)("p",null,"Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection."),(0,o.kt)("h4",{id:"complex-networks"},"Complex Networks"),(0,o.kt)("p",null,'The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid\'s IP, and that works fine if you have a simple setup.'),(0,o.kt)("p",null,"However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'In the WireGuard tunnel config, set "Use NAT" to No'),(0,o.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)"),(0,o.kt)("li",{parentName:"ul"},"Gateway / Next Hop: IP address of your Unraid system"),(0,o.kt)("li",{parentName:"ul"},"Distance: 1 (your router may not have this option)"),(0,o.kt)("li",{parentName:"ul"},'If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"'))),(0,o.kt)("li",{parentName:"ul"},"Navigate to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > Docker Settings"))," and set ",(0,o.kt)("strong",{parentName:"li"},"Host access to custom networks")," to ",(0,o.kt)("strong",{parentName:"li"},"Enabled"))),(0,o.kt)("h4",{id:"configurations-to-avoid"},"Configurations to avoid"),(0,o.kt)("p",null,"There are some configurations you'll want to avoid, here is how a few key settings interact:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(this is the "simple network" setup assumed by the guide above)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(avoid this config)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and no static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(avoid this, if "Use NAT" = No, you really need to add a static route in your router)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = disabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(You've come this far, just set \"Host access to custom networks\" to enabled you're set)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = enabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - accessible!"),(0,o.kt)("li",{parentName:"ul"},"(woohoo! the recommended setup for complex networks)")))),(0,o.kt)("h4",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,o.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner."),(0,o.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking your work:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.'),(0,o.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config."),(0,o.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.')),(0,o.kt)("p",null,"A few other ideas:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not wifi). This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR code\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working from\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,o.kt)("li",{parentName:"ul"},"If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection."),(0,o.kt)("li",{parentName:"ul"},'Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.'),(0,o.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance."),(0,o.kt)("li",{parentName:"ul"},'If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.'),(0,o.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.'),(0,o.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|"," 192.168.0.0 to 192.168.255.255)"),(0,o.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot:\n",(0,o.kt)("inlineCode",{parentName:"li"},"/boot/config/wireguard/autostart")),(0,o.kt)("li",{parentName:"ul"},'Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.')),(0,o.kt)("h3",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,o.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum thread")," discussing making an outbound VPN connection using WireGuard"),(0,o.kt)("h4",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,o.kt)("p",null,"Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.vpnjantit.com/free-wireguard"},"VPN Jantit")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ovpn.com/en/wireguard"},"OVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://windscribe.com/"},"Windscribe"))),(0,o.kt)("p",null,"Note that any provider that requires a custom WireGuard client will not work with Unraid."),(0,o.kt)("p",null,"Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see ",(0,o.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you."),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-docker"},"Configuring \u201cVPN tunneled access for Docker\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},'On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"The \u201cPeer type of access\u201d will default to \u201cVPN tunneled access for docker\u201d. There are no settings to change, except perhaps to give it a local name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers"),(0,o.kt)("li",{parentName:"ul"},"Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a \"DNS\" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.")),(0,o.kt)("h5",{id:"testing-the-docker-tunnel"},"Testing the Docker tunnel"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},'The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.'),(0,o.kt)("p",{parentName:"admonition"},"Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel ",(0,o.kt)("em",{parentName:"p"},"before")," the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"When setting up the container, set the \u201cNetwork Type\u201d to \u201cCustom: wg2\u201d (or whatever the name of the tunnel was in the previous step)"),(0,o.kt)("li",{parentName:"ul"},'Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.:\n',(0,o.kt)("inlineCode",{parentName:"li"},"--dns=8.8.8.8"),"\n(if you don't set this, the container may leak your ISP's DNS server)"),(0,o.kt)("li",{parentName:"ul"},"The rest of the defaults should be fine, apply the changes and start the container"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider"),(0,o.kt)("li",{parentName:"ul"},"Also visit ",(0,o.kt)("a",{parentName:"li",href:"https://www.dnsleaktest.com/"},"https://www.dnsleaktest.com/")," and run a test, confirm that it only finds IPs related to the DNS provider you specified."),(0,o.kt)("li",{parentName:"ul"},"Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.")),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-system"},"Configuring \u201cVPN tunneled access for system\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN tunnel.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks."),(0,o.kt)("li",{parentName:"ul"},"Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled."),(0,o.kt)("li",{parentName:"ul"},"Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4")))),(0,o.kt)("h5",{id:"testing-the-system-tunnel"},"Testing the System tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider")),(0,o.kt)("h3",{id:"support"},"Support"),(0,o.kt)("p",null,"The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum thread")," on the original Dynamix WireGuard plugin"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum thread")," covering setting up incoming connections."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum thread")," covering setting up outgoing connections.")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}h.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/es/assets/js/25ec094f.9e09d3eb.js b/es/assets/js/25ec094f.9e09d3eb.js deleted file mode 100644 index dd69340bf..000000000 --- a/es/assets/js/25ec094f.9e09d3eb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9146],{4137:(e,a,t)=>{t.d(a,{Zo:()=>c,kt:()=>f});var n=t(7294);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function o(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?o(Object(t),!0).forEach((function(a){r(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function l(e,a){if(null==e)return{};var t,n,r=function(e,a){if(null==e)return{};var t,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],a.indexOf(t)>=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],a.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=n.createContext({}),u=function(e){var a=n.useContext(s),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},c=function(e){var a=u(e.components);return n.createElement(s.Provider,{value:a},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},m=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(t),m=r,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return t?n.createElement(f,i(i({ref:a},c),{},{components:t})):n.createElement(f,i({ref:a},c))}));function f(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=m;var l={};for(var s in a)hasOwnProperty.call(a,s)&&(l[s]=a[s]);l.originalType=e,l[d]="string"==typeof e?e:r,i[1]=l;for(var u=2;u<o;u++)i[u]=t[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,t)}m.displayName="MDXCreateElement"},1812:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=t(7462),r=(t(7294),t(4137));const o={},i="Manual Method",l={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Method",description:"M\xe9todo manual",source:"@site/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/es/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/es/unraid-os/manual/getting-started/"},next:{title:"Security",permalink:"/es/unraid-os/manual/security"}},s={},u=[],c={toc:u},d="wrapper";function p(e){let{components:a,...t}=e;return(0,r.kt)(d,(0,n.Z)({},c,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-method"},"Manual Method"),(0,r.kt)("p",null,"M\xe9todo manual"),(0,r.kt)("p",null,"Si por alguna raz\xf3n no se puede usar la herramienta USB Flash Creator o no se detecta su dispositivo USB flash, es posible formatear y preparar manualmente un dispositivo USB flash de arranque. dispositivo. Nota: este m\xe9todo solo funciona para dispositivos de 32 GB y m\xe1s peque\xf1os."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Conecte el dispositivo flash USB a su Mac o PC."),(0,r.kt)("li",{parentName:"ol"},"Formatee el USB usando el sistema de archivos FAT (o FAT32). No debe ser ex-FAT. Si su USB tiene m\xe1s de 32 GB, entonces necesita usar una herramienta de terceros (por ejemplo, Rufus) para formatearlo en FAT32, ya que Windows no ofrece esta opci\xf3n en unidades de m\xe1s de 32 GB."),(0,r.kt)("li",{parentName:"ol"},'Establezca la "etiqueta de volumen" (Volume Label) en UNRAID (distingue entre may\xfasculas y min\xfasculas, use todo en may\xfasculas).'),(0,r.kt)("li",{parentName:"ol"},"Vaya a ",(0,r.kt)("a",{parentName:"li",href:"https://unraid.net/es/descargar"},"la p\xe1gina de descargas")," para obtener el archivo zip de la versi\xf3n que desea usar."),(0,r.kt)("li",{parentName:"ol"},'Elija una versi\xf3n y desc\xe1rguela en una ubicaci\xf3n temporal en su computadora/ordenador (por ejemplo, una carpeta de "descargas").'),(0,r.kt)("li",{parentName:"ol"},"Extraer el contenido del archivo ZIP se acaba de descargar en su dispositivo flash USB."),(0,r.kt)("li",{parentName:"ol"},"Busque el dispositivo flash USB para ver el contenido reci\xe9n extra\xeddo de su Mac o PC."),(0,r.kt)("li",{parentName:"ol"},"Ejecute el script de arranque apropiado para el sistema operativo que est\xe1 utilizando.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Windows 7 o posterior")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"haga clic derecho en el archivo make_bootable y seleccione: Ejecutar como administrador"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"haga doble clic en el archivo make_bootable_mac e ingrese su contrase\xf1a de administrador cuando se le solicite."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copie el archivo make_bootable_linux en el disco duro"),(0,r.kt)("li",{parentName:"ul"},"desmontar (no expulsar) la unidad USB"),(0,r.kt)("li",{parentName:"ul"},"ejecute el siguiente comando desde donde lo desempaquet\xf3 en su sistema Linux:")))),(0,r.kt)("p",null,"sudo bash ./make_bootable_linux"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"NOTA: Durante el proceso de ejecuci\xf3n de este script, el dispositivo flash puede parecer a desaparecer y reaparecer en su estaci\xf3n de trabajo un par de veces - este comportamiento se espera.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/25ec094f.fb8cab05.js b/es/assets/js/25ec094f.fb8cab05.js new file mode 100644 index 000000000..c188726f1 --- /dev/null +++ b/es/assets/js/25ec094f.fb8cab05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9146],{4137:(e,a,t)=>{t.d(a,{Zo:()=>c,kt:()=>f});var n=t(7294);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function o(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?o(Object(t),!0).forEach((function(a){r(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function i(e,a){if(null==e)return{};var t,n,r=function(e,a){if(null==e)return{};var t,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],a.indexOf(t)>=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],a.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=n.createContext({}),u=function(e){var a=n.useContext(s),t=a;return e&&(t="function"==typeof e?e(a):l(l({},a),e)),t},c=function(e){var a=u(e.components);return n.createElement(s.Provider,{value:a},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},m=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(t),m=r,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return t?n.createElement(f,l(l({ref:a},c),{},{components:t})):n.createElement(f,l({ref:a},c))}));function f(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=m;var i={};for(var s in a)hasOwnProperty.call(a,s)&&(i[s]=a[s]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=t[u];return n.createElement.apply(null,l)}return n.createElement.apply(null,t)}m.displayName="MDXCreateElement"},1812:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=t(7462),r=(t(7294),t(4137));const o={},l="Manual Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Method",description:"M\xe9todo manual",source:"@site/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/es/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/es/unraid-os/manual/getting-started/"},next:{title:"Tools",permalink:"/es/unraid-os/manual/tools"}},s={},u=[],c={toc:u},d="wrapper";function p(e){let{components:a,...t}=e;return(0,r.kt)(d,(0,n.Z)({},c,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-method"},"Manual Method"),(0,r.kt)("p",null,"M\xe9todo manual"),(0,r.kt)("p",null,"Si por alguna raz\xf3n no se puede usar la herramienta USB Flash Creator o no se detecta su dispositivo USB flash, es posible formatear y preparar manualmente un dispositivo USB flash de arranque. dispositivo. Nota: este m\xe9todo solo funciona para dispositivos de 32 GB y m\xe1s peque\xf1os."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Conecte el dispositivo flash USB a su Mac o PC."),(0,r.kt)("li",{parentName:"ol"},"Formatee el USB usando el sistema de archivos FAT (o FAT32). No debe ser ex-FAT. Si su USB tiene m\xe1s de 32 GB, entonces necesita usar una herramienta de terceros (por ejemplo, Rufus) para formatearlo en FAT32, ya que Windows no ofrece esta opci\xf3n en unidades de m\xe1s de 32 GB."),(0,r.kt)("li",{parentName:"ol"},'Establezca la "etiqueta de volumen" (Volume Label) en UNRAID (distingue entre may\xfasculas y min\xfasculas, use todo en may\xfasculas).'),(0,r.kt)("li",{parentName:"ol"},"Vaya a ",(0,r.kt)("a",{parentName:"li",href:"https://unraid.net/es/descargar"},"la p\xe1gina de descargas")," para obtener el archivo zip de la versi\xf3n que desea usar."),(0,r.kt)("li",{parentName:"ol"},'Elija una versi\xf3n y desc\xe1rguela en una ubicaci\xf3n temporal en su computadora/ordenador (por ejemplo, una carpeta de "descargas").'),(0,r.kt)("li",{parentName:"ol"},"Extraer el contenido del archivo ZIP se acaba de descargar en su dispositivo flash USB."),(0,r.kt)("li",{parentName:"ol"},"Busque el dispositivo flash USB para ver el contenido reci\xe9n extra\xeddo de su Mac o PC."),(0,r.kt)("li",{parentName:"ol"},"Ejecute el script de arranque apropiado para el sistema operativo que est\xe1 utilizando.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Windows 7 o posterior")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"haga clic derecho en el archivo make_bootable y seleccione: Ejecutar como administrador"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"haga doble clic en el archivo make_bootable_mac e ingrese su contrase\xf1a de administrador cuando se le solicite."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copie el archivo make_bootable_linux en el disco duro"),(0,r.kt)("li",{parentName:"ul"},"desmontar (no expulsar) la unidad USB"),(0,r.kt)("li",{parentName:"ul"},"ejecute el siguiente comando desde donde lo desempaquet\xf3 en su sistema Linux:")))),(0,r.kt)("p",null,"sudo bash ./make_bootable_linux"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"NOTA: Durante el proceso de ejecuci\xf3n de este script, el dispositivo flash puede parecer a desaparecer y reaparecer en su estaci\xf3n de trabajo un par de veces - este comportamiento se espera.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/26113f5d.aeb54beb.js b/es/assets/js/26113f5d.aeb54beb.js new file mode 100644 index 000000000..02e89890a --- /dev/null +++ b/es/assets/js/26113f5d.aeb54beb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(l,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,o[1]=s;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",s={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/es/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/es/category/faq"},next:{title:"OS",permalink:"/es/unraid-os/faq/os-faq"}},l={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/getting-started/"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/es/assets/js/26113f5d.b2fffa94.js b/es/assets/js/26113f5d.b2fffa94.js deleted file mode 100644 index 83bd3e660..000000000 --- a/es/assets/js/26113f5d.b2fffa94.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(l,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,o[1]=s;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",s={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/es/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/es/category/faq"},next:{title:"OS",permalink:"/es/unraid-os/faq/os-faq"}},l={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/es/assets/js/277cf690.3285e9f4.js b/es/assets/js/277cf690.3285e9f4.js new file mode 100644 index 000000000..0dfa9c148 --- /dev/null +++ b/es/assets/js/277cf690.3285e9f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9821],{4137:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,y=p["".concat(c,".").concat(m)]||p[m]||d[m]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3593:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var n=r(7462),o=(r(7294),r(4137));const i={sidebar_position:7},a="Security",s={unversionedId:"unraid-os/manual/security/security",id:"unraid-os/manual/security/security",title:"Security",description:"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.",source:"@site/docs/unraid-os/manual/security/security.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/",permalink:"/es/unraid-os/manual/security/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/security.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/es/unraid-os/manual/applications"},next:{title:"Good Practices",permalink:"/es/unraid-os/manual/security/good-practices"}},c={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"security"},"Security"),(0,o.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely."),(0,o.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers."),(0,o.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are safe."),(0,o.kt)("p",null,"There is also a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum thread")," that discusses this topic."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/313b9001.b77b1e8e.js b/es/assets/js/313b9001.b77b1e8e.js new file mode 100644 index 000000000..3f8c05670 --- /dev/null +++ b/es/assets/js/313b9001.b77b1e8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[559],{4137:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):n(n({},t),e)),r},c=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=l(r),y=a,h=d["".concat(u,".").concat(y)]||d[y]||p[y]||s;return r?o.createElement(h,n(n({ref:t},c),{},{components:r})):o.createElement(h,n({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,n=new Array(s);n[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,n[1]=i;for(var l=2;l<s;l++)n[l]=r[l];return o.createElement.apply(null,n)}return o.createElement.apply(null,r)}y.displayName="MDXCreateElement"},3283:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>n,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=r(7462),a=(r(7294),r(4137));const s={sidebar_position:1},n="Good Practices",i={unversionedId:"unraid-os/manual/security/good-practices",id:"unraid-os/manual/security/good-practices",title:"Good Practices",description:"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.",source:"@site/docs/unraid-os/manual/security/good-practices.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/good-practices",permalink:"/es/unraid-os/manual/security/good-practices",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/good-practices.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/es/unraid-os/manual/security/"},next:{title:"Securing webGUI connections (SSL)",permalink:"/es/unraid-os/manual/security/secure-webgui-ssl"}},u={},l=[{value:"#1 Set a strong root password",id:"1-set-a-strong-root-password",level:2},{value:"#2 Review port mappings on your router",id:"2-review-port-mappings-on-your-router",level:2},{value:"#3 Never put your server in your network's DMZ",id:"3-never-put-your-server-in-your-networks-dmz",level:2},{value:"#4 Set security on your shares to private",id:"4-set-security-on-your-shares-to-private",level:2},{value:"#5 Don't expose the flash share, and if you do, make it private",id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private",level:2},{value:"#6 Keep your server up-to-date",id:"6-keep-your-server-up-to-date",level:2},{value:"#7 Use a secure method for remote administration",id:"7-use-a-secure-method-for-remote-administration",level:2}],c={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"good-practices"},"Good Practices"),(0,a.kt)("p",null,"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system."),(0,a.kt)("h2",{id:"1-set-a-strong-root-password"},"#","1 Set a strong root password"),(0,a.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the ",(0,a.kt)("strong",{parentName:"p"},"Users")," tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"There is a plugin available in Community Apps called ",(0,a.kt)("strong",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in."),(0,a.kt)("p",{parentName:"admonition"},"You could also use ",(0,a.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this webpage")," to get a very quick assessment of the strength of any specific password.")),(0,a.kt)("h2",{id:"2-review-port-mappings-on-your-router"},"#","2 Review port mappings on your router"),(0,a.kt)("p",null,"Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk."),(0,a.kt)("p",null,"Here are just a few ports you should be extra careful with when forwarding:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 80"),": Used to access the webGUI without SSL - unless you've rebound access to another port on the ",(0,a.kt)("strong",{parentName:"li"},"Management Access"),' settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you\'re doing. If you want to make the webGUI remotely accessible, install the ',(0,a.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 443"),": Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the ",(0,a.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,a.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin to enable simple, safe, and secure remote access to your Unraid systems."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 445"),": Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a ",(0,a.kt)("a",{parentName:"li",href:"/es/unraid-os/manual/security/vpn"},"WireGuard VPN")," to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 111/2049:")," Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Ports in the 57xx range:")," These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the ",(0,a.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.")),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.")),(0,a.kt)("h2",{id:"3-never-put-your-server-in-your-networks-dmz"},"#","3 Never put your server in your network's DMZ"),(0,a.kt)("p",null,'We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.'),(0,a.kt)("p",null,"Never, ",(0,a.kt)("em",{parentName:"p"},"ever"),", do this."),(0,a.kt)("h2",{id:"4-set-security-on-your-shares-to-private"},"#","4 Set security on your shares to private"),(0,a.kt)("p",null,"The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares."),(0,a.kt)("h2",{id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private"},"#","5 Don't expose the flash share, and if you do, make it private"),(0,a.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents."),(0,a.kt)("h2",{id:"6-keep-your-server-up-to-date"},"#","6 Keep your server up-to-date"),(0,a.kt)("p",null,"Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Tools > Update OS"))," to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Settings > Notifications"))," page."),(0,a.kt)("h2",{id:"7-use-a-secure-method-for-remote-administration"},"#","7 Use a secure method for remote administration"),(0,a.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet."),(0,a.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used."),(0,a.kt)("p",null,"An alternative for making the webGUI remotely accessible is to install the ",(0,a.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/4caccc33.7c1a0ec6.js b/es/assets/js/4caccc33.7c1a0ec6.js deleted file mode 100644 index 69c7a7e0c..000000000 --- a/es/assets/js/4caccc33.7c1a0ec6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/es/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/es/unraid-os/manual/shares"},next:{title:"VM Support",permalink:"/es/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/es/assets/js/4caccc33.ce493ad3.js b/es/assets/js/4caccc33.ce493ad3.js new file mode 100644 index 000000000..248f9cc16 --- /dev/null +++ b/es/assets/js/4caccc33.ce493ad3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/es/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/es/unraid-os/manual/storage-management"},next:{title:"VM Support",permalink:"/es/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/es/assets/js/55054ac6.4d5e11e8.js b/es/assets/js/55054ac6.4d5e11e8.js new file mode 100644 index 000000000..a27cfe381 --- /dev/null +++ b/es/assets/js/55054ac6.4d5e11e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/es/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/es/unraid-os/manual/what-is-unraid"},next:{title:"Docker Management",permalink:"/es/unraid-os/manual/docker-management"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/es/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/security/data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/es/assets/js/55054ac6.53671d7d.js b/es/assets/js/55054ac6.53671d7d.js deleted file mode 100644 index 7c14d7617..000000000 --- a/es/assets/js/55054ac6.53671d7d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/es/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/es/unraid-os/manual/what-is-unraid"},next:{title:"Shares",permalink:"/es/unraid-os/manual/shares"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/es/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/security#data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/es/assets/js/5f60a020.9ba72785.js b/es/assets/js/5f60a020.9ba72785.js new file mode 100644 index 000000000..740a20db1 --- /dev/null +++ b/es/assets/js/5f60a020.9ba72785.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4863],{4137:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},s=Object.keys(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),h=d(r),c=n,m=h["".concat(l,".").concat(c)]||h[c]||u[c]||s;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,i=new Array(s);i[0]=c;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[h]="string"==typeof e?e:n,i[1]=o;for(var d=2;d<s;d++)i[d]=r[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},6260:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var a=r(7462),n=(r(7294),r(4137));const s={sidebar_position:2},i="Disk shares",o={unversionedId:"unraid-os/manual/shares/disk-shares",id:"unraid-os/manual/shares/disk-shares",title:"Disk shares",description:"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.",source:"@site/docs/unraid-os/manual/shares/disk-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/disk-shares",permalink:"/es/unraid-os/manual/shares/disk-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/disk-shares.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"User shares",permalink:"/es/unraid-os/manual/shares/user-shares"},next:{title:"Network access",permalink:"/es/unraid-os/manual/shares/network-access"}},l={},d=[{value:"Overview",id:"overview",level:2},{value:"Disk share constraints",id:"disk-share-constraints",level:2}],p={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"disk-shares"},"Disk shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable disk shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". Disk shares are disabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a ",(0,n.kt)("strong",{parentName:"p"},"Disk Shares")," section on the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. If you create a disk share, you should modify the user ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/shares/network-access#access-permissions-at-share-level"},"access permissions")," to restrict network user access."),(0,n.kt)("p",null,"When viewed at the Linux level, the physical devices or pools will appear directly under ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled."),(0,n.kt)("p",null,"Examples of such names are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/diskX:")," - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be ",(0,n.kt)("em",{parentName:"li"},"diskX"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/pool-name:")," - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be ",(0,n.kt)("inlineCode",{parentName:"li"},"pool-name"),".")),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at ",(0,n.kt)("inlineCode",{parentName:"p"},"/boot"),"."),(0,n.kt)("p",{parentName:"admonition"},"Due to the nature of the Unraid boot device, we recommend you maintain your shares in ",(0,n.kt)("em",{parentName:"p"},"Private")," mode, with read/write access given to trusted users.")),(0,n.kt)("h2",{id:"disk-share-constraints"},"Disk share constraints"),(0,n.kt)("p",null,"If you have both disk shares and user shares enabled in ",(0,n.kt)("strong",{parentName:"p"},"Global Share Settings"),", then there is an important restriction that you must observe to avoid potential data loss."),(0,n.kt)("p",null,"You must ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"never"))," copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, ",(0,n.kt)("inlineCode",{parentName:"p"},"cp /mnt/user/share/file /mnt/disk1/share/file"),"."),(0,n.kt)("p",null,"At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost."),(0,n.kt)("p",null,"There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management#unassigned-drives"},"Unassigned Disk"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/6b42df2b.5ce005ce.js b/es/assets/js/6b42df2b.5ce005ce.js deleted file mode 100644 index f27c68fa6..000000000 --- a/es/assets/js/6b42df2b.5ce005ce.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/es/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/es/unraid-os/manual/applications"},next:{title:"Troubleshooting",permalink:"/es/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/es/assets/js/6b42df2b.73043424.js b/es/assets/js/6b42df2b.73043424.js new file mode 100644 index 000000000..8dacc93c8 --- /dev/null +++ b/es/assets/js/6b42df2b.73043424.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/es/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"VPN",permalink:"/es/unraid-os/manual/security/vpn"},next:{title:"Troubleshooting",permalink:"/es/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/es/assets/js/79722de7.786e2fb3.js b/es/assets/js/79722de7.01d9d74c.js similarity index 72% rename from es/assets/js/79722de7.786e2fb3.js rename to es/assets/js/79722de7.01d9d74c.js index 5469e9112..f9b88ba25 100644 --- a/es/assets/js/79722de7.786e2fb3.js +++ b/es/assets/js/79722de7.01d9d74c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/es/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/es/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/es/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/es/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/es/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/es/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/getting-started/#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/798531cc.2c20cdd9.js b/es/assets/js/798531cc.f5810f3b.js similarity index 99% rename from es/assets/js/798531cc.2c20cdd9.js rename to es/assets/js/798531cc.f5810f3b.js index aa749f271..efa6ff024 100644 --- a/es/assets/js/798531cc.2c20cdd9.js +++ b/es/assets/js/798531cc.f5810f3b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/es/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/es/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/es/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/security#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/es/unraid-os/manual/shares#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/es/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/es/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/es/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares.md#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/7b378cd1.a6c7e676.js b/es/assets/js/7b378cd1.a6c7e676.js new file mode 100644 index 000000000..a6ffb6b95 --- /dev/null +++ b/es/assets/js/7b378cd1.a6c7e676.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/es/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/es/unraid-os/manual/vm-management"},next:{title:"Security",permalink:"/es/unraid-os/manual/security/"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/es/assets/js/7b378cd1.af7c4dc7.js b/es/assets/js/7b378cd1.af7c4dc7.js deleted file mode 100644 index 48b54d685..000000000 --- a/es/assets/js/7b378cd1.af7c4dc7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/es/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/es/unraid-os/manual/vm-management"},next:{title:"Multi-Language Support",permalink:"/es/unraid-os/manual/multi-language"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/es/assets/js/7c081f1b.bc01a910.js b/es/assets/js/7c081f1b.bc01a910.js deleted file mode 100644 index f4c6830df..000000000 --- a/es/assets/js/7c081f1b.bc01a910.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/es/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/es/unraid-os/manual/security"},next:{title:"Upgrading Unraid",permalink:"/es/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/7c081f1b.dc7dcdeb.js b/es/assets/js/7c081f1b.dc7dcdeb.js new file mode 100644 index 000000000..badf0cd6f --- /dev/null +++ b/es/assets/js/7c081f1b.dc7dcdeb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/es/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Method",permalink:"/es/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Upgrading Unraid",permalink:"/es/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/81b28c9f.5ca9e0f7.js b/es/assets/js/81b28c9f.5ca9e0f7.js deleted file mode 100644 index e73b8f4cc..000000000 --- a/es/assets/js/81b28c9f.5ca9e0f7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/es/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/es/unraid-os/faq/licensing-faq"},next:{title:"C\xf3mo Canjear un C\xf3digo de Activaci\xf3n de Licencia",permalink:"/es/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"To reset your ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#connecting-to-the-unraid-webgui"},"root\npassword"),":"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Shutdown your server."),(0,n.kt)("li",{parentName:"ol"},"Plug your USB flash into a laptop or another computer."),(0,n.kt)("li",{parentName:"ol"},'Open the USB folder and delete the files "config/shadow" and\n"config/smbpasswd". ',(0,n.kt)("em",{parentName:"li"},'(DO NOT delete "config/passwd).')," This will\nreset all user passwords, including the root user to blank."),(0,n.kt)("li",{parentName:"ol"},"Now, safely eject your USB and reboot it on your Unraid server and\nyou\u2019re in. You can then set a new password in the Users tab of the\nUnraid webgui.")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/81b28c9f.dfb14a8b.js b/es/assets/js/81b28c9f.dfb14a8b.js new file mode 100644 index 000000000..8caf81d38 --- /dev/null +++ b/es/assets/js/81b28c9f.dfb14a8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/es/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/es/unraid-os/faq/licensing-faq"},next:{title:"C\xf3mo Canjear un C\xf3digo de Activaci\xf3n de Licencia",permalink:"/es/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/troubleshooting/#lost-root-password"},"Lost Root Password")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/8944547a.341d22ef.js b/es/assets/js/8944547a.341d22ef.js new file mode 100644 index 000000000..0193d301a --- /dev/null +++ b/es/assets/js/8944547a.341d22ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5450],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,i=function(e,t){if(null==e)return{};var a,r,i={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=r.createContext({}),h=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(a),p=i,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||n;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<n;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3135:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>I,contentTitle:()=>M,default:()=>E,frontMatter:()=>x,metadata:()=>U,toc:()=>O});var r=a(7462),i=a(7294),n=a(4137),o=a(4334),s=a(2957),l=a(6550),h=a(5238),d=a(3609),u=a(2560);function c(e){return function(e){return i.Children.map(e,(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:i}}=e;return{value:t,label:a,attributes:r,default:i}}))}function p(e){const{values:t,children:a}=e;return(0,i.useMemo)((()=>{const e=t??c(a);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const r=(0,l.k6)(),n=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,h._X)(n),(0,i.useCallback)((e=>{if(!n)return;const t=new URLSearchParams(r.location.search);t.set(n,e),r.replace({...r.location,search:t.toString()})}),[n,r])]}function y(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,n=p(e),[o,s]=(0,i.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:n}))),[l,h]=f({queryString:a,groupId:r}),[d,c]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,n]=(0,u.Nk)(a);return[r,(0,i.useCallback)((e=>{a&&n.set(e)}),[a,n])]}({groupId:r}),y=(()=>{const e=l??d;return m({value:e,tabValues:n})?e:null})();(0,i.useLayoutEffect)((()=>{y&&s(y)}),[y]);return{selectedValue:o,selectValue:(0,i.useCallback)((e=>{if(!m({value:e,tabValues:n}))throw new Error(`Can't select invalid tab value=${e}`);s(e),h(e),c(e)}),[h,c,n]),tabValues:n}}var k=a(1048);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:a,selectedValue:n,selectValue:l,tabValues:h}=e;const d=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),c=e=>{const t=e.currentTarget,a=d.indexOf(t),r=h[a].value;r!==n&&(u(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},h.map((e=>{let{value:t,label:a,attributes:s}=e;return i.createElement("li",(0,r.Z)({role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,key:t,ref:e=>d.push(e),onKeyDown:p,onClick:c},s,{className:(0,o.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":n===t})}),a??t)})))}function w(e){let{lazy:t,children:a,selectedValue:r}=e;const n=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=n.find((e=>e.props.value===r));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},n.map(((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function b(e){const t=y(e);return i.createElement("div",{className:(0,o.Z)("tabs-container",v.tabList)},i.createElement(g,(0,r.Z)({},e,t)),i.createElement(w,(0,r.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return i.createElement(b,(0,r.Z)({key:String(t)},e))}const T={tabItem:"tabItem_Ymn6"};function S(e){let{children:t,hidden:a,className:r}=e;return i.createElement("div",{role:"tabpanel",className:(0,o.Z)(T.tabItem,r),hidden:a},t)}const x={sidebar_position:0},M="User shares",U={unversionedId:"unraid-os/manual/shares/user-shares",id:"unraid-os/manual/shares/user-shares",title:"User shares",description:"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.",source:"@site/docs/unraid-os/manual/shares/user-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/user-shares",permalink:"/es/unraid-os/manual/shares/user-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/user-shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/es/unraid-os/manual/shares/"},next:{title:"Disk shares",permalink:"/es/unraid-os/manual/shares/disk-shares"}},I={},O=[{value:"Overview",id:"overview",level:2},{value:"Share settings",id:"share-settings",level:2},{value:"Minimum free space",id:"minimum-free-space",level:3},{value:"Primary and Secondary storage (Unraid 6.12)",id:"primary-and-secondary-storage-unraid-612",level:3},{value:"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)",id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier",level:3},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:3},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:3},{value:"Allocation method",id:"allocation-method",level:3},{value:"High-water method",id:"high-water-method",level:4},{value:"Fill-up method",id:"fill-up-method",level:4},{value:"Most-free method",id:"most-free-method",level:4},{value:"Split level",id:"split-level",level:3},{value:"Automatically split any directory as required",id:"automatically-split-any-directory-as-required",level:4},{value:"Automatically split only the top level directory as required",id:"automatically-split-only-the-top-level-directory-as-required",level:4},{value:"Automatically split only the top "N" level directories as required",id:"automatically-split-only-the-top-n-level-directories-as-required",level:4},{value:"Manual - do not automatically split directories",id:"manual---do-not-automatically-split-directories",level:4},{value:"Included or excluded disks",id:"included-or-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3}],C={toc:O},A="wrapper";function E(e){let{components:t,...a}=e;return(0,n.kt)(A,(0,r.Z)({},C,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"user-shares"},"User shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable user shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". User shares are enabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view."),(0,n.kt)("p",null,"You manage ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes."),(0,n.kt)("p",null,"When viewed at the Linux level, user shares appear under the path ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user"),". This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/shares/disk-shares"},"Disk Shares"),"."),(0,n.kt)("p",null,"Note that current releases of Unraid also include the mount point ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user0")," that shows the files in ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release."),(0,n.kt)("p",null,"The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method"),", ",(0,n.kt)("a",{parentName:"p",href:"#included-or-excluded-disks"},"included or excluded disks"),", and the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),"."),(0,n.kt)("p",null,"If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation."),(0,n.kt)("p",{parentName:"admonition"},"This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.")),(0,n.kt)("h2",{id:"share-settings"},"Share settings"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"When you configure the settings for the share, select the ",(0,n.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the Unraid webGUI for detailed information on the individual settings.")),(0,n.kt)("h3",{id:"minimum-free-space"},"Minimum free space"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting is used with the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method")," and ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),". This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk)."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.")),(0,n.kt)("p",null,"When Unraid receives a request to store a file, say for example ",(0,n.kt)("inlineCode",{parentName:"p"},"file.eg"),", it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer."),(0,n.kt)("p",null,"We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large."),(0,n.kt)("p",null,"The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter ",(0,n.kt)("em",{parentName:"p"},"50GB"),". Note that new user shares will have a default 10% minimum free space assignment."),(0,n.kt)("p",null,"Unraid will still place files on the disk if the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level")," does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is also a ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for cache pools. This is used to determine if a new file for a user share, with the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache")," setting of ",(0,n.kt)("em",{parentName:"p"},"Yes")," or ",(0,n.kt)("em",{parentName:"p"},"Prefer"),", should be written to the\ncache or, instead, bypass the cache and go directly to the array."),(0,n.kt)("p",{parentName:"admonition"},"This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.")),(0,n.kt)("h3",{id:"primary-and-secondary-storage-unraid-612"},"Primary and Secondary storage (Unraid 6.12)"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," parameter defines the location - ",(0,n.kt)("em",{parentName:"p"},"Cache"),", ",(0,n.kt)("em",{parentName:"p"},"Array"),", or any named pool - to which new files will be written for the selected share. The ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," parameter sets the location where files will be moved to if there is not enough room in primary storage."),(0,n.kt)("p",null,"When primary storage is below the ",(0,n.kt)("a",{parentName:"p",href:"#minimum-free-space"},"Minimum Free Space")," value, new files and folders are created in secondary storage."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"If you select an ",(0,n.kt)("em",{parentName:"p"},"array")," or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.")),(0,n.kt)("p",null,"Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users."),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of ",(0,n.kt)("em",{parentName:"li"},"Cache"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"any named pool can be selected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Array")," can be selected.")))),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"None"),": This means that there is no secondary storage set for this share. Note that secondary storage is optional.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"if Primary storage is a pool name, then the only options are ",(0,n.kt)("em",{parentName:"li"},"None")," and ",(0,n.kt)("em",{parentName:"li"},"Array"),"."),(0,n.kt)("li",{parentName:"ul"},"if Primary storage is ",(0,n.kt)("em",{parentName:"li"},"Array"),", then only ",(0,n.kt)("em",{parentName:"li"},"None")," appears as an option.")))),(0,n.kt)("h3",{id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier"},"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)"),(0,n.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently."),(0,n.kt)("admonition",{title:"INFO",type:"note"},(0,n.kt)("p",{parentName:"admonition"},"Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.")),(0,n.kt)("p",null,"Unraid includes an application called ",(0,n.kt)("strong",{parentName:"p"},"Mover")," that is used in conjunction with user shares. It's behavior is controlled by the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache for new files")," setting under each user share. The way these settings operate is as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value. If the free space is below that then bypass the cache and write the files directly to the main array."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation Method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space on the cache is below the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the cache then the write will fail with an out-of-space error."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the share, and if the free space falls below that value then write the files to the main array instead."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the ",(0,n.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache"),(0,n.kt)("p",{parentName:"li"},"It is the default setting for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"system")," shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations."),(0,n.kt)("p",{parentName:"li"},"This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, ",(0,n.kt)("strong",{parentName:"p"},"Mover")," will automatically try and move the files in any share set to ",(0,n.kt)("em",{parentName:"p"},"Prefer")," to the pool defined as the cache for the share. This is why ",(0,n.kt)("em",{parentName:"p"},"Prefer")," is the default for shares that are located on the cache rather than ",(0,n.kt)("em",{parentName:"p"},"Only")," as it caters to those who do not (yet) have a cache drive."))),(0,n.kt)("h3",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,n.kt)("p",null,"This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage."),(0,n.kt)("p",null,"Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Cache -> Array"),"."),(0,n.kt)("li",null,"Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the Use Cache setting for the share to ",(0,n.kt)("i",null,"Yes"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"Only")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,n.kt)("p",null,"You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," or default system shares."),(0,n.kt)("p",null,"The way to proceed to get the files belonging to a share from the main array onto a pool is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Array -> Cache"),"."),(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting for the share to ",(0,n.kt)("i",null,"Prefer"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"No")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,n.kt)("p",null,"When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user\nshare, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation."),(0,n.kt)("p",null,"The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: ",(0,n.kt)("strong",{parentName:"p"},"High-water"),", ",(0,n.kt)("strong",{parentName:"p"},"Most-free"),", or ",(0,n.kt)("strong",{parentName:"p"},"Fill-up"),"."),(0,n.kt)("h4",{id:"high-water-method"},"High-water method"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"High-water")," setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level."),(0,n.kt)("admonition",{title:"Example",type:"important"},(0,n.kt)("p",{parentName:"admonition"},"If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass."),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left."),(0,n.kt)("li",{parentName:"ul"},"When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space"),(0,n.kt)("li",{parentName:"ul"},"Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.")),(0,n.kt)("p",{parentName:"admonition"},"This pattern continues with progressively smaller high-water levels until the disks are full.")),(0,n.kt)("h4",{id:"fill-up-method"},"Fill-up method"),(0,n.kt)("p",null,"The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full."),(0,n.kt)("h4",{id:"most-free-method"},"Most-free method"),(0,n.kt)("p",null,"The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the\nmost free space."),(0,n.kt)("h3",{id:"split-level"},"Split level"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the number 1."),(0,n.kt)("h4",{id:"automatically-split-any-directory-as-required"},"Automatically split any directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"Allocation method"),". If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-level-directory-as-required"},"Automatically split only the top level directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-n-level-directories-as-required"},'Automatically split only the top "N" level directories as required'),(0,n.kt)("p",null,'Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.'),(0,n.kt)("h4",{id:"manual---do-not-automatically-split-directories"},"Manual - do not automatically split directories"),(0,n.kt)("p",null,"When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"In the event of there being conflicts between the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method")," settings in deciding which would be an appropriate drive to use, the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.")),(0,n.kt)("h3",{id:"included-or-excluded-disks"},"Included or excluded disks"),(0,n.kt)("p",null,"These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share settings"))," are allowed."),(0,n.kt)("p",null,"Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file."),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.")),(0,n.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,n.kt)("p",null,'The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.'),(0,n.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,n.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,n.kt)("h3",{id:"default-shares"},"Default Shares"),(0,n.kt)("p",null,"If ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/docker-management"},"Docker")," or ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/vm-support"},"VMs")," are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems."),(0,n.kt)("p",null,"The shares that fall into this category are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"appdata")," - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"system")," - This is the default location for storing the docker application binaries, and VM XML templates"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"domains")," - This is the default location for storing virtual disk images (vdisks) that are used by VMs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"isos")," - This is the default location for storing CD ISO images for use with VMs.")),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the ",(0,n.kt)("inlineCode",{parentName:"p"},"isos")," share that can be shared over the network so you can place new ISOs to use in virtual machines.")))}E.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/8a89048a.2bc2fffa.js b/es/assets/js/8a89048a.2bc2fffa.js new file mode 100644 index 000000000..d38e05094 --- /dev/null +++ b/es/assets/js/8a89048a.2bc2fffa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1770],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(a),d=n,h=m["".concat(l,".").concat(d)]||m[d]||u[d]||o;return a?r.createElement(h,s(s({ref:t},c),{},{components:a})):r.createElement(h,s({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,s=new Array(o);s[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:n,s[1]=i;for(var p=2;p<o;p++)s[p]=a[p];return r.createElement.apply(null,s)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},8829:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:5},s="Create a new share",i={unversionedId:"unraid-os/manual/shares/create-a-share",id:"unraid-os/manual/shares/create-a-share",title:"Create a new share",description:"When you create a new share, plan ahead.",source:"@site/docs/unraid-os/manual/shares/create-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/create-a-share",permalink:"/es/unraid-os/manual/shares/create-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/create-a-share.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Network access",permalink:"/es/unraid-os/manual/shares/network-access"},next:{title:"Delete a share",permalink:"/es/unraid-os/manual/shares/delete-a-share"}},l={},p=[],c={toc:p},m="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-new-share"},"Create a new share"),(0,n.kt)("p",null,"When you create a new share, plan ahead."),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"On the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab select ",(0,n.kt)("strong",{parentName:"p"},"Add Share"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Enter a name for your share in ",(0,n.kt)("strong",{parentName:"p"},"Share name")),(0,n.kt)("admonition",{parentName:"li",title:"Share names",type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so ",(0,n.kt)("inlineCode",{parentName:"p"},"media"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"Media"),", and ",(0,n.kt)("inlineCode",{parentName:"p"},"MEDIA")," would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," Enter a description for the share in the ",(0,n.kt)("strong",{parentName:"p"},"Comments")," field. This is visible when viewed over the network.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Set a ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value, in kilobytes, if you plan to use the setting, otherwise leave it empty.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),": high-water, fill-up, or most-free, depending on your use case. You can read about the differences ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/shares/user-shares#allocation-method"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," method for your data. You can find more information split level, ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/shares/user-shares#split-level"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," choose which disks will be available to the share. By default, all disks will be included.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks")," choose which disks will not be available to the share. Note that if you configure ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," there is no need to configure ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select a ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to ",(0,n.kt)("em",{parentName:"p"},"None"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," If you configure a primary and secondary storage, then ",(0,n.kt)("strong",{parentName:"p"},"Mover action")," option becomes active. This sets the direction of file transfers between Primary and Secondary storage.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select ",(0,n.kt)("strong",{parentName:"p"},"Add share")," to complete the creation."))),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"Note that, by default, a new share will not be shared over the network. You must configure ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/shares/network-access"},"network access")," after the share is created.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/90126b70.9f6b92ae.js b/es/assets/js/90126b70.9f6b92ae.js deleted file mode 100644 index 35a883816..000000000 --- a/es/assets/js/90126b70.9f6b92ae.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[79],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function r(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),p=h(a),u=i,m=p["".concat(l,".").concat(u)]||p[u]||c[u]||s;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=a.length,o=new Array(s);o[0]=u;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,o[1]=r;for(var h=2;h<s;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8693:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const s={sidebar_position:4},o="Shares",r={unversionedId:"unraid-os/manual/shares",id:"unraid-os/manual/shares",title:"Shares",description:"Once you have assigned some devices to Unraid and started the array, you",source:"@site/docs/unraid-os/manual/shares.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/shares",permalink:"/es/unraid-os/manual/shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/es/unraid-os/manual/storage-management"},next:{title:"Docker Management",permalink:"/es/unraid-os/manual/docker-management"}},l={},h=[{value:"User Shares",id:"user-shares",level:2},{value:"Allocation method",id:"allocation-method",level:3},{value:"High Water",id:"high-water",level:4},{value:"Most Free",id:"most-free",level:4},{value:"Fill-Up",id:"fill-up",level:4},{value:"Min. Free Space",id:"min-free-space",level:3},{value:"Split level",id:"split-level",level:3},{value:"Disable Split Level",id:"disable-split-level",level:4},{value:"Split Level = 1 Example",id:"split-level--1-example",level:4},{value:"Split Level 0",id:"split-level-0",level:5},{value:"Example",id:"example",level:6},{value:"Split By Character",id:"split-by-character",level:5},{value:"Included and Excluded disk(s)",id:"included-and-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3},{value:"Unraid 6.12",id:"unraid-612",level:3},{value:"Primary Storage",id:"primary-storage",level:4},{value:"Secondary Storage",id:"secondary-storage",level:4},{value:"Unraid 6.11 and earlier",id:"unraid-611-and-earlier",level:3},{value:"Use Cache (and Mover Behavior with User Shares)",id:"use-cache-and-mover-behavior-with-user-shares",level:4},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:5},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:5},{value:"Disk Shares",id:"disk-shares",level:2},{value:"Network access",id:"network-access",level:2},{value:"Access Permissions",id:"access-permissions",level:2},{value:"Windows 'Gotcha'",id:"windows-gotcha",level:3}],d={toc:h},p="wrapper";function c(e){let{components:t,...s}=e;return(0,i.kt)(p,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"shares"},"Shares"),(0,i.kt)("p",null,"Once you have assigned some devices to Unraid and started the array, you\ncan create ",(0,i.kt)("em",{parentName:"p"},"shares")," to simplify how you store data across multiple disks\nin the array. Unraid will automatically create a handful of shares for\nyou that it needs to support common plugins, containers, and virtual\nmachines, but you can also create your own shares for storing other\ntypes of data. Unraid supports 2 types of share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"User Shares"),(0,i.kt)("li",{parentName:"ul"},"Disk Shares")),(0,i.kt)("p",null,"You can control which of these types of shares are to be used under\nSettings-",">","Global Share Settings. The default on Unraid is to have User\nShares enabled but Disk Shares disabled."),(0,i.kt)("p",null,"It is sometimes important to realize that these are two different views\nof the ",(0,i.kt)("strong",{parentName:"p"},"same")," underlying file system. Every file/folder that appears\nunder a User Share will also appear under the Disk Share for the\nphysical drive that is storing the file/folder."),(0,i.kt)("h2",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"User Shares can be enabled/disabled via Settings-",">","Global Share\nSettings."),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Shares")," tab, you can either ",(0,i.kt)("em",{parentName:"p"},"create")," a new share or ",(0,i.kt)("em",{parentName:"p"},"edit"),"\nan existing share. Click the ",(0,i.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the\nUnraid webGui when configuring shares for more information on the\nsettings available._"),(0,i.kt)("p",null,"User Shares are implemented by using Linux Fuse file system support.\nWhat they do is provide an aggregated view of all top level folders of\nthe same name across the cache and the array drives. The name of this\ntop level folder is used as the share name. From a user perspective this\ngives a view that can span multiple drives when viewed at the network\nlevel. Note that no individual file will span multiple drives - it is\njust the directory level that is given a unified view."),(0,i.kt)("p",null,"When viewed at the Linux level then User Shares will appear under the\npath ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user")),". This includes the files on the main array and also\nany for the share on any pool. It is important to note that a User Share\nis just a logical view imposed on top of the underlying physical file\nsystem so you can see the same files if you look at the physical level\n(as described below for Disk Shares)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Current releases of Unraid also include the mount point\n",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user0"))," that shows the files in User Shares OMITTING any\nfiles for a share that are on any pool. This is just a different\nview of the files on your server. ",(0,i.kt)("em",{parentName:"li"},"However This mount point is now\ndeprecated and may stop being available in a future Unraid release."))),(0,i.kt)("p",null,"Normally one creates User Shares using the Shares tab. However if you\nmanually create a top level folder on any drive the system will\nautomatically consider this to be a user Share and give it default\nsettings."),(0,i.kt)("p",null,"Which physical drive in the main array is used to store a physical file\nis controlled by a number of settings for the share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Allocation method"),": This has various options:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Most Free"),": This option means that new files should go to the\ndisk with the most free space. It has the downside that one is\ncontinually switching drives which keeps the drive involved spun\nup.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Fill Up"),": This option means simply fill up drives in disk\norder until the free space falls below the Minimum Free Space\nsetting, and when that happens move onto the next disk. Many\nusers like this setting because their content is static in\nnature to they find this a simple way to manage their storage.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"High Water"),": (default) This option attempts to provide a\ncompromise between continually switching drives as is caused by\nthe ",(0,i.kt)("strong",{parentName:"p"},"Most Free")," setting and filling up disks in a sensible\nmanner, but not fill each drive to capacity before using the\nnext one. The aim is to allow related files do be kept together\non the same drive and to let unused drives be spun down."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It works with switch points based by continually halving the\nsize of the largest drive in the array."),(0,i.kt)("li",{parentName:"ul"},"Many people find this confusing (particularly in an array with\ndrives of varying size). so as an example if you had an array\nconsisting of drives of 8TB, 3Tb and 2TB",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The largest drive is 8TB so the switch points are 4TB, 2TB,\n1Tb etc."),(0,i.kt)("li",{parentName:"ul"},"The 4TB switch point is active so The 8TB Drive one would be\nfilled to 4TB free space left."),(0,i.kt)("li",{parentName:"ul"},"The 2TB switch point becomes active so the 8TB and 3TB\ndrives each gets used in disk order until it they have 2TB\nfree space"),(0,i.kt)("li",{parentName:"ul"},"The 1TB switch point becomes active so each drive now gets\nused in disk order until it only has 1TB free space."),(0,i.kt)("li",{parentName:"ul"},"etc"))))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Included")," or ",(0,i.kt)("strong",{parentName:"p"},"excluded")," drives: These settings allow you to\ncontrol which array drives can hold files for the share. Never set\nboth values, set only the one that is most convenient for you. If no\ndrives are specified under these settings then all drives allowed\nunder ",(0,i.kt)("em",{parentName:"p"},"Settings ",">",">"," Global Share settings")," are allowed.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Split level"),": This setting controls how files should be grouped."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": in the event of there being contentions between the\n",(0,i.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,i.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,i.kt)("strong",{parentName:"p"},"Allocation\nmethod")," settings in deciding which would be an appropriate drive to\nuse the ",(0,i.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can\nget an out-of-space error even though there is plenty of space on\nother array drives that the share can logically use."),(0,i.kt)("p",null,"Changing any of these settings for a share only affects where any new\nfiles are put. Any files already present in the share are left where\nthey are located when a setting is changed. It takes Manual action to\nmove existing files."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": The Linux file systems used by Unraid are case sensitive\nwhile the SMB share system is not. As an example this means that a\nfolder at the Linux level a folder called 'media' is different to one\ncalled 'Media'. However at the network level case is ignored so for\nexample 'media', Media', 'MEDIA' would all be the same share.\nHowever to take this example further you would only get the content of\none of the underlying 'media' or 'Media' folders to appear at the\nnetwork share level - and it can be non-obvious which one this would be."),(0,i.kt)("p",null,"The following sections proved more detail on how these settings work:"),(0,i.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,i.kt)("p",null,"When a new User share is created, or when any object (file or directory)\nis created within a User share, the system must determine which data\ndisk the User share or object will be created on. In general, a new User\nshare, or object within a User share, will be created on the data disk\nwith the most free space. However there are a set of share configuration\nparameters available to fine tune disk allocation."),(0,i.kt)("p",null,"The basic allocation strategy for a share is defined by the Allocation\nmethod configuration parameter. You may select one of three allocation\nmethods for the system to use."),(0,i.kt)("h4",{id:"high-water"},"High Water"),(0,i.kt)("p",null,"The high water allocation method attempts to step fill each disk so at\nthe end of each step there is an equal free space left on each disk. The\nidea is to progressively fill each disk but not constantly go back and\nforth between disks each time new data is written to the array. Most\ntimes, only a single disk will be needed when writing a series of files\nto the array so the array will only spin-up the needed disk. The high\nwater level is initially set equal to one-half of the size of the\nlargest disk. A new high water level is again set to one-half of the\nprevious high level once all the disks have less free space than the\ncurrent high water level."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8272).Z,width:"836",height:"505"})),(0,i.kt)("p",null,"The above example shows what will occur when there is a mix of 4 disks\nvarying is size from 500gig to 2T in size."),(0,i.kt)("p",null,"First Pass - The high water level is set to one-half of the size of the\n2T drive or 1T. Each disk will be filled until it has <1T of free space\nremaining. This means no data is stored on disk1 or disk2 since both\nalready have <1T of free space. 500gig of data will be stored on disk3\nfollowed by 1T of data being stored on disk4."),(0,i.kt)("p",null,"Second Pass - The high water level is reset to one-half of the previous\nlevel or 500gig. Each disk will be filled until it has <500gig of free\nspace remaining. This means no data is stored on disk1 since it already\nhas <500gig of free space. 500gig of data will be stored on disk2 and\nthen 500gig of data will be stored on disk3 and finally 500gig of data\nwill be stored on disk4."),(0,i.kt)("p",null,"Third Pass - The high water level is again reset to one-half of the\nprevious level or 250gig. Each disk will be filled until it has <250gig\nof free space remaining. 250gig of data will be stored on disk1 and then\n250gig of data will be stored on disk2 and then 250gig of data will be\nstored on disk3 and finally 250gig of data will be stored on disk4. An\ninteresting note is that the 500gig disk does not get used at all until\nthe third pass. Don't be concerned if the smaller sized disks don't\nimmediately get used with this method."),(0,i.kt)("p",null,"This pattern will continue with progressively smaller high water levels\nuntil the disks are full."),(0,i.kt)("h4",{id:"most-free"},"Most Free"),(0,i.kt)("p",null,"The most free allocation method simply picks the disk with the most free\nspace and writes the data to that disk. Each time a file is written\nUnraid will check the free space on the disks and pick the one with the\nmost free space."),(0,i.kt)("h4",{id:"fill-up"},"Fill-Up"),(0,i.kt)("p",null,"The fill-up allocation method simply attempts to fill each disk in order\nfrom the lowest numbered disk to the highest numbered disk. The fill-up\nallocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and\nnot allow any more transfers once the first disk gets close to being\nfull."),(0,i.kt)("h3",{id:"min-free-space"},"Min. Free Space"),(0,i.kt)("p",null,"The minimum free space setting is used with the allocation method and\nsplit level. The Minimum Free space setting doesn't control how much\nspace is kept free, but instead it controls how much space must be free\nfor a drive to be chosen for a new file. The minimum free space setting\ntherefore tells Unraid to stop putting new content onto the disk when\nthe free space falls below the level you set (as long as the Split Level\nsetting indicates it can be split to a new disk). This must be used with\nthe fill-up allocation method or disk full errors will occur when there\nis not enough space to fit a file you are trying to write to the array."),(0,i.kt)("p",null,'First a brief explanation of how Unraid will typically receive a file.\nUnraid typically receives data in this manner. First, Unraid receives\nthe request to store a file, named for example "file.eg". At this\ntime, Unraid has no idea how big "file.eg" is so Unraid will pick a\nspot to place "file.eg" and begin to store the file data as the data\nis transferred over the network. Now, this is important because Unraid\nmay pick a storage disk that does not have enough space to store the\ncomplete "file.eg". Unraid doesn\'t know there is not enough space\nwhen it first places the file so Unraid will only find out the disk\ndoesn\'t have enough space when the disk is full. At this point, the\ntransfer will fail with a disk full error.'),(0,i.kt)("p",null,"So, Unraid will write to a different disk if the minimum free space is\nset to a value larger than the biggest file size you will ever transfer.\nThe recommended setting is 2 times the largest file size you will ever\ntransfer. For example, if the largest file you have is 8gig in size then\nset the minimum free space to 16gig. This allows you to transfer files\nthat may vary in size somewhat and not accidentally transfer one too\nlarge. The minimum free space is set in kilo-bytes."),(0,i.kt)("p",null,"Here are some examples of the minimum free space setting;"),(0,i.kt)("hr",null),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Free Space"),(0,i.kt)("th",{parentName:"tr",align:null},"Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"500 meg"),(0,i.kt)("td",{parentName:"tr",align:null},"500000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"20 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"20000000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"40 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"40000000")))),(0,i.kt)("hr",null),(0,i.kt)("p",null,"Note that unRAID will still place files on the disk if the split level\ndoes not allow the files to be placed on another disk with more free\nspace."),(0,i.kt)("p",null,"Also note that Unraid will typically not move a file onto a new disk if\nyou're over-writing or updating it. For example, a backup file that\ngrows in size over time could end up filling a disk and causing a disk\nfull error."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": There is also a Minimum Free Space setting for cache pools.\nThis is used to determine when a new file for a User Share with the Use\nCache setting having a value of Yes or Prefer should be written to the\ncache or instead bypass the cache and go directly to the array. This\nneeds to be set if you want to avoid filling a cache pool which can\ncause problems. As for this value when used with a User Share it\nshould be larger than the largest file you intend to write, and some\npeople like to make it significantly larger. You get to this setting by\nclicking on a pool on the Main tab."),(0,i.kt)("h3",{id:"split-level"},"Split level"),(0,i.kt)("p",null,"The split level setting tells Unraid how many folder levels are allowed\nto be created on multiple disks. The split level can be used to ensure\nthat the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the\nnumber 1."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": in the event of there being contention between the\nvarious settings for a share over which array drive to select for a file\nthe Split Level setting always takes precedence. This means the\nAllocation Method and Minimum Free Space settings end up being\nover-ridden. This can mean Unraid chooses a drive which does not have\nenough space for the file so that an out-of-space error subsequently\noccurs for the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"The Split level setting is one that many users find confusing to here\nis a more detailed description of how it works."))),(0,i.kt)("p",null,'Here is an example showing a possible directory structure for a user\nshare called "Media".'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," I (the original author of this section) consider combining\nmedia types into a single large share a poor way to store media. I use a\nshare for each media type. Movies is a share and TV shows is a share. I\ncombined the movies and TV shows to show the pitfalls in the split\nlevels when doing this as explained after the figure."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1298).Z,width:"700",height:"255"})),(0,i.kt)("p",null,"Here is an explanation of the different split levels, referenced to the\nfolder structure above;"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Level 1",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select the\n"Automatically split only the top level directory as required"\noption.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Every other folder under the Media share must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting does not allow the SD Movies, HD Movies, Kids\nMovies or TV Shows folders to spread to multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too low for all the media."))),(0,i.kt)("li",{parentName:"ol"},"Level 2",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'this is what you have if in the GUI you select the\n"Automatically split only the top two directory levels as\nrequired" option.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting may work well. It will keep each movie and each TV\nseries together on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting may give issues because it keeps each TV series on\na single disk. So, a disk may fill as new TV seasons are added\nto a TV show which is on a disk which is close to full."))),(0,i.kt)("li",{parentName:"ol"},"Level 3",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top three directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder must remain on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting will allow the contents stored in each Movie Folder\nto be spread out onto multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high for the different movie types."))),(0,i.kt)("li",{parentName:"ol"},"Level 4",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top four directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high because it will allow the contents of\nevery folder to be spread out onto multiple disks. The split\nlevel is not being used to keep similar content together.")))),(0,i.kt)("p",null,"The only valid split level for the above example is 2. This causes a\nsplit level limitation which forces each complete TV series to a single\ndisk. This can force a new TV season to be placed on a disk which is\nalmost full and result in out of space errors once new episodes\ncompletely fill the disk. The split level can't be increased to 3\nbecause each individual movie would not be contained to a single disk."),(0,i.kt)("p",null,"The first way to fix this split level mismatch issue is to create\nseparate shares for the movies and the TV shows. This way, the movies\ncan be set to use a split level of 2 and the TV shows can use a split\nlevel of 3."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3865).Z,width:"726",height:"237"})),(0,i.kt)("p",null,'For Movies use a split level = 2. This allows the "SD Movies", "HD\nMovies" and "Kids Movies" folders to be placed on every disk and it\nkeeps each individual movie folder on a single disk. This way, any\nsingle movie folder and the contents of the movie folder will remain on\na single disk.'),(0,i.kt)("p",null,"For TV_Shows use a split level of either 1 or 2. A split level of 1 will\nkeep each TV series on a single disk and split level of 2 will keep each\nseason on a single disk. The split level of 2 means that the complete TV\nseries can be stored on multiple disks, however each individual season\nof that TV series will be on a single disk."),(0,i.kt)("p",null,"The second way to fix the issue is to add another folder level to the\nmovies, starting first with a Movies folder in the Media share and then\nplacing the different movie types below this."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(2778).Z,width:"644",height:"291"})),(0,i.kt)("p",null,"This user share structure must use split level = 3. SD Movies, HD\nMovies, Kids Movies and each TV series can exist on multiple disks. This\nstructure means each TV season can be on a different disk. This has the\nopposite issue compared to the first example. You can not use split\nlevel 2 to force each complete TV series to remain on a single disk\nwithout messing up the ability of the movies to split to every disk."),(0,i.kt)("p",null,"Some things to keep in mind."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'The above examples are to demonstrate the use of the split level. It\nis not necessary to store your media sorted in the same format as\nthe above example illustrates. You may want to use a Movies share\nand then just place a "Movie Name" folder for each movie directly\ninto the share without sorting the movies by type.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"It is completely valid to force each complete TV series to stay on a\nsingle disk. Just understand that a continuing TV series will keep\nfilling the disk where it is first placed. This may require manual\nintervention to shift some TV series from an almost full disk to an\nempty disk. Using the Most Free allocation method can help eliminate\nthe issue since a completely new TV series would be placed on the\ndisk with the most free space.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The above TV example applies to any similar share. It could apply to\na Pictures share where you store the pictures in folders based on\nthe year (2010, 2011, 2012 etc) or it could apply to a Music share\nwhere you store the music in a folder for each artist. In these\ncases, a split level of 1 would keep a whole year of pictures on a\nsingle disk or it would keep all the music by an artist on a single\ndisk."))),(0,i.kt)("h4",{id:"disable-split-level"},"Disable Split Level"),(0,i.kt)("p",null,"It is also possible to disable the split level by setting a high split\nlevel. A file copy or move will fail if a folder is locked to a full\ndisk and an attempt is made to add more files into that folder. Setting\na high split level will ensure each file will get written to the server\nas long as a disk has space for it."),(0,i.kt)("h4",{id:"split-level--1-example"},"Split Level = 1 Example"),(0,i.kt)("p",null,"The following example demonstrates how the share behaves when the split\nlevel is set to 1. The Share name is New_Movies. Each movie stored in\nthis share has its own folder. Inside the movie folder is the movie file\nas well as some metadata files used by MediaBrowser."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(5154).Z,width:"565",height:"626"})),(0,i.kt)("p",null,"The above Windows Explorer screen shot shows the file structure of the\nNew_Movies share on the left and the contents of the A History of\nViolence movie folder on the right. The levels for this share are\nlabeled on the example. This is what split level = 1 means:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"A New_Movies folder can be created on each disk allowed by the\ninclude and exclude disk settings. A new New_Movies folder will be\ncreated on the next disk in line when the allocation method calls\nfor Unraid to begin filling the next disk. Note that the New_Movies\nfolder will only be created on the next disk in line when it is\nnecessary and not when the share is created.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The A History of Violence folder can only\nexist on one disk. Once it is created on the disk, all of the\ncontents will remain on the same disk. Any changes or additions to\nthis folder will remain on the same disk. For example, a new file\ncalled movie.nfo for the XBMC metadata might be created in this\nfolder in the future. The movie.nfo file will be created in the\nexisting A History of Violence folder. A duplicate A History of\nViolence folder will not be created on another disk to store this new\nfile."))),(0,i.kt)("p",null,"You will notice that the movie folders (500) Days of Summer (2009) and\n2 Fast 2 Furious (2003) both appear in the New_Movies share. The next\nscreen shot will show how each of these files is stored on a separate\ndisk."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8362).Z,width:"1208",height:"705"})),(0,i.kt)("p",null,"The above screen shot shows side by side Window Explorer views of the\nfile structure stored on disk1 and disk2. On the left is disk1 and on\nthe right is disk2. The left Explorer window shows the contents of\ndisk1. The New_Movies share is a folder stored at the top level or the\nroot of disk1 with the individual movie directories stored in this\ndirectory. The right Explorer window shows the contents of disk2. The\nNew_Movies share is a folder stored at the top level or the root of\ndisk2 with the individual movie folders stored in this directory. As\nfiles were being moved into the New_Movies share, Unraid created the\nNew_Movies folder on both disk1 and disk2 to store these files."),(0,i.kt)("p",null,"The windows side by side can be used to examine the contents of the\nNew_Movies share on a disk by disk basis. You will notice that the movie\nfolder (500) Days of Summer (2009) is stored on disk1 and the movie\nfolder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted,\nUnraid combines the movies stored on disk1 and disk2 into one network\nshare called New_Movies and both movies appear in the New_Movies network\nshare."),(0,i.kt)("p",null,"Take note that a share called Movies is also visible on disk2."),(0,i.kt)("h5",{id:"split-level-0"},"Split Level 0"),(0,i.kt)("p",null,'This is what you have if in the GUI you select "Manual: do not\nAutomatically split directories".'),(0,i.kt)("p",null,"Split level 0 is a special case. Split level 0 requires you to create\nthe desired top level or parent folder structure. Unraid will\nunconditionally create an object on the disk that contains the parent\nfolders. Unraid will choose which disk to use according to the\nallocation method if the parent folders exist on multiple disks."),(0,i.kt)("p",null,"If you set the Split level to 0, then all directories/files created\nunder that share will be on the same disk where the directory within\nthat share share was originally created. In other words, use level 0 to\nnot allow the share to split automatically across disks"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")," If you create the same folder structure on multiple disks then\nUnraid will apply the other share settings to decide which disk to use."),(0,i.kt)("h6",{id:"example"},"Example"),(0,i.kt)("p",null,"The server has 4 disks. A user share called Media is desired. Different\ntypes of media will be stored in this share. The desired structure is;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"disk1 - will hold the DVD movies."),(0,i.kt)("li",{parentName:"ul"},"disk2 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk3 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk4 - will hold the TV series.")),(0,i.kt)("p",null,"The desired structure is illustrated below."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3610).Z,width:"1369",height:"388"})),(0,i.kt)("p",null,"On the left side is how the user share will appear and on the right side\nis the folder structure on each disk. The user will go to each disk and\ncreate the folders shown in red to create the storage as listed above.\nThen, the Media folder as well as the DVD Movies, BluRay Movies and TV\nShows folders become the parent folders for everything stored in the\nMedia share. The media will be sorted by disk as follows;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Movies placed in the DVD Movies folder will go to disk1."),(0,i.kt)("li",{parentName:"ul"},"Movies placed in the BluRay Movies folder will go to disk2 or disk3.\nThe disk is selected by the allocation method."),(0,i.kt)("li",{parentName:"ul"},"TV shows placed in the TV Shows folder will go to disk4.")),(0,i.kt)("p",null,"Say one day that disk1 is full and disk5 is added to the server to hold\nnew DVD Movies. The same folders on disk1 must be created on the new\ndisk5. In other words, the folder Media and sub-folder DVD Movies must\nbe created on disk5. Then, Unraid can use either disk1 or disk5 to store\nDVD Movies."),(0,i.kt)("h5",{id:"split-by-character"},"Split By Character"),(0,i.kt)("p",null,"Specify a character in the split level box to use this method. Then,\nUnraid will not allow any folder name containing the character to split.\nFor example, set the split level to an opening square bracket ( [ )\ninstead of a number. Then, create each movie folder with the year\nencased in square brackets after the title in this manner - Iron Man 2\n","[2010]",". Unraid will see the opening square bracket ( [ ) and it will\nnot split this folder or any content stored inside this folder."),(0,i.kt)("p",null,"This type of split level can allow different levels of sub-folders to be\nspecified as not splitting simply by inserting the character into the\nfolder name which should not split. This can overcome the limitation of\nhaving a fixed split level for a share."),(0,i.kt)("h3",{id:"included-and-excluded-disks"},"Included and Excluded disk(s)"),(0,i.kt)("p",null,'The included disk(s) and excluded disk(s) parameters control which disks\nare allowed to be used by each user share. These parameters can be used\nseparately or together to define the group of disks allowed for writing\nfiles to each user share. The disks are entered by disk number with a\ncomma separating each disk, for example "disk2,disk5".'),(0,i.kt)("p",null,"Unraid will first check the included disks(s) set and then the Excluded\ndisk(s) set when deciding which disk to place a file on. Then, Unraid\nwill use the split level and allocation method to pick a disk which is\nallowed to hold the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," The Include/Exclude settings at the individual share level\nonly control which disks new files can be written to. Files on other\ndisks that are in a folder corresponding to the share name will still\nshow up under that share for read purposes."),(0,i.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,i.kt)("p",null,'The included disks(s) parameter defines the set of disks which are\ncandidates for allocation to that share. All disks may be used by the\nuser share when the Included disk(s) parameter is left blank. Specify\nthe disks to include here. For example, set the included disk(s) to\n"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and\ndisk3.'),(0,i.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,i.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are\nexcluded from use by the user share. No disks are excluded from use by\nthe user share when the excluded disk(s) parameter is left blank.\nSpecify the disks to exclude here. For example, set the excluded disk(s)\nto "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,i.kt)("h3",{id:"default-shares"},"Default Shares"),(0,i.kt)("p",null,"If you have Docker or VMs enabled then a number of default shares are\nset up to support their use. It is not mandated that you use these\nshares (and the system will let you remove them if you do not want to\nuse them for their standard purpose) but it is recommended as it tends\nto make it easier to support users who encounter problems."),(0,i.kt)("p",null,"The shares that fall into this category are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"appdata"),": this is the default location for storing working files\nassociated with docker containers. Typically there will be a\nsub-folder for each docker container."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": this is the default location for storing the docker\napplication binaries, and VM XML templates"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": this is the default location for storing virtual disk\nimages (vdisks) that are used by VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": this is the default location for storing CD iso images for\nuse with VMs.")),(0,i.kt)("h3",{id:"unraid-612"},"Unraid 6.12"),(0,i.kt)("p",null,"The Unraid 6.12 release has introduced some new terminology to make it\nclearer to new users where files are initially placed and where they\nwill end up. The same functionality is present in earlier releases, but\nhas often been misunderstood by new users."),(0,i.kt)("h4",{id:"primary-storage"},"Primary Storage"),(0,i.kt)("p",null,"This is the location to which ",(0,i.kt)("strong",{parentName:"p"},"new")," files will be written."),(0,i.kt)("p",null,"If Primary storage is below the Minimum Free Space setting then new\nfiles and folders will be created in Secondary storage, if configured"),(0,i.kt)("p",null,"For the Primary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"this option is mandatory. ie, Primary storage must be selected"),(0,i.kt)("li",{parentName:"ul"},"any named pool can be selected"),(0,i.kt)("li",{parentName:"ul"},'"Array" can be selected (meaning the Unraid array)')),(0,i.kt)("h4",{id:"secondary-storage"},"Secondary Storage"),(0,i.kt)("p",null,"This is the location where files will be moved to if appropriate."),(0,i.kt)("p",null,"For the Secondary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"None: This means that there is no secondary storage set for this\nshare i.e Secondary storage is optional"),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is a pool name, then the only options are\n"none" and "Array"'),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is "Array", then only "none" appears as an\noption')),(0,i.kt)("h3",{id:"unraid-611-and-earlier"},"Unraid 6.11 and earlier"),(0,i.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They\nachieve the same functionality as the settings available in 6.12 but are\npresented differently."),(0,i.kt)("h4",{id:"use-cache-and-mover-behavior-with-user-shares"},"Use Cache (and Mover Behavior with User Shares)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": Starting with Unraid 6.9.0 multiple pools can exist and they\ncan have any name the user chooses. Any of these pools can act act as a\ncache in the way Unraid uses the term. The word cache therefore is\nreferring to this functionality and not necessarily to the pool name."),(0,i.kt)("p",null,"Unraid includes an application called ",(0,i.kt)("strong",{parentName:"p"},"mover"),' that is used in\nconjunction with User Shares. It\'s behavior is controlled by the "Use\nCache for new files" setting under each User Share. The way these\ndifferent settings operate is as follows'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on\nthe cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," value. If the free space\nis below that then by-pass the cache and write the files directly to\nthe main array."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move files to the main array as\nlong as they are not currently open. Which array drive will get the\nfile is controlled by the combination of the ",(0,i.kt)("em",{parentName:"p"},"Allocation method"),",\n",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting for the share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive\nwill get the file is controlled by the combination of the\n",(0,i.kt)("em",{parentName:"p"},"Allocation method"),", ",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting\nfor the share."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the cache that logically belong to this\nshare.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space\non the cache is below the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache\nthen the write will fail with an out-of-space error."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the main array that logically belong to\nthis share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the\ncache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the share, and\nif the free space falls below that value then write the files to the\nmain array instead."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move any files for this share\nthat are on the main array back to the cache as long as the free\nspace on the cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the\ncache"),(0,i.kt)("p",{parentName:"li"}," It is the default setting for the ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"System")," Shares that\nare used to support the Docker and VM sub-systems. In typical use\nyou want the files/folders belonging to these shares to reside on\nthe cache as you get much better performance from Docker containers\nand VMs if their files are not on the main array (due to the cost of\nmaintaining parity on the main array significantly slowing down\nwrite operations)."),(0,i.kt)("p",{parentName:"li"}," This setting works for a share even if you do not have (yet) a\nphysical cache drive(s) as then files will simply be written\ndirectly to the array. If at a later date you add a cache drive\nmover will now automatically try and move the files in any share set\nto Prefer to the pool defined as the cache for the share to improve\nperformance. This is why it is the default for shares that are\ntypically located on the cache rather than ",(0,i.kt)("em",{parentName:"p"},"Only")," as it caters for\nthose who do not (yet) have a cache drive."))),(0,i.kt)("h5",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,i.kt)("p",null,"This is the more traditional usage of a pool for caching where one wants\nthe files for a particular share initially written to a pool acting as a\ncache to maximise write speed, but later you want it to be moved to the\nmain array for long term storage. Most of the time all that is required\nis to set the Use Cache setting for the share to Yes and the default\nbehaviour handles the rest with no further user interaction."),(0,i.kt)("p",null,"Sometimes for one reason or another users find that the files seem to be\n'stuck' on a pool. The way to proceed in such a case to get the files\nbelonging to a share from a pool onto the main array is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)."),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Yes")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move ",(0,i.kt)("em",{parentName:"li"},"Yes"),"\ntype shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use if you disabled them earlier."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"Only")," to say files\nfor this share can never be written to the array.")),(0,i.kt)("h5",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,i.kt)("p",null,"One typically wants files associated with running Docker containers or\nVMs on a pool to maximise performance. It is not unusual for one reason\nor another to find that one has files on the main array which you really\nwant to be on a pool. In particular this is likely to happen for the\nappdata or system shares"),(0,i.kt)("p",null,"The way to proceed to get the files belonging to a share from the main\narray onto a pool is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)"),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Prefer")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move\n",(0,i.kt)("em",{parentName:"li"},"Prefer")," type shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"No")," to say files for\nthis share can never be cached on a pool.")),(0,i.kt)("h2",{id:"disk-shares"},"Disk Shares"),(0,i.kt)("p",null,"These are shares that relate to individual array drives or pools within\nthe Unraid system and that are visible over the network. By default if\nUser Shares are enabled then Disk Shares are not enabled (see the\nIMPORTANT section below for the reason why this is the case). If you\nwant the Disk Shares to be enabled then this is done under\nSettings-",">","Global Share Settings. The Disk Shares will then appear in\nthe Unraid GUI under a Disk Shares section on the Shares tab. You will\nwant to modify the user permissions to restrict network user access if\ndesired, just like User Shares."),(0,i.kt)("p",null,"When viewed at the Linux level the physical devices or pools will appear\ndirectly under ",(0,i.kt)("em",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or\npool. (This happens regardless of whether Disk Shares are enabled) .\nExamples of such names are:"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/diskX:")," these are array drives where X corresponds to the disk\nnumber that shows in the Unraid GUI. The corresponding Disk Share at the\nnetwork level would be ",(0,i.kt)("em",{parentName:"p"},"diskX")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/pool-name:")," These are pools. A single pool can actually consist of\nmultiple drives but Unraid treats them as if they were one drive. The\ncommonest example of a pool-name is ",(0,i.kt)("em",{parentName:"p"},"'cache'")," but it can be any name\ndefined by the user. The corresponding Disk Share at the network level\nwould be ",(0,i.kt)("em",{parentName:"p"},"pool-name.")),(0,i.kt)("p",null,"The Unraid flash device that is used to boot Unraid and store all user\nsettings is also a physical device, but is not normally considered to be\na Disk Share. If you want it visible on the network then you can click\non it in the Main tab and set it to appear at the network level as the\n'",(0,i.kt)("em",{parentName:"p"},"flash"),"' share. At the Linux level it is mounted at /",(0,i.kt)("em",{parentName:"p"},"boot")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),"\nIf you have both ",(0,i.kt)("em",{parentName:"p"},"Disk Shares")," and ",(0,i.kt)("em",{parentName:"p"},"User Shares")," enabled then there\nis an important restriction that you must observe if you want to\navoid potential data loss. What you must ",(0,i.kt)("strong",{parentName:"p"},"NEVER")," do is copy\nbetween a ",(0,i.kt)("strong",{parentName:"p"},"User Share")," and a ",(0,i.kt)("strong",{parentName:"p"},"Disk Share")," in the same copy\noperation where the folder name on the Disk Share corresponds to the\nUser Share name. This is because at the base system level Linux does\nnot understand ",(0,i.kt)("em",{parentName:"p"},"User Shares")," and therefore that a file on a ",(0,i.kt)("em",{parentName:"p"},"Disk\nShare")," and a ",(0,i.kt)("em",{parentName:"p"},"User Share")," can be different views of the ",(0,i.kt)("strong",{parentName:"p"},"same"),"\nfile. If you mix the share types in the same copy command you can\nend up trying to copy the file to itself which results in the file\nbeing truncated to zero length and its content thus being lost."),(0,i.kt)("p",null,"There is no problem if the copy is between shares of the same type,\nor copying to/from a disk mounted as an Unassigned Device."),(0,i.kt)("p",null,"There is another quirk of the interaction between Linux and the Unraid\nUser Share system that users can encounter if they are working at the\nDisk Share level. The Linux command for Move is implemented by first\ntrying a rename on the file (which is fast) and only if that fails does\nit do a copy then delete operation. This can mean that under some\ncircumstances when working locally on the server (e.g. from the command\nline when you try to move files from one user share to another, Linux\nwill often simply rename the files so they have a different path on the\nsame disk, in violation of any user share settings such as included\ndisks. The workaround for this is to instead explicitly copy from source\nto destination so that new files get created following the user share\nsettings, then deleting from the source."),(0,i.kt)("h2",{id:"network-access"},"Network access"),(0,i.kt)("p",null,"You can control what protocols should be supported for accessing the\nUnraid server across the network. Click on Settings-",">","Network Services\nto see the various options available.. These options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"SMB"),": This the standard protocol used by Windows systems. It is\nwidely implemented on other systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"NFS"),": ",(0,i.kt)("strong",{parentName:"li"},"N"),"etwork ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"S"),"ystem. This is a protocol widely\nused on Unix compatible systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"AFP"),": ",(0,i.kt)("strong",{parentName:"li"},"A"),"pple ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol. This is the protocol that\nhas historically been used on Apple Mac systems. It is now a\ndeprecated option as the latest versions of MacOS now use SMB as the\ntransferred protocol for accessing files and folders over the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"FTP"),": ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"T"),"ransfer ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol.")),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the visibility of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes"),": With this setting the share will be visible across the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes (Hidden)"),": With this setting the share can be accessed across\nthe network but will not be listed when browsing the shares on the\nserver. Users can still access the share as long as they know the\nname and the user is prepared to enter in manually."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"No"),": With this option selected then it is not possible to access\nthe share across the network.")),(0,i.kt)("h2",{id:"access-permissions"},"Access Permissions"),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the access rights of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Security")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Public"),": All users have both read and write access to the\ncontents of the share"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Secure"),": All users including guests have read access, you select\nwhich of your users have write access"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Private"),": You select which of your users have access and for each\nuser whether that user has read/write or read-only access.")),(0,i.kt)("h3",{id:"windows-gotcha"},"Windows 'Gotcha'"),(0,i.kt)("p",null,"There is an issue with the way Windows handles network shares that many\nusers fall foul of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"This is the fact that Windows only allows a ",(0,i.kt)("strong",{parentName:"li"},"single")," username to\nbe used to connect to a specific server at any given time. All\nattempts to then connect to a different share on the same server\nthat are not public shares put up a Username/Password prompt and\nthis fails as though you have entered an incorrect password for this\nusername. If you have any shares on the server set to ",(0,i.kt)("strong",{parentName:"li"},"Private")," or\n",(0,i.kt)("strong",{parentName:"li"},"Secure")," access it can therefore be important that you connect to\nsuch a share first before any shares set for ",(0,i.kt)("strong",{parentName:"li"},"Public")," access which\nmay connect as a guest user and make subsequent attempts to connect\nwith a specific user fail."),(0,i.kt)("li",{parentName:"ul"},"A workaround that can help with avoiding this issue is the fact that\nif you access a server both by it's network name and via it's IP\naddress then Windows will treat it a two separate servers as far as\nauthentication is concerned.")))}c.isMDXComponent=!0},8272:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG"},3610:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG"},5154:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg"},8362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG"},1298:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG"},3865:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG"},2778:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG"}}]); \ No newline at end of file diff --git a/es/assets/js/935f2afb.b09d5f8b.js b/es/assets/js/935f2afb.b09d5f8b.js new file mode 100644 index 000000000..57482c137 --- /dev/null +++ b/es/assets/js/935f2afb.b09d5f8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/es/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/es/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/es/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/es/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/es/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/es/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/es/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/es/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/es/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/es/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/es/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/es/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/es/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/es/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/es/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/es/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/es/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/es/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/es/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/es/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/es/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"C\xf3mo Canjear un C\xf3digo de Activaci\xf3n de Licencia","href":"/es/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/es/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/es/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/es/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/es/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/es/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Shares","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User shares","href":"/es/unraid-os/manual/shares/user-shares","docId":"unraid-os/manual/shares/user-shares"},{"type":"link","label":"Disk shares","href":"/es/unraid-os/manual/shares/disk-shares","docId":"unraid-os/manual/shares/disk-shares"},{"type":"link","label":"Network access","href":"/es/unraid-os/manual/shares/network-access","docId":"unraid-os/manual/shares/network-access"},{"type":"link","label":"Create a new share","href":"/es/unraid-os/manual/shares/create-a-share","docId":"unraid-os/manual/shares/create-a-share"},{"type":"link","label":"Delete a share","href":"/es/unraid-os/manual/shares/delete-a-share","docId":"unraid-os/manual/shares/delete-a-share"}],"href":"/es/unraid-os/manual/shares/"},{"type":"link","label":"Overview","href":"/es/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/es/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Docker Management","href":"/es/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/es/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/es/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/es/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Good Practices","href":"/es/unraid-os/manual/security/good-practices","docId":"unraid-os/manual/security/good-practices"},{"type":"link","label":"Securing webGUI connections (SSL)","href":"/es/unraid-os/manual/security/secure-webgui-ssl","docId":"unraid-os/manual/security/secure-webgui-ssl"},{"type":"link","label":"Data Encryption","href":"/es/unraid-os/manual/security/data-encryption","docId":"unraid-os/manual/security/data-encryption"},{"type":"link","label":"Flash Drive","href":"/es/unraid-os/manual/security/flash-drive","docId":"unraid-os/manual/security/flash-drive"},{"type":"link","label":"VPN","href":"/es/unraid-os/manual/security/vpn","docId":"unraid-os/manual/security/vpn"}],"href":"/es/unraid-os/manual/security/"},{"type":"link","label":"Multi-Language Support","href":"/es/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/es/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/es/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/es/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/es/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Method","href":"/es/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/es/category/getting-started"},{"type":"link","label":"Tools","href":"/es/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/es/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/es/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/es/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/es/category/zfs"}],"href":"/es/category/manual"}],"href":"/es/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/es/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/es/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/es/connect/remote-access","docId":"connect/remote-access"}],"href":"/es/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/es/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/es/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/es/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/es/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/es/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/es/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/es/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/es/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/es/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/es/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/es/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/es/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/es/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/es/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/es/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/es/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/es/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/es/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/es/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/es/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/es/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/es/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/es/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/es/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/es/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/es/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/es/category/tutorial---extras"}],"href":"/es/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"C\xf3mo Canjear un C\xf3digo de Activaci\xf3n de Licencia","description":"Primero, siga nuestra gu\xeda de inicio para configurar un servidor","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Method","description":"M\xe9todo manual","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security/data-encryption":{"id":"unraid-os/manual/security/data-encryption","title":"Data Encryption","description":"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.","sidebar":"unraidSidebar"},"unraid-os/manual/security/flash-drive":{"id":"unraid-os/manual/security/flash-drive","title":"Flash Drive","description":"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.","sidebar":"unraidSidebar"},"unraid-os/manual/security/good-practices":{"id":"unraid-os/manual/security/good-practices","title":"Good Practices","description":"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.","sidebar":"unraidSidebar"},"unraid-os/manual/security/secure-webgui-ssl":{"id":"unraid-os/manual/security/secure-webgui-ssl","title":"Securing webGUI connections (SSL)","description":"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let\'s Encrypt.","sidebar":"unraidSidebar"},"unraid-os/manual/security/security":{"id":"unraid-os/manual/security/security","title":"Security","description":"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.","sidebar":"unraidSidebar"},"unraid-os/manual/security/vpn":{"id":"unraid-os/manual/security/vpn","title":"VPN","description":"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/create-a-share":{"id":"unraid-os/manual/shares/create-a-share","title":"Create a new share","description":"When you create a new share, plan ahead.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/delete-a-share":{"id":"unraid-os/manual/shares/delete-a-share","title":"Delete a share","description":"To delete a share on your Unraid server the share must contain no data.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/disk-shares":{"id":"unraid-os/manual/shares/disk-shares","title":"Disk shares","description":"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/network-access":{"id":"unraid-os/manual/shares/network-access","title":"Network access","description":"Communication protocols","sidebar":"unraidSidebar"},"unraid-os/manual/shares/shares":{"id":"unraid-os/manual/shares/shares","title":"Shares","description":"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/user-shares":{"id":"unraid-os/manual/shares/user-shares","title":"User shares","description":"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/es/assets/js/935f2afb.d9784532.js b/es/assets/js/935f2afb.d9784532.js deleted file mode 100644 index 14e9be908..000000000 --- a/es/assets/js/935f2afb.d9784532.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/es/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/es/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/es/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/es/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/es/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/es/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/es/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/es/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/es/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/es/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/es/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/es/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/es/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/es/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/es/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/es/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/es/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/es/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/es/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/es/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/es/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"C\xf3mo Canjear un C\xf3digo de Activaci\xf3n de Licencia","href":"/es/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/es/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/es/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/es/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/es/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/es/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/es/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/es/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Shares","href":"/es/unraid-os/manual/shares","docId":"unraid-os/manual/shares"},{"type":"link","label":"Docker Management","href":"/es/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/es/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/es/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/es/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"link","label":"Multi-Language Support","href":"/es/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/es/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/es/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/es/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/es/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Method","href":"/es/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/es/category/getting-started"},{"type":"link","label":"Security","href":"/es/unraid-os/manual/security","docId":"unraid-os/manual/security"},{"type":"link","label":"Tools","href":"/es/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/es/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/es/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/es/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/es/category/zfs"}],"href":"/es/category/manual"}],"href":"/es/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/es/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/es/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/es/connect/remote-access","docId":"connect/remote-access"}],"href":"/es/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/es/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/es/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/es/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/es/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/es/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/es/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/es/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/es/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/es/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/es/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/es/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/es/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/es/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/es/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/es/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/es/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/es/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/es/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/es/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/es/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/es/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/es/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/es/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/es/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/es/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/es/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/es/category/tutorial---extras"}],"href":"/es/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"C\xf3mo Canjear un C\xf3digo de Activaci\xf3n de Licencia","description":"Primero, siga nuestra gu\xeda de inicio para configurar un servidor","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Method","description":"M\xe9todo manual","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security":{"id":"unraid-os/manual/security","title":"Security","description":"This section covers various security-related aspects of Unraid","sidebar":"unraidSidebar"},"unraid-os/manual/shares":{"id":"unraid-os/manual/shares","title":"Shares","description":"Once you have assigned some devices to Unraid and started the array, you","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/es/assets/js/9d23aec8.1333bc54.js b/es/assets/js/9d23aec8.1333bc54.js new file mode 100644 index 000000000..6ae48b173 --- /dev/null +++ b/es/assets/js/9d23aec8.1333bc54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1754],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>d});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),h=p(a),u=n,d=h["".concat(s,".").concat(u)]||h[u]||m[u]||o;return a?r.createElement(d,l(l({ref:t},c),{},{components:a})):r.createElement(d,l({ref:t},c))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[h]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},6419:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:6},l="Delete a share",i={unversionedId:"unraid-os/manual/shares/delete-a-share",id:"unraid-os/manual/shares/delete-a-share",title:"Delete a share",description:"To delete a share on your Unraid server the share must contain no data.",source:"@site/docs/unraid-os/manual/shares/delete-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/delete-a-share",permalink:"/es/unraid-os/manual/shares/delete-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/delete-a-share.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"unraidSidebar",previous:{title:"Create a new share",permalink:"/es/unraid-os/manual/shares/create-a-share"},next:{title:"Overview",permalink:"/es/unraid-os/manual/what-is-unraid"}},s={},p=[{value:"Delete an empty share",id:"delete-an-empty-share",level:2},{value:"Delete a share that contains data",id:"delete-a-share-that-contains-data",level:2}],c={toc:p},h="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"delete-a-share"},"Delete a share"),(0,n.kt)("p",null,"To delete a share on your Unraid server the share must contain no data."),(0,n.kt)("h2",{id:"delete-an-empty-share"},"Delete an empty share"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted. Select ",(0,n.kt)("strong",{parentName:"li"},"Done"),".")),(0,n.kt)("h2",{id:"delete-a-share-that-contains-data"},"Delete a share that contains data"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Apps"),"."),(0,n.kt)("li",{parentName:"ol"},"Install a file management plugin from Community, such as Dynamix File Manager."),(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive."),(0,n.kt)("li",{parentName:"ol"},"If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion."),(0,n.kt)("li",{parentName:"ol"},"Delete the data or move it to another share on the server."),(0,n.kt)("li",{parentName:"ol"},"Return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete. This will open the share settings. If no data is left in the share, a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox is available."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted."),(0,n.kt)("li",{parentName:"ol"},"Select ",(0,n.kt)("strong",{parentName:"li"},"Done")," to return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"))),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/a78d85c7.dfd666f5.js b/es/assets/js/a78d85c7.dfd666f5.js deleted file mode 100644 index 4feab866b..000000000 --- a/es/assets/js/a78d85c7.dfd666f5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=i,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var u=2;u<r;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},5536:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),i=(n(7294),n(4137));const r={},o="Security",s={unversionedId:"unraid-os/manual/security",id:"unraid-os/manual/security",title:"Security",description:"This section covers various security-related aspects of Unraid",source:"@site/docs/unraid-os/manual/security.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/security",permalink:"/es/unraid-os/manual/security",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Method",permalink:"/es/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Tools",permalink:"/es/unraid-os/manual/tools"}},l={},u=[{value:"Good Practices",id:"good-practices",level:2},{value:"Set a strong root password",id:"set-a-strong-root-password",level:3},{value:"Review port mappings on your router",id:"review-port-mappings-on-your-router",level:3},{value:"Never ever ever put your server in the DMZ",id:"never-ever-ever-put-your-server-in-the-dmz",level:3},{value:"Consider setting shares to private with users and passwords",id:"consider-setting-shares-to-private-with-users-and-passwords",level:3},{value:"Don't expose the Flash share, and if you do, make it private",id:"dont-expose-the-flash-share-and-if-you-do-make-it-private",level:3},{value:"Keep your server up-to-date",id:"keep-your-server-up-to-date",level:3},{value:"Use a secure method for remote administration",id:"use-a-secure-method-for-remote-administration",level:3},{value:"Securing webGui connections (SSL)",id:"securing-webgui-connections-ssl",level:2},{value:"A few details before we begin",id:"a-few-details-before-we-begin",level:3},{value:"How would you like to access the Unraid webGui while on your LAN?",id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan",level:3},{value:"Http only",id:"http-only",level:4},{value:"Https with Self-signed certificate",id:"https-with-self-signed-certificate",level:4},{value:"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable",level:4},{value:"Https with Myunraid.net certificate - with no fallback URL",id:"https-with-myunraidnet-certificate---with-no-fallback-url",level:4},{value:"Redirects",id:"redirects",level:3},{value:"Unraid Connect Remote Access",id:"unraid-connect-remote-access",level:3},{value:"Custom Certificates",id:"custom-certificates",level:3},{value:"Https with Custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:4},{value:"Data Encryption",id:"data-encryption",level:2},{value:"Flash Drive",id:"flash-drive",level:2},{value:"Backups",id:"backups",level:3},{value:"Network Access",id:"network-access",level:3},{value:"Permissions",id:"permissions",level:3},{value:"VPN",id:"vpn",level:2},{value:"Router",id:"router",level:3},{value:"OpenVPN",id:"openvpn",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Overview",id:"overview",level:4},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:4},{value:"Prerequisites",id:"prerequisites",level:5},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:5},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:5},{value:"Caution",id:"caution",level:6},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:5},{value:"About DNS",id:"about-dns",level:5},{value:"Complex Networks",id:"complex-networks",level:5},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:5},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:4},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:5},{value:"Configuring VPN tunneled access",id:"configuring-vpn-tunneled-access",level:5},{value:"Testing the tunnel",id:"testing-the-tunnel",level:5},{value:"Support",id:"support",level:4}],c={toc:u},h="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"security"},"Security"),(0,i.kt)("p",null,"This section covers various security-related aspects of Unraid"),(0,i.kt)("h2",{id:"good-practices"},"Good Practices"),(0,i.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that a\nuser would hate to lose. Since most users will have their home network\nconnected to the internet then precautions should be taken to avoid an\nUnraid server being compromised by malicious actors trying to access\nthem remotely."),(0,i.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls\nthat some user encounter regarding the security of their Unraid servers."),(0,i.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are\nsafe."),(0,i.kt)("p",null,"There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum\nthread"),"\nthat discusses this topic."),(0,i.kt)("h3",{id:"set-a-strong-root-password"},"Set a strong root password"),(0,i.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by\ndefault. This is to ensure you can quickly and easily access the\nmanagement console immediately after initial installation. However, this\ndoesn't mean you shouldn't set one. Doing this is simple. Just\nnavigate to the Users tab and click on root. Now set a password. From\nthen on, you will be required to authenticate anytime you attempt to\nlogin to the webGui."),(0,i.kt)("p",null,"In addition, there is a plugin available in Community Apps called\n",(0,i.kt)("em",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how\nstrong of a password you're creating based on complexity rules (how\nmany capital vs. lowercase letters, numbers, symbols, and overall\npassword length are used to judge this). Consider installing this for\nextra guidance on password strength. Once installed it is available in\nthe settings for any user to give guidance on the strength of any\npassword you type in."),(0,i.kt)("p",null,"You could also use ",(0,i.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this web\npage")," to get a very quick\nassessment of the strength of any specific password."),(0,i.kt)("h3",{id:"review-port-mappings-on-your-router"},"Review port mappings on your router"),(0,i.kt)("p",null,"Forwarding ports to your server is required for specific services that\nyou want to be Internet-accessible such as Plex, FTP servers, game\nservers, VoIP servers, etc. But forwarding the wrong ports can expose\nyour server to significant security risk. Here are just a few ports you\nshould be extra careful with when forwarding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 80"),": Used to access the webGui without SSL (unless you've\nrebound access to another port on the Management Access settings\npage). Forwarding this port by default will allow you to access the\nwebGui remotely, but without SSL securing the connection, devices in\nbetween your browser and the server could \"sniff\" the packets to\nsee what you're doing. If you want to make the webGui remotely\naccessible, install the ",(0,i.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," plugin, which can provide a\nsecure remote access solution that utilizes SSL to ensure your\nconnection is fully encrypted.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 443"),": Used to access the webGui with SSL. This is only\nbetter than port 80 if you have a root password set. If no root\npassword is set and you forward this port, unauthorized users can\nconnect to your webGui and have full access to your server. In\naddition, if you forward this port without using the ",(0,i.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect"),"\nplugin, attempts to connect to the webGui through a browser will\npresent a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,i.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect"),"\nplugin to enable simple, safe, and secure remote access to your\nUnraid systems.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 445"),": Used for SMB (shares). If you forward this port to\nyour server, any public shares can be connected to by any user over\nthe internet. Generally speaking, it is never advisable to expose\nSMB shares directly over the internet. If you need the ability to\naccess your shares remotely, we suggest utilizing a WireGuard VPN to\ncreate a secure tunnel between your device and the server. In\naddition, if the flash device itself is exported using SMB and this\nport is forwarded, its contents can easily be deleted and your paid\nkey could easily be stolen. Just don't do this.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 111/2049:")," Used for NFS (shares). While NFS is disabled by\ndefault, if you are making use of this protocol, just make sure you\naren't forwarding these ports through your router. Similar to SMB,\njust utilize WireGuard to create a secure tunnel from any remote\ndevices that need to connect to the server over NFS.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all,\nbut rather, suggest users leverage a WireGuard VPN connection for\nthe purposes of connecting using either of these protocols.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Ports in the 57xx range:")," These ports are generally used by VMs\nfor VNC access. While you can forward these ports to enable VNC\naccess remotely for your VMs, the better and easier way to do this\nis through installing the ",(0,i.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections\nare secure via SSL and does not require individual ports to be\nforwarded for each VM."))),(0,i.kt)("p",null,"Generally speaking, you really shouldn't need to forward many ports to\nyour server. If you see a forwarding rule you don't understand,\nconsider removing it, see if anyone complains, and if so, you can always\nput it back."),(0,i.kt)("h3",{id:"never-ever-ever-put-your-server-in-the-dmz"},"Never ever ever put your server in the DMZ"),(0,i.kt)("p",null,'No matter how locked down you think you have your server, it is never\nadvisable to place it in the DMZ on your network. By doing so, you are\nessentially forwarding every port on your public IP address to your\nserver directly, allowing all locally accessible services to be remotely\naccessible as well. Regardless of how "locked down" you think you\nactually have the server, placing it in the DMZ exposes it to\nunnecessary risks. Never ever do this.'),(0,i.kt)("h3",{id:"consider-setting-shares-to-private-with-users-and-passwords"},"Consider setting shares to private with users and passwords"),(0,i.kt)("p",null,"The convenience of password-less share access is pretty great. We know\nthat and its why we don't require you to set passwords for your shares.\nHowever, there is a security risk posed to your data when you do this,\neven if you don't forward any ports to your server and have a strong\nroot password. If another device on your network such as a PC, Mac,\nphone, tablet, IoT device, etc. were to have its security breached, it\ncould be used to make a local connection to your server's shares. By\ndefault, shares are set to be publicly readable/writeable, which means\nthose rogue devices can be used to steal, delete, or encrypt the data\nwithin them. In addition, malicious users could also use this method to\nput data on your server that you don't want. It is for these reasons\nthat if you are going to create public shares, we highly recommend\nsetting access to read-only. Only authorized users with a strong\npassword should be able to write data to your shares."),(0,i.kt)("h3",{id:"dont-expose-the-flash-share-and-if-you-do-make-it-private"},"Don't expose the Flash share, and if you do, make it private"),(0,i.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if\nyou need to make advanced changes to your system such as modifying the\ngo file in the config directory. However, the flash device itself\ncontains the files needed to boot Unraid as well as your configuration\ndata (disk assignments, shares, etc). Exposing this share publicly can\nbe extremely dangerous, so we advise against doing so unless you\nabsolutely have to, and when you do, it is advised to do so privately,\nrequiring a username and password to see and modify the contents."),(0,i.kt)("h3",{id:"keep-your-server-up-to-date"},"Keep your server up-to-date"),(0,i.kt)("p",null,"Regardless of what other measures you take, keeping your server current\nwith the latest release(s) is vital to ensuring security. There are\nconstant security notices (CVEs) published for the various components\nused in Unraid OS. We here at Lime Technology do our best to ensure all\nvulnerabilities are addressed in a timely manner with software updates.\nHowever, these updates are useless to you if you don't apply them in a\ntimely manner as well. Keeping your OS up-to-date is easy. Just navigate\nto Tools -",">"," Update OS to check for and apply any updates. You can\nconfigure notifications to prompt you when a new update is available\nfrom the Settings -",">"," Notifications page."),(0,i.kt)("h3",{id:"use-a-secure-method-for-remote-administration"},"Use a secure method for remote administration"),(0,i.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be\nadministered remotely but this should never be done by simply exposing\nexposing the Unraid webGui to the internet."),(0,i.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology.\nUnraid includes as standard the WireGuard VPN and an OpenVPN plugin and\nDocker container is also available. In addition many routers have built\nin VPN support which can be used."),(0,i.kt)("p",null,"An alternative for making the webGui remotely accessible is to install\nthe ",(0,i.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution\nthat utilizes SSL to ensure your connection is fully encrypted."),(0,i.kt)("h2",{id:"securing-webgui-connections-ssl"},"Securing webGui connections (SSL)"),(0,i.kt)("p",null,"Using wildcard SSL Certificates provisioned by ",(0,i.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's\nEncrypt"),", Unraid OS 6.10 improves the security\nof the SSL implementation for both local access and ",(0,i.kt)("a",{parentName:"p",href:"/es/connect/remote-access"},"Unraid Connect Remote Access"),"."),(0,i.kt)("h3",{id:"a-few-details-before-we-begin"},"A few details before we begin"),(0,i.kt)("p",null,"Some terms:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"servername")," can be changed on the Settings -",">",' Identification\npage. It defaults to "tower".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"localTLD")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "local".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "No".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTP port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "80". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTP port]")," to any of the http URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local:8080"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "443". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTPS port]")," to any of the https URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local:3443"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"certificate")," refers to either a self-signed SSL Certificate, or a\nSSL certificate issued by a Certificate Authority (Let's Encrypt)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"lan-ip")," is your server's LAN IP address with dots changed to\ndashes (example 192-168-100-1)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"wan-ip")," is your internet-facing IP address with dots changed to\ndashes (example 136-26-144-139)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"hash")," is a random 40 character hex string (160 bits) uniquely\nassigned to your server when a certificate is first issued")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Caveats of using a self-signed certificate"),": Note that browsers will\nshow a certificate error because they cannot verify the authenticity of\nself-signed certificates. All traffic will be encrypted once users\nacknowledge the browser warning."),(0,i.kt)("h3",{id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan"},"How would you like to access the Unraid webGui while on your LAN?"),(0,i.kt)("h4",{id:"http-only"},"Http only"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to No"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Traffic between the browser and the server will not be encrypted")),(0,i.kt)("h4",{id:"https-with-self-signed-certificate"},"Https with Self-signed certificate"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},'Unraid will manage the certificate for you. See "Caveats of using a\nself-signed certificate" above.')),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable"},"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate)'),(0,i.kt)("li",{parentName:"ul"},"Leave ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either No or Yes"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to No:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' set to Yes. Note that these\nURLs use a self-signed certificate (See "Caveats of using a\nself-signed certificate" above)',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your alternate URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This personal link\nis shown in the Certificate subject field on the Management Access\npage. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted if using https."),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"If at any point DNS resolution becomes unavailable, the alternate\nURL may not resolve. In this case use the primary URL as a fallback.")),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-no-fallback-url"},"Https with Myunraid.net certificate - with no fallback URL"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate if you run the ',(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned\nbelow)"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},'If DNS Rebinding is not an issue, the "Strict" option for ',(0,i.kt)("strong",{parentName:"li"},"Use\nSSL/TLS")," will be available."),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' to Strict (this was previously called "Auto",\nbut "Strict" is more descriptive)'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),") This\npersonal link is shown in the Certificate subject field on the\nManagement Access page. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"Note: If at any point DNS resolution becomes unavailable (e.g., your\nInternet goes down), use telnet, SSH or local keyboard/monitor to\nlogin. Then:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")),(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]"),'\nusing a self-signed certificate (See\n"Caveats of using a self-signed certificate" above)'),(0,i.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),"\nback to Strict")))),(0,i.kt)("h3",{id:"redirects"},"Redirects"),(0,i.kt)("p",null,"When accessing ",(0,i.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or\n",(0,i.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]")," , the behavior will change\ndepending on the value of the ",(0,i.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Strict, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior\nmakes it more difficult to access your server when DNS is\nunavailable (i.e. your Internet goes down). If that happens see the\nnote under ",(0,i.kt)("inlineCode",{parentName:"li"},"HTTPS with Myunraid.net certificate - with no fallback\nURL")," above."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Yes, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]"),"\nas that will likely work even if your Internet goes down."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to No, then the http url will load\ndirectly.")),(0,i.kt)("p",null,"Note: for the redirects to work, you must start from http urls not https\nurls."),(0,i.kt)("h3",{id:"unraid-connect-remote-access"},"Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect")," plugin"),(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Provision")," if you haven't already"),(0,i.kt)("li",{parentName:"ul"},"Regardless of the value of ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),", you will have the option\nto access the server using\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),")."),(0,i.kt)("li",{parentName:"ul"},"Navigate to Settings -",">"," Management Access -",">"," Unraid Connect page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Allow Remote Access")," to yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you want to use. For added security we\nrecommend you choose a random port over 1000 rather than using the\ndefault of 443. i.e. something like 13856, 48653, etc"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Apply")),(0,i.kt)("li",{parentName:"ul"},"Setup your router to port forward the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe LAN IP address and ",(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a\nnote on the screen telling you the exact port and IP to use."),(0,i.kt)("li",{parentName:"ul"},"Press the ",(0,i.kt)("strong",{parentName:"li"},"Check"),' button. If the port is forwarded correctly you\nwill see a message saying "Your Unraid Server is reachable from the\nInternet"'),(0,i.kt)("li",{parentName:"ul"},"To access your server using Remote Access, login to the Unraid Connect\nDashboard and click the Remote Access link. The URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[wan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856"),").")),(0,i.kt)("h3",{id:"custom-certificates"},"Custom Certificates"),(0,i.kt)("h4",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"Https with Custom certificate - with option to have Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of\nthe certificate.'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS\nfor this URL."),(0,i.kt)("li",{parentName:"ul"},"You are responsible for managing the certificate. Upload it to\n",(0,i.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem")),(0,i.kt)("li",{parentName:"ul"},"The certificate must be valid for ",(0,i.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be\n",(0,i.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be\nspecified in either the "Subject" of the certificate or one of the\n"Subject Alternative Name" fields (prior to 6.10.3, only the\n"Subject" field was used). If you find that Unraid deletes your\ncertificate, it is because the server\'s url is not specified in the\ncertificate.'),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"(optional) If desired, see the Unraid Connect Remote Access section\nabove")),(0,i.kt)("h2",{id:"data-encryption"},"Data Encryption"),(0,i.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the\narray. It does this using the Linux LUKS (Linux Unified Key System)\nencryption modules."),(0,i.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a\nstandard on-disk-format, it does not only facilitate compatibility among\ndistributions but also provides secure management of multiple user\npasswords. In contrast to an existing solution, LUKS stores all\nnecessary setup information in the partition header, enabling the user\nto transport or migrate their data seamlessly."),(0,i.kt)("p",null,"The home page for LUKS can be found\n",(0,i.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,i.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can\nbe read on any standard Linux system even when removed from Unraid as\nlong as one has the key phrase/file needed to unlock the drive."),(0,i.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting\nall drives being used by Unraid. The key for the encryption can be\neither a pass phrase, or provided via a key file. When using a key file\nit is a good idea to use something like an image as there is no chance\nof that ever being guessed. You must make sure that you do not lose the\nencryption key as without it you will not be able to access the data on\nencrypted drives."),(0,i.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the\ndrive)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Click on the drive on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"change the file system to the encrypted type that you want to use"),(0,i.kt)("li",{parentName:"ul"},"click Apply to commit the change"),(0,i.kt)("li",{parentName:"ul"},"click Done to return to the Main tab"),(0,i.kt)("li",{parentName:"ul"},"the drive will now show as unmountable and the option to format\nunmountable drives will be present. Check that the drive is the one\nyou are expecting to be encrypted and if it is correct go ahead and\nformat it.")),(0,i.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the\nencryption key when starting the array. Once this has been done and the\narray successfully started then you can access the data without being\naware of the fact that any drive is encrypted."),(0,i.kt)("p",null,"CAUTION: Encrypting data is good from a security perspective, but users\nshould be aware of the fact that it can complicate recovering from\ncertain types of hardware failure without data loss. On that basis only\nuse encryption if you feel you have a real need for it, and ideally make\nsure you have a good system for backing up any important data."),(0,i.kt)("h2",{id:"flash-drive"},"Flash Drive"),(0,i.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains\nall the configuration information relating to an Unraid server. You\ntherefore want to consider the security of the information it contains\nand how it is accessed."),(0,i.kt)("h3",{id:"backups"},"Backups"),(0,i.kt)("p",null,"If a flash drive ever fails for any reason then as long as you have a\nbackup getting the Unraid server back into normal operation is an easy\nprocess. It is recommended that you make a backup whenever you make a\nsignificant configuration change."),(0,i.kt)("p",null,"You easily achieve this from the Unraid GUI by:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Click on the flash drive on the Main tab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"In the ",(0,i.kt)("em",{parentName:"li"},"Flash Device Settings")," section click on the ",(0,i.kt)("strong",{parentName:"li"},"Flash Backup"),"\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The system will now start creating a zip file that is a backup of\nthe contents of the flash drive"),(0,i.kt)("li",{parentName:"ol"},"When the zip file has been created your browser should prompt you to\nprovide the location where you want the backup saved to. It is\nrecommended that this is a location off the Unraid server so that it\nis available even when the Unraid server is not operational.")),(0,i.kt)("p",null,"If you later need to recreate your flash drive for any reason this\nbackup can be used as input to the Limetech USB Creator tool."),(0,i.kt)("h3",{id:"network-access"},"Network Access"),(0,i.kt)("p",null,"The flash drive can have similar settings applied to it to control\naccess over the network as is the case for other shares on an Unraid\nsystem. The difference is that you set this up by clicking on the\n",(0,i.kt)("strong",{parentName:"p"},"flash")," device on the ",(0,i.kt)("em",{parentName:"p"},"Main")," tab in the GUI rather than doing it via\nthe Shares tab."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network visibility"),": You can specify whether the flash drive\nshould even be accessible via the network, and if it is accessible\nwhether it should be hidden or visible to everyone."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any\naccess permissions that you want applied.")),(0,i.kt)("h3",{id:"permissions"},"Permissions"),(0,i.kt)("p",null,"As part of improving the security of Unraid systems, starting with\nUnraid 6.8 files on the flash drive can no longer be given execute\npermission."),(0,i.kt)("p",null,"The implication of this is that if a user has their own custom scripts\n(or programs) stored on the flash drive they can no longer be executed\nfrom that location. There are a number of ways to handle this:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Copy the files to a location from which they can be executed",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The location ",(0,i.kt)("em",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the\nfiles on the default search path."),(0,i.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding\nappropriate commands to the config/go file on the flash drive."),(0,i.kt)("li",{parentName:"ul"},"Remember to give the files execute permission after copying\nthem."))),(0,i.kt)("li",{parentName:"ul"},"For scripts precede the script name with the command that runs the\nscript (e.g. ",(0,i.kt)("em",{parentName:"li"},"bash path-to-script"),")")),(0,i.kt)("h2",{id:"vpn"},"VPN"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Unraid servers are not hardened against attack via the network so\nshould ",(0,i.kt)("em",{parentName:"strong"},"NEVER")," be exposed directly to the internet.")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"One exception is the WireGuard VPN service introduced in Unraid 6.8\nexplicitly to address secure access to/from the internet."),(0,i.kt)("li",{parentName:"ul"},"If running Docker containers are exposed to the internet then the\nsecurity of these needs to be assessed on a case-by-case basis.")),(0,i.kt)("p",null,"You may need to contact the developer of the container to determine\nhow safe it is to expose it to the internet."),(0,i.kt)("p",null,"There is a level of protection as a docker container runs in a\n'sandboxed' environment so the level of access to the content of\nyour disks is constrained to what you allow in the path mapping\nsettings for the container."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If running VMs that are exposed to the internet then you need to\napply the same security to these that you would apply to a physical\nPC attached to the local LAN.")),(0,i.kt)("p",null,"If you want to make secure connections between an Unraid server and the\nInternet then you want to use a technology known as VPN (Virtual Private\nNetwork). VPN works on a client/server model where you have a server\nthat accepts incoming connections and a client that initiates such\nconnections."),(0,i.kt)("p",null,"In simplistic terms, the idea behind VPN connections is to set up an\nencrypted 'tunnel' between the client and server ends so that no\nmalicious players can intercept or eavesdrop on your interactions. Such\ntunnels are set up so that only authorized users are able to make such\nconnections. More information on VPN as a technology can be found in\n",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki\narticle")),(0,i.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the\ncommonest use case and many users want to be able to safely access\ntheir Unraid servers (and potentially their whole home LAN) when\naway from home. When running in this mode the server end of the VPN\nlink will either be running on the user's router (if it supports\nsuch a feature) or will be hosted on the Unraid server."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you\nwant applications running on Unraid to access the internet. This\ncould be to access generic internet content or to access another\nserver located remotely to the Unraid server. If in is generic\naccess to the internet then it is highly likely that the server end\nof such connection will be via a commercial VPN provider. When\nrunning in this mode Unraid will be acting as the client end of any\nVPN link.")),(0,i.kt)("p",null,"There are a wide variety of VPN solutions available both free and\ncommercial."),(0,i.kt)("h3",{id:"router"},"Router"),(0,i.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically\nbased on OpenVPN)."),(0,i.kt)("p",null,"Using your router to provide the VPN support has the great advantage of\nnot needing any other component on your home LAN to be operational for\nthe VPN to function. Once setup it should allow you to access all\ndevices on your home LAN in a similar manner to when you are directly\nconnected to the LAN."),(0,i.kt)("h3",{id:"openvpn"},"OpenVPN"),(0,i.kt)("p",null,"This has been the way that has historically been advocated to allow\nconnections to be made between an Unraid server and the internet."),(0,i.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN\nthen you can search Community Applications for a plugin or docker\ncontainer that meets your requirements. You may also find the\n",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube\nvideo")," of use in setting it\nup."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is expected that with the introduction of WireGuard support in\nUnraid 6.8 that WireGuard will become the favored way of setting up a\nVPN connection to an Unraid server"),"."),(0,i.kt)("h3",{id:"wireguard"},"WireGuard"),(0,i.kt)("h4",{id:"overview"},"Overview"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2602).Z,width:"128",height:"128"})),(0,i.kt)("p",null,"Unraid 6.8 introduces built-in support for WireGuard VPN connections. The\nintention is to make it as easy as possible for Unraid users to set up\nVPN connections to/from their Unraid servers."),(0,i.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to\nadd 3rd party software to achieve a VPN connection."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid\nboot process."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,i.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be\nbetter than OpenVPN.")),(0,i.kt)("p",null,"More information about WireGuard can be found on the ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard web\nsite"),". It should be noted that WireGuard is\nstill labeled as ''experimental'' by its developers but many users are\nalready finding that it appears to be robust enough for real-world use.\nA number of the commercial VPN services are working on adding WireGuard\nsupport so they must deem it to be mature enough for this to make sense\nto them."),(0,i.kt)("p",null,"The initial Unraid implementation includes adding the WireGuard kernel\nmodules to the standard Unraid distribution and starting the WireGuard\nservices as part of the Unraid boot process, but does not yet have the\nmanagement of WireGuard built-in. At the moment the GUI part is offered\nas a separate plugin, but it is intended that it will be integrated into\nUnraid in the future. This approach allows for quick updates and\nenhancements without dependency on Unraid version releases. The Unraid\nWireGuard GUI plugin can be installed via Community Applications, and\nwhen it is installed you will find that an entry called ",(0,i.kt)("strong",{parentName:"p"},"VPN Manager"),"\nis added to the GUI under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Network Services")),(0,i.kt)("p",null,"Note that the Unraid WireGuard plugin is still evolving so in the event\nof a discrepancy between what is described here and the following forum\nthreads then it is likely that the thread is correct and this wiki needs\nupdating to bring it inline. These threads are also the appropriate\nplace to ask questions regarding Unraid's WireGuard implementation."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the\nconnection types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to server"),": Use your phone or computer to remotely\naccess your Unraid server, including:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid administration via the webgui"),(0,i.kt)("li",{parentName:"ul"},"Access dockers, VMs, and network shares as though you were\nphysically connected to the network"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to LAN"),': Builds on "Remote access to server",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server to server access"),": Allows two Unraid servers to connect to\neach other.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN to LAN access"),': Builds on "Server to server access",\nallowing two entire networks to communicate. May require additional\nsettings, TBD.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server hub & spoke access"),': Builds on "Remote access to\nserver", except that all of the VPN clients can connect to each\nother as well. Note that all traffic passes through the server.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VPN tunneled access"),": Route traffic for specific Dockers and VMs\nthrough a commercial WireGuard VPN provider (see this guide)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote tunneled access"),": Securely access the Internet from\nuntrusted networks by routing all of your traffic through the VPN\nand out Unraid's Internet connection"))),(0,i.kt)("p",null,"The following diagram attempts to show these different connection types\nin a graphical format"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1998).Z,width:"1000",height:"655"})),(0,i.kt)("h4",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,i.kt)("p",null,"This section will walk through how to setup WireGuard so that your\ntrusted devices can VPN into your home network to access Unraid and the\nother systems on your network."),(0,i.kt)("h5",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You must be running Unraid 6.8 with the Dynamix WireGuard plugin\ninstalled via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab (Community Applications).")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Be aware that WireGuard is technically classified as experimental.\nIt has not gone through a full security audit yet and has not\nreached 1.0 status. But it is the first open-source VPN solution\nthat is extremely simple to install, fast, and designed from the\nground up to be secure.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'Understand that giving someone VPN access to your LAN is just like\ngiving them physical access to your LAN, except they have it 24x7\nwhen you aren\'t around to supervise. Only give access to people and\ndevices that you trust, and make certain that the configuration\ndetails (particularly the private keys) are not passed around\ninsecurely. Regardless of the "connection type" you choose, assume\nthat anyone who gets access to this configuration information will\nbe able to get full access to your network.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'This guide works great for simple networks. But if you have Dockers\nwith custom IPs or VMs with strict networking requirements, please\nsee the "Complex Networks" section below.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unraid will automatically configure your WireGuard clients to\nconnect to Unraid using your current public IP address, which will\nwork until that IP address changes. To future-proof the setup, you\ncan use Dynamic DNS instead. There are many ways to do this,\nprobably the easiest is described in this ",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from\nSpaceInvaderOne"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If your router has UPnP enabled, Unraid will be able to\nautomatically forward the port for you. If not, you will need to\nknow how to configure your router to forward a port.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You will need to install WireGuard on a client system. It is\navailable for many operating systems as mentioned at ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/install/"},"WireGuard\nclients"),". Android or iOS make\ngood first client systems because you can get all the details via QR\ncode."))),(0,i.kt)("h5",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"First, go to Settings -",">"," Network Settings -",">",' Interface eth0. If\n"Enable bridging" is "Yes", then WireGuard will work as\ndescribed below. If bridging is disabled, then none of the "Peer\ntype of connections" that involve the local LAN will work properly.\nAs a general rule, bridging should be enabled in Unraid.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7079).Z,width:"739",height:"55"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid,\ngo to Settings -",">",' Management Access and confirm "Use UPnP" is set\nto Yes'),(0,i.kt)("li",{parentName:"ul"},"On Unraid go to Settings -",">"," VPN Manager")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5372).Z,width:"969",height:"314"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give the VPN Tunnel a name, such as "MyHome VPN"'),(0,i.kt)("li",{parentName:"ul"},'Press "Generate Keypair". This will generate a set of public and\nprivate keys for Unraid. Take care not to inadvertently share the\nprivate key with anyone (such as in a screenshot like this)'),(0,i.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current\npublic IP address. If you chose to setup DDNS earlier, change the IP\naddress to the DDNS address."),(0,i.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to\nchange this unless you already have WireGuard running elsewhere on\nyour network."),(0,i.kt)("li",{parentName:"ul"},"Hit Apply"),(0,i.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will\nautomatically setup port forwarding for you:")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7098).Z,width:"1000",height:"61"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port\nforwarding',".",'.." you will need to login to your router and setup the\nport forward as directed by the note:')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(4546).Z,width:"1000",height:"65"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports\nshould be set to the value Unraid provides. If your router\ninterface asks you to put in a range, use the same port for both\nthe starting and ending values. Be sure to specify that it is a\nUDP port and not a TCP port."),(0,i.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of\nyour Unraid system shown in the note."),(0,i.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router,\ni.e. "how to port forward Asus RT-AC68U"'))),(0,i.kt)("li",{parentName:"ul"},'Note that after hitting Apply, the public and private keys are\nremoved from view. If you ever need to access them, click the\n"key" icon on the right-hand side.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(6423).Z,width:"128",height:"128"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the\n"down chevron" on the right-hand side. They are beyond the scope\nof this guide, but you can turn on help to see what they do.'),(0,i.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to\nActive to start WireGuard. You can optionally set the tunnel to\nAutostart when Unraid boots.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(711).Z,width:"562",height:"44"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There have been cases where this step has been omitted and users\nend up wondering why the WireGuard VPN link is not working!")),(0,i.kt)("h5",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click "Add Peer"')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(8169).Z,width:"866",height:"284"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give it a name, such as "MyAndroid"'),(0,i.kt)("li",{parentName:"ul"},'For the initial connection type, choose "Remote access to LAN".\nThis will give your device access to Unraid and other items on your\nnetwork.'),(0,i.kt)("li",{parentName:"ul"},'Click "Generate Keypair" to generate public and private keys for\nthe client. The private key will be given to the client/peer, but\ntake care not to share it with anyone else (such as in a screenshot\nlike this)'),(0,i.kt)("li",{parentName:"ul"},'For an additional layer of security, click "Generate Key" to\ngenerate a preshared key. Again, this should only be shared with\nthis client/peer.'),(0,i.kt)("li",{parentName:"ul"},"Click Apply."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Note:")," Technically, the peer should generate these keys and not\ngive the private key to Unraid. You are welcome to do that, but it\nis less convenient as the config files Unraid generates will not be\ncomplete and you will have to finish configuring the client\nmanually.")),(0,i.kt)("h6",{id:"caution"},"Caution"),(0,i.kt)("p",null,'It can be a little risky to add a new client ("peer") to WireGuard if\nyou are already connected remotely using WireGuard as adding a new peer\n',(0,i.kt)("em",{parentName:"p"},"sometimes")," toggles the WireGuard tunnel off which will render you\nunable to reconnect. This is because a configuration change is made\neffective by inactivating the tunnel with the current (old)\nconfiguration and next activating it with the updated (new)\nconfiguration. If there is any sort of configuration conflict at this\npoint the tunnel stays inactive, and you can no longer connect to the\nUnraid server"),(0,i.kt)("h5",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click the "eye" icon to view the peer configuration. If the button\nis not clickable, you need to apply or reset your unsaved changes\nfirst.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(3939).Z,width:"912",height:"108"})),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1967).Z,width:"580",height:"694"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR\ncode" option in the mobile app and take a picture of the QR code.\nGive it a name and make the connection. The VPN tunnel starts almost\ninstantaneously, once it is up you can open a browser and connect to\nUnraid or another system on your network. Be careful not to share\nscreenshots of the QR code with anyone, or they will be able to use\nit to access your VPN.'),(0,i.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and\ntransfer it to the remote computer via trusted email or dropbox,\netc. Then unzip it and load the configuration into the client.\nProtect this file, anyone who has access to it will be able to\naccess your VPN.")),(0,i.kt)("h5",{id:"about-dns"},"About DNS"),(0,i.kt)("p",null,'The Dynamix WireGuard plugin includes a "Peer DNS Server" option'),(0,i.kt)("p",null,'If you are having trouble with DNS resolution on the WireGuard client,\nreturn to the VPN Manager page in Unraid and switch from Basic to\nAdvanced mode, add the IP address of your desired DNS server into the\n"Peer DNS Server" field, then install the updated config file on the\nclient. You may want to use the IP address of the router on the LAN you\nare connecting to, or you could use a globally available IP like 8.8.8.8'),(0,i.kt)("p",null,'This is required for "Remote tunneled access" mode if the client\'s\noriginal DNS server is no longer accessible after all traffic is routed\nthrough the tunnel.'),(0,i.kt)("p",null,"If you are using any of the split tunneling modes, adding a DNS server\nmay provide name resolution on the remote network, although you will\nlose name resolution on the client's local network in the process. The\nsimplest solution is to add a hosts file on the client that provides\nname resolution for both networks."),(0,i.kt)("h5",{id:"complex-networks"},"Complex Networks"),(0,i.kt)("p",null,'The instructions above should work out of the box for simple networks.\nWith "Use NAT" defaulted to Yes, all network traffic on Unraid uses\nUnraid\'s IP, and that works fine if you have a simple setup.'),(0,i.kt)("p",null,"However, if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, things may not work right (I know, kind of\nvague, but feel free to read the two WireGuard threads for examples)"),(0,i.kt)("p",null,"A partial solution is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'In the WireGuard config, set "Use NAT" to No'),(0,i.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the\nWireGuard "Local tunnel network pool" through the IP address of\nyour Unraid system. For instance, for the default pool of\n10.253.0.0/24 you should add this static route:',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)"),(0,i.kt)("li",{parentName:"ul"},"Gateway: ",(0,i.kt)("inlineCode",{parentName:"li"},"<IP address of your Unraid system>")))),(0,i.kt)("li",{parentName:"ul"},"Note that this covers the entire class B 10.253.x.x network, so you\ncan add other WireGuard tunnels without having to modify your router\nsetup again.")),(0,i.kt)("p",null,"With these changes, your network should work normally. However, your\nWireGuard clients still may not be able to access Dockers on custom IPs\nor VMs. If you find a solution to this, please ask questions in the\nforum threads mentioned earlier."),(0,i.kt)("h5",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,i.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be\ninvisible! There aren't really any error messages if things aren't\nworking, it either works or it doesn't. It cannot be detected by a port\nscanner."),(0,i.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking\nyour work:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Confirm that the tunnel is active (!)"),(0,i.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address,\nand is assigned to your "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router\nto Unraid, and assigned that same port to the "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your\nclients, you will need to set the clients up again so they have the\nlatest config."),(0,i.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config",\notherwise your QR codes/files will not have the latest data.')),(0,i.kt)("p",null,"A few other ideas:"),(0,i.kt)("p",null,"-\xa0For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not\nwifi).\xa0This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR\ncode\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working\nfrom\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Disable any energy-saving features on the client, phones in particular\nmay not use VPNs properly when in low power mode. Also, you may need to\ndisable any "Data Saver" features on the phone so that VPN is not\nthrottled. See this post.\n-\xa0If\xa0your\xa0"Peer\xa0type\xa0of\xa0connection"\xa0includes\xa0one\xa0of\xa0the\xa0LAN\xa0options\xa0but\nyou\xa0can\xa0only\xa0access\xa0Unraid,\xa0go\xa0to\xa0Settings\xa0->\xa0Network\xa0Settings\xa0and\xa0see\nwhether\xa0"Enable\xa0bridging"\xa0is\xa0yes.\xa0\xa0If\xa0bridging\xa0is\xa0disabled,\xa0you\xa0will\xa0not\nbe\xa0able\xa0to\xa0access\xa0your\xa0LAN\xa0over\xa0WireGuard.'),(0,i.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be\nsure that the networks on both sides use different subnets. You\ncan't connect two networks that both use 192.168.1.0/24, for\ninstance."),(0,i.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind\nthat the "broken" remote locations may have a firewall that blocks\nUDP traffic. Hopefully, WireGuard will support TCP in the future,\nbut currently, there is no workaround for this.'),(0,i.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm\nthat the "Local tunnel network pool" is not already in use on your\nnetwork or on one of the networks you are connecting to. If there is\na conflict you will need to change it to a different private network\n(10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|","\n192.168.0.0 to 192.168.255.255)"),(0,i.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webgui for some reason and you need\nto prevent a WireGuard tunnel from automatically starting, delete\nthis file from your flash drive and reboot:")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"/boot/config/wireguard/autostart")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note that if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, you will likely have issues. Please see the\n"Complex Networks" section above.')),(0,i.kt)("h4",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,i.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection\nfrom an Unraid server to a commercial VPN provider. If you are trying to\naccess your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ndiscussing making an outbound VPN connection using WireGuard"),(0,i.kt)("h5",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,i.kt)("p",null,"Several commercial VPN providers now support WireGuard. A few are listed\nbelow but this is not intended to be an exhaustive list. No endorsement\nis implied, you need to research and determine which one meets your\nneeds."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tunsafe.com/vpn"},"TunSafe")," (currently free)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://torguard.net/blog/what-is-wireguard-vpn/"},"TorGuard VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://nordvpn.com/blog/nordlynx-protocol-wireguard/"},"NordVPN")," Not\nsure this works without using the NordLynx client so may not be\ncompatible with the Unraid implementation.")),(0,i.kt)("p",null,"Note that with the current state of WireGuard, VPN providers cannot\nguarantee the same amount of privacy as they can with OpenVPN. See\n",(0,i.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for more detail.\nTypically the objections are not around security, but around the fact\nthat it is harder for them to guarantee that they cannot track you."),(0,i.kt)("h5",{id:"configuring-vpn-tunneled-access"},"Configuring VPN tunneled access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,i.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config"\nbutton and select the file on your hard drive. This will create a\nnew tunnel specific to this provider.'),(0,i.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name.\nClick Apply."),(0,i.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for\nthis type of connection"),(0,i.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,i.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN\ntunnel.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"In the future it may be possible to restrict it so that only\nspecific Dockers use the VPN tunnel. Until then, you may need to\ndisable the tunnel in order to check for plugin updates or\nperform other Unraid administrative tasks."),(0,i.kt)("li",{parentName:"ul"},"Note that currently, Unraid will ignore any DNS server that is\nspecified in the downloaded config file. Unraid's DNS should be\nset to something that will work whether the tunnel is up or\ndown, such as 8.8.8.8 and 8.8.4.4")))),(0,i.kt)("h5",{id:"testing-the-tunnel"},"Testing the tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using Community Applications, install a browser such as the\njlesage/Firefox Docker container"),(0,i.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,i.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,i.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should\nsee that your IP address is in the country you selected when you\nsigned up with the provider")),(0,i.kt)("h4",{id:"support"},"Support"),(0,i.kt)("p",null,"WireGuard is a new feature in Unraid so the forum is the place to\nask questions and get the most up-to-date information on using\nWireGuard with Unraid. The threads most likely to be of interest are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},7079:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuMAAAA3CAYAAACmTUS0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAL8ElEQVR42u3dXVBUZ57H8S/93k130w00IK4vRANZcDAIW6Q2U47s6iyTqBmoNcmoRU2ZTFlT1sxulXORi1zMxV7MxWRqcrG1lZpKatdSaqMbLYOu1JpRSaCQDWpJre6CiAqOEWjohu7mtbvZCxB5EQU0cZTf587z8pyn/3Vafufp55yTcLv99hgiIiIiIvKdM6gEIiIiIiIK4yIiIiIiCuMiIiIiIqIwLiIiIiKiMC4iIiIiIgrjIiIiIiIK4yIiIiIisngmlUBEROTZdfHSRRVB5BmwoWCDwriIiMjzaO2abBVB5M9Y6/WWOddpmoqIiIiIyFOiMC4iIiIiojAuIiIiIqIwLiIiIiIiCuMiIiIiIgrjIiIiIiKiMC4iIiIi8nyY93PGu+uP8GFd8AFrVrPzV1vIfYKdulr1ByrZwj9tWz33Rr2X+PCTVtbv2cGm5EUe6DHbCHx9lA9qYPO75WzyzLXVTSp/exre+Bk7X5xvyyFqD/471fEi9lcU4NV5KiIiIrK0wzgAnnz2/CSftGkLjdiWaPG8BVt5LxdsiU+6ZRev7NjNy1hw6hwVERERURgHwGDBlWhXQJysngXnt/QOU5NVdRYRERFRGF+Ia6d5/zjs/McNhE6d4dS1IFGDg9wflrMz1z6x0Qgd9Wc4/N8dBEbHA61vRQFvvpHPsqm9iQ/QVl/N4YYOwlEjzqwCdm0tYIX1Icfva+VYVR2X744QxYhzeR7l5cVkWx/e7WhPK8c+/5IL/hiYPRT+XSllL7km19+bNvP+hk4O/EcT7YYc9vxiIy/c+7xTp+lEOqg6cpqGibZyf5BFdGah44O0nDlBZVOQKEa8qwrIjjXSYL8/NWfmVJ17//518QCH//M8V/0xTK7VlO3cwnrXlM/S1UTlsUZaQjFM9hTWv+ylrd5P4b2pOF2NfHDwEhSXs//VFH0DRERERJ6ib+EGzjsc/eg45835vLOnnLJVUa7+8Wva7oXFa3V8XB9kZcl29v/8bfaWrsV0q4GPz3XOCPZ1HL7t5Udvvc2+N/JIu9vIv/3XTaJzHTZ+h2MHz9KWXEBFxW7279pI3mgTB45eJfzQ/gY5d/ISfK+Ufe9up+zFGBdOVHOud8Zm7TX8/nM/K18r572Kv2LlXG19Wk1DNIuyXW+z78c52C820TJjq46a4xxoipG3eTv7d5dSnNjKhfZ5lLa9ht9UXsG+4XX2V2zkhehNqurv3F8/3EzlwQbavXnsrHibd/52OYGmVgJT27A78CU6cFmMOvtFRJaInl4/bTdaGRiITFs+ODRI243rBIIBFUnkKVnYyHhvIx/+tnHaotxZNyZayXutnLIsCwArXnmJ04faae+FF5LB9GIJ7/8yhsk0Hga9L73K9m9u8tGNO3STju9eM2tK+FXZ2okOFlMxHODX1f/H5dLVFJof0LfrV7gQz6GiNJ8XDABr2balhyuH2mkezX3wPgC42LRzB5snJsIve62E7o7POX+5k00l6VNC7Fp27Xr14SPzt5qo7U2hdG8JhS6AfMp+6mDwd2enXDTc5KtLIZb9YDc78sd/Lfh+6Q5cw3/gyKPqb8nizXc3Toz0p1OS28hHNzrpJhMf0H2xiRZzDhV/X0y2AUgrZk+qkQ/+9caUj5tLxd5cnfkiIkuI25VEKBSiv78Ph+P+jU6hUD8GgwFnoiZGijwbYfwBN3CaZoXTFHImgvh4Nrdgn3lQEwwFO2m/G2Iw0sPljgeMd5tM0zpnykzHRzOBPiB19ubd/iAMBznwu+aZnSYUAuZ8WooR07QqpLMyE2r7Q8CUMO5b/vAgDnTf6WTIk0XOlGkjGGaUOBigO+4ib9X0qpjn8xtFxsppU25sNsvsGqwsGA/ik8c3YtJ5LiKypJnNZhwOB5FImOGRYawWK8Mjw0QiYdzuJMxms4ok8kyE8SdxA+dwB1WHTtMQBGdaJmuSrQvYOURX4MFhfK6LBTBisy+inz0huuH+SP28azSf6R9GTN/WE94Nit4iIjJbkjuJSCRMOBzCmmwlHA4B4HSOjyDFYjH8/i7CkTBjY2OYTCZSklNxudwAjI2N0dPrp7+/j3g8jslkJjUldXJ/kaWi8X9aHrjc7XSwKjMdq2VhF7ffeXLrvniehsgKduzbwvqJHN5df4SW/33EjvEYUTxkPuyewxiYn8DTXkbjgM+78CA+0c9HixGNf0sFjkf1LRERkVmsVht2m51IJIzL6SISCZOY6MRqGf9j3O3vYnh4mDRfOhaLhWAwgL+nG7PZjM1mJxwen+bi8Xhx2B309ffR7e/CZDJhW9Sol8jzxe10LDiIw1N4A2e3PwiJqWRa7wfTUGTkkfuFb7UTMHhIm+PlOr5UD4T+xK3QlIXDg4QXmk3jHbS1T7S3QL5UDwTbaZ7ah2h0+k2nHhc+QrTfGZkWzkefQIb2JbvgbicdU4N+NIbiuYiIACR5vOMj4D1+YrEY7olR75HREYaGBkn2JuNyubFabaSk+jAajAwNDY3/SR0exmw2k+T2YLPZSU/LYNWqLAVxWXKK1mXPWpbosJHkXNyLZxY2Mh4fIRQZnDEH3Igt0TLvhlYuT4drNzh/bSUlSSFqa+o4/6cBcM/YsPkMH5qL2LbhRex9Fzla04Nt3SvkznX5sCaPQvtJqj89i/31InKMnZz6/CyXTUX8w08LHjLKHeSLT08yVFJEcQZcOXuGC6PpbFu38DB+rw/nTjWQvCkfb18Tp75oog3uP/rQkMXLOXVUfnWaavsrFDsDNNQ2UHsLyHnMMP6XOfjqGzlcncqbf53K6PUrVH3VTADPtOA/FBkBqx2bZrSIiCwpNqsNq8XKwEAEZ6JzMkhHR0eJx+N0dt2ls+vutH2i0fEhHavVSn9/Hz29fpKSPFgtVgwJBhVVBEhyOrDbrIvad2FxLNjEJ//SNGPh6unP2X4E58sb2XbjJKeOH6XB7CL7+6Xs/Ysz/PPMaSorcygcbebAwQaiGPHllrBvc+bcDRsyKdtdAlV1VB1q5RhGbBk57NhW8IjpJi7W53torzlJbSiGybWCzW/9DcWLmQJnyKTsrVcJfXaeygNNmFzpFJYUYzvRMO3iJfdHWyk9Xs0Xx49Sa3KQXVzCNstJqh73TEgu4J2yAT4+8SUfXQVTag5lrxdw7viUp6l808jvDzVB4Xbem/q0GBERee4lJCSQmOhkcGgQp8s9a116WsaskW6DYTxwu1xuYvEYgUAv/f19GI1GvN5kPEleFVaWnKJ12ZNzx+02C27n4l/HnnC7/faYSvq0xbjw2Seccr3O+z/MfLJNf9PAbw51UvLz7RQnqtIiIs+bi5cusnZN9ry37+/vw9/TTUb6ssnHHA4MROjsuovPlz6vxxyOjo4SCPYSDodI86XrJk5Zku6F8fRULysyHj7023q9hQ0FGx64Tr8vPQXdX5+msr6Ztq5BwsFOLtdUc+qGhbycxwziox1Uf1ZH7fVOApFBvrnVxJGTTYSXryVPQVxEROZgMptJIIHh4aHJZWNjY0Sjo9O2i4+N35RkNptJSU7FZDIxNGUfkaWkaF02FrNp0XPFJ79/KuVT+E8v2U205jwH6r4kCuOvrd9aTtmqx2w47sCX2MnpE1epHgUMRryriti7NRe9zkFEROZiMVuw2e309QXHp7I4nAQCPQwMDpCRkYnD7sDf0004FMLj8WK3O+jrDxKNRrHbHCqgLFnfy84iISFBYfxZ411TTMWa4iffsDWFwtJyCktVYxERWRhfahp+fxeBQC+9vT0YjUaSk1Nw2MfDtteTTCwapafXz9jY2OT6xET99CpL1+MGcYVxERGRJcbtTsLtTpq13Gg0kp6+jLlu7X/UehFZHM0ZFxERERFRGBcRERERURgXERERERGFcRERERERhXEREREREVEYFxERERFRGBcREREREYVxERERERGFcRERERERURgXEREREVEYFxERERERhXERERERkT8fJpVARETk2dZ6vUVFEHlGJdxuvz2mMoiIiIiIfPc0TUVERERERGFcRERERERhXEREREREFMZFRERERBTGRUREREREYVxERERERGFcREREREQew/8Did6U6uUxJ1oAAAAASUVORK5CYII="},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/es/assets/js/aed38285.94b00935.js b/es/assets/js/aed38285.94b00935.js new file mode 100644 index 000000000..95a00db9a --- /dev/null +++ b/es/assets/js/aed38285.94b00935.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1932],{4137:(e,r,a)=>{a.d(r,{Zo:()=>d,kt:()=>m});var t=a(7294);function n(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}function s(e,r){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),a.push.apply(a,t)}return a}function o(e){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?s(Object(a),!0).forEach((function(r){n(e,r,a[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(a,r))}))}return e}function i(e,r){if(null==e)return{};var a,t,n=function(e,r){if(null==e)return{};var a,t,n={},s=Object.keys(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||(n[a]=e[a]);return n}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=t.createContext({}),u=function(e){var r=t.useContext(l),a=r;return e&&(a="function"==typeof e?e(r):o(o({},r),e)),a},d=function(e){var r=u(e.components);return t.createElement(l.Provider,{value:r},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},p=t.forwardRef((function(e,r){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),h=u(a),p=n,m=h["".concat(l,".").concat(p)]||h[p]||c[p]||s;return a?t.createElement(m,o(o({ref:r},d),{},{components:a})):t.createElement(m,o({ref:r},d))}));function m(e,r){var a=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=p;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<s;u++)o[u]=a[u];return t.createElement.apply(null,o)}return t.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3976:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var t=a(7462),n=(a(7294),a(4137));const s={sidebar_position:0},o="Shares",i={unversionedId:"unraid-os/manual/shares/shares",id:"unraid-os/manual/shares/shares",title:"Shares",description:"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.",source:"@site/docs/unraid-os/manual/shares/shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/",permalink:"/es/unraid-os/manual/shares/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/es/category/manual"},next:{title:"User shares",permalink:"/es/unraid-os/manual/shares/user-shares"}},l={},u=[],d={toc:u},h="wrapper";function c(e){let{components:r,...a}=e;return(0,n.kt)(h,(0,t.Z)({},d,a,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"shares"},"Shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.")),(0,n.kt)("p",null,"One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives."),(0,n.kt)("p",null,"There are two types of shares in Unraid:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/es/unraid-os/manual/shares/user-shares"},"User Shares")," that rely on Linux FUSE and represent folders in the overall file system."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/es/unraid-os/manual/shares/disk-shares"},"Disk Shares")," that rely on the drives' ",(0,n.kt)("a",{parentName:"li",href:"https://docs.unraid.net/unraid-os/manual/storage-management#creating-a-file-system-format"},"file system")," to share the disk as a whole.")),(0,n.kt)("p",null,"It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder."),(0,n.kt)("p",null,"When you first initialize your array, Unraid automatically creates a ",(0,n.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/shares/user-shares#default-shares"},"handful of user shares"),". These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data."),(0,n.kt)("p",null,"You manage shares from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab in Unraid. You enable or disable shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),", with user shares being enabled by default."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/b13723e0.f648e1ab.js b/es/assets/js/b13723e0.4f513726.js similarity index 58% rename from es/assets/js/b13723e0.f648e1ab.js rename to es/assets/js/b13723e0.4f513726.js index 4ab2050dc..bca1f8e9b 100644 --- a/es/assets/js/b13723e0.f648e1ab.js +++ b/es/assets/js/b13723e0.4f513726.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/es/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/es/category/getting-started"},next:{title:"Manual Method",permalink:"/es/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/security"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/es/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/es/category/getting-started"},next:{title:"Manual Method",permalink:"/es/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/es/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/es/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"../security.md"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file diff --git a/es/assets/js/ba2ffba3.580a5eca.js b/es/assets/js/ba2ffba3.5183065a.js similarity index 99% rename from es/assets/js/ba2ffba3.580a5eca.js rename to es/assets/js/ba2ffba3.5183065a.js index fd4b56e1f..bbc8484b4 100644 --- a/es/assets/js/ba2ffba3.580a5eca.js +++ b/es/assets/js/ba2ffba3.5183065a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/es/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/es/connect/help"},next:{title:"Legacy Documentation",permalink:"/es/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/security#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/es/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/es/connect/help"},next:{title:"Legacy Documentation",permalink:"/es/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/es/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/es/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file diff --git a/es/assets/js/f0844d9f.1f01c257.js b/es/assets/js/f0844d9f.1f01c257.js new file mode 100644 index 000000000..085065912 --- /dev/null +++ b/es/assets/js/f0844d9f.1f01c257.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=d(a),p=i,m=c["".concat(l,".").concat(p)]||c[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/es/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Delete a share",permalink:"/es/unraid-os/manual/shares/delete-a-share"},next:{title:"Storage Management",permalink:"/es/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],h={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/es/assets/js/f0844d9f.599da76c.js b/es/assets/js/f0844d9f.599da76c.js deleted file mode 100644 index ba84dbfe4..000000000 --- a/es/assets/js/f0844d9f.599da76c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=d(a),p=i,m=h["".concat(l,".").concat(p)]||h[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},c),{},{components:a})):n.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/es/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/es/category/manual"},next:{title:"Storage Management",permalink:"/es/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],c={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/es/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/es/assets/js/f7b0b541.7dcf9237.js b/es/assets/js/f7b0b541.7dcf9237.js new file mode 100644 index 000000000..599f870a8 --- /dev/null +++ b/es/assets/js/f7b0b541.7dcf9237.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2454],{4137:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(7294);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,s=function(e,t){if(null==e)return{};var r,a,s={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,s=e.mdxType,n=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),d=s,m=p["".concat(l,".").concat(d)]||p[d]||h[d]||n;return r?a.createElement(m,o(o({ref:t},u),{},{components:r})):a.createElement(m,o({ref:t},u))}));function m(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=r.length,o=new Array(n);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:s,o[1]=i;for(var c=2;c<n;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7088:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var a=r(7462),s=(r(7294),r(4137));const n={sidebar_position:4},o="Network access",i={unversionedId:"unraid-os/manual/shares/network-access",id:"unraid-os/manual/shares/network-access",title:"Network access",description:"Communication protocols",source:"@site/docs/unraid-os/manual/shares/network-access.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/network-access",permalink:"/es/unraid-os/manual/shares/network-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/network-access.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Disk shares",permalink:"/es/unraid-os/manual/shares/disk-shares"},next:{title:"Create a new share",permalink:"/es/unraid-os/manual/shares/create-a-share"}},l={},c=[{value:"Communication protocols",id:"communication-protocols",level:2},{value:"Protocol selection",id:"protocol-selection",level:2},{value:"Access permissions at share level",id:"access-permissions-at-share-level",level:2},{value:"Share security",id:"share-security",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...r}=e;return(0,s.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"network-access"},"Network access"),(0,s.kt)("h2",{id:"communication-protocols"},"Communication protocols"),(0,s.kt)("p",null,"For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"SMB"),", or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"NFS"),", or Network File System, is a widely-used protocol on Unix-compatible systems."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"FTP"),", or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.")),(0,s.kt)("admonition",{type:"important"},(0,s.kt)("p",{parentName:"admonition"},"As of Unraid 6.9, ",(0,s.kt)("strong",{parentName:"p"},"AFP")," support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in ",(0,s.kt)("strong",{parentName:"p"},(0,s.kt)("em",{parentName:"strong"},"Settings > SMB"))," set the ",(0,s.kt)("strong",{parentName:"p"},"Enhanced macOS interoperability")," parameter to ",(0,s.kt)("em",{parentName:"p"},"Yes"),".")),(0,s.kt)("h2",{id:"protocol-selection"},"Protocol selection"),(0,s.kt)("p",null,"Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases."),(0,s.kt)("p",null,"For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer."),(0,s.kt)("h2",{id:"access-permissions-at-share-level"},"Access permissions at share level"),(0,s.kt)("p",null,"Each protocol can be configured at the share level. On the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled ",(0,s.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes")," - The share will be visible across the network."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes (Hidden)")," - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"No")," - This will disable network access through that protocol, for that share.")),(0,s.kt)("h2",{id:"share-security"},"Share security"),(0,s.kt)("p",null,"Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available."),(0,s.kt)("p",null,"For example, you may configure a ",(0,s.kt)("inlineCode",{parentName:"p"},"movies")," share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials."),(0,s.kt)("p",null,"When you select an existing share on the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols ",(0,s.kt)("a",{parentName:"p",href:"#access-permissions-at-share-level"},"you have enabled"),"."),(0,s.kt)("p",null,"The ",(0,s.kt)("strong",{parentName:"p"},"Security")," setting has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Public")," - The share is unsecured and all users have both read and write access to the contents of the share."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Secure")," - The share is secured and all users, including guests, have read access. You can select which of your users have write access."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Private")," - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.")),(0,s.kt)("admonition",{title:"Windows 'Gotcha'",type:"caution"},(0,s.kt)("p",{parentName:"admonition"},"There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails."),(0,s.kt)("p",{parentName:"admonition"},"If you have any shares on the server set to ",(0,s.kt)("em",{parentName:"p"},"Private")," or ",(0,s.kt)("em",{parentName:"p"},"Secure")," access, it is important that you connect to that share first, before any shares set for ",(0,s.kt)("em",{parentName:"p"},"Public")," access."),(0,s.kt)("p",{parentName:"admonition"},"As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/fee3ac30.aeeafe4b.js b/es/assets/js/fee3ac30.aeeafe4b.js new file mode 100644 index 000000000..6ebded90a --- /dev/null +++ b/es/assets/js/fee3ac30.aeeafe4b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,h=p["".concat(c,".").concat(y)]||p[y]||d[y]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var l=2;l<i;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},8330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(4137));const i={sidebar_position:3},o="Data Encryption",s={unversionedId:"unraid-os/manual/security/data-encryption",id:"unraid-os/manual/security/data-encryption",title:"Data Encryption",description:"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.",source:"@site/docs/unraid-os/manual/security/data-encryption.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/data-encryption",permalink:"/es/unraid-os/manual/security/data-encryption",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/data-encryption.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Securing webGUI connections (SSL)",permalink:"/es/unraid-os/manual/security/secure-webgui-ssl"},next:{title:"Flash Drive",permalink:"/es/unraid-os/manual/security/flash-drive"}},c={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"data-encryption"},"Data Encryption"),(0,a.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup"},"Linux Unified Key System"),") encryption modules."),(0,a.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly."),(0,a.kt)("p",null,"The home page for LUKS can be found ",(0,a.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,a.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive."),(0,a.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives."),(0,a.kt)("hr",null),(0,a.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the drive)."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Go to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab."),(0,a.kt)("li",{parentName:"ol"},"Stop the array."),(0,a.kt)("li",{parentName:"ol"},"Select the drive."),(0,a.kt)("li",{parentName:"ol"},"In ",(0,a.kt)("strong",{parentName:"li"},"File system type")," change the file system to the encrypted type that you want."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Apply")," to commit the change."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Done")," to return to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab. The drive will now show as unmountable and the option to format unmountable drives will be present."),(0,a.kt)("li",{parentName:"ol"},"Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.")),(0,a.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/main.284febb9.js b/es/assets/js/main.284febb9.js deleted file mode 100644 index c9306bae4..000000000 --- a/es/assets/js/main.284febb9.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.284febb9.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"1161d08d":[()=>n.e(5632).then(n.bind(n,7084)),"@site/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/faq/redeem-license-activation-code.md",7084],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18d17e09":[()=>n.e(4118).then(n.t.bind(n,429,19)),"~docs/default/category-es-unraidsidebar-category-manual-c0e.json",429],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"1e1d6f20":[()=>n.e(808).then(n.t.bind(n,9236,19)),"~docs/default/category-es-unraidsidebar-category-tutorial-extras-df9.json",9236],"235babb1":[()=>n.e(557).then(n.t.bind(n,5346,19)),"~docs/default/category-es-unraidsidebar-category-zfs-8e0.json",5346],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"24983e98":[()=>n.e(2099).then(n.t.bind(n,6443,19)),"~docs/default/category-es-unraidsidebar-category-unraid-connect-0b4.json",6443],"25ec094f":[()=>n.e(9146).then(n.bind(n,1812)),"@site/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md",1812],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"322cff69":[()=>n.e(1420).then(n.t.bind(n,3051,19)),"~docs/default/category-es-unraidsidebar-category-tutorial-basics-e0f.json",3051],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"49f133ab":[()=>n.e(6424).then(n.t.bind(n,6784,19)),"~docs/default/category-es-unraidsidebar-category-legacy-documentation-2f4.json",6784],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"4d9f14c4":[()=>n.e(1220).then(n.t.bind(n,4886,19)),"~docs/default/category-es-unraidsidebar-category-getting-started-c7e.json",4886],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"90126b70":[()=>n.e(79).then(n.bind(n,8693)),"@site/docs/unraid-os/manual/shares.md",8693],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"96fb4374":[()=>n.e(42).then(n.t.bind(n,1859,19)),"~docs/default/category-es-unraidsidebar-category-guides-6bf.json",1859],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],"9ff5325d":[()=>n.e(8647).then(n.t.bind(n,1547,19)),"~docs/default/category-es-unraidsidebar-category-contribute-a03.json",1547],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],a78d85c7:[()=>n.e(7328).then(n.bind(n,5536)),"@site/docs/unraid-os/manual/security.md",5536],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],d5211f12:[()=>n.e(1919).then(n.t.bind(n,6777,19)),"~docs/default/category-es-unraidsidebar-category-release-notes-5b7.json",6777],d53ad56c:[()=>n.e(9394).then(n.t.bind(n,4276,19)),"~docs/default/category-es-unraidsidebar-category-unraid-os-382.json",4276],dc9fd2e7:[()=>n.e(2105).then(n.t.bind(n,660,19)),"~docs/default/category-es-unraidsidebar-category-faq-8c2.json",660],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function p(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],p={},f=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const f=[{path:"/es/search/",component:p("/es/search/","500"),exact:!0},{path:"/es/",component:p("/es/","3d0"),routes:[{path:"/es/",component:p("/es/","a8c"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/contribute/",component:p("/es/category/contribute/","260"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/faq/",component:p("/es/category/faq/","787"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/getting-started/",component:p("/es/category/getting-started/","f24"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/guides/",component:p("/es/category/guides/","36b"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/legacy-documentation/",component:p("/es/category/legacy-documentation/","650"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/manual/",component:p("/es/category/manual/","ab7"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/release-notes/",component:p("/es/category/release-notes/","e28"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/tutorial---basics/",component:p("/es/category/tutorial---basics/","07f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/tutorial---extras/",component:p("/es/category/tutorial---extras/","0e2"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/unraid-connect/",component:p("/es/category/unraid-connect/","33e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/unraid-os/",component:p("/es/category/unraid-os/","5a6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/zfs/",component:p("/es/category/zfs/","55d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/connect/about/",component:p("/es/connect/about/","8d1"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/connect/help/",component:p("/es/connect/help/","441"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/connect/remote-access/",component:p("/es/connect/remote-access/","4e7"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/intro/",component:p("/es/contribute-to-docs/intro/","80f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/congratulations/",component:p("/es/contribute-to-docs/tutorial-basics/congratulations/","1d9"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:p("/es/contribute-to-docs/tutorial-basics/create-a-blog-post/","71d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/create-a-document/",component:p("/es/contribute-to-docs/tutorial-basics/create-a-document/","15c"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/create-a-page/",component:p("/es/contribute-to-docs/tutorial-basics/create-a-page/","ea9"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/markdown-features/",component:p("/es/contribute-to-docs/tutorial-basics/markdown-features/","15d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:p("/es/contribute-to-docs/tutorial-extras/manage-docs-versions/","5ff"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-extras/translate-your-site/",component:p("/es/contribute-to-docs/tutorial-extras/translate-your-site/","8f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/Articles/dual-boot-unraid-and-windows/",component:p("/es/legacy/Articles/dual-boot-unraid-and-windows/","166"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:p("/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/","9b4"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/Articles/upgrading-to-unraid-6/",component:p("/es/legacy/Articles/upgrading-to-unraid-6/","07b"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/cache-disk/",component:p("/es/legacy/FAQ/cache-disk/","552"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/check-disk-filesystems/",component:p("/es/legacy/FAQ/check-disk-filesystems/","753"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/check-harddrive-speed/",component:p("/es/legacy/FAQ/check-harddrive-speed/","1a5"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/console/",component:p("/es/legacy/FAQ/console/","9ea"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/parity-swap-procedure/",component:p("/es/legacy/FAQ/parity-swap-procedure/","214"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/Parity/",component:p("/es/legacy/FAQ/Parity/","f3d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/replacing-a-data-drive/",component:p("/es/legacy/FAQ/replacing-a-data-drive/","a2e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/replacing-multiple-data-drives/",component:p("/es/legacy/FAQ/replacing-multiple-data-drives/","c30"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:p("/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","90b"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:p("/es/legacy/FAQ/setup-sleep-and-wake-on-lan/","ef6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/shrink-array/",component:p("/es/legacy/FAQ/shrink-array/","19a"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/terminal-access/",component:p("/es/legacy/FAQ/terminal-access/","827"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:p("/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","f51"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/transferring-files-within-the-unraid-server/",component:p("/es/legacy/FAQ/transferring-files-within-the-unraid-server/","723"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/understanding-smart-reports/",component:p("/es/legacy/FAQ/understanding-smart-reports/","0fc"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/usb-flash-drive-preparation/",component:p("/es/legacy/FAQ/usb-flash-drive-preparation/","c36"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/licensing-faq/",component:p("/es/unraid-os/faq/licensing-faq/","edb"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/os-faq/",component:p("/es/unraid-os/faq/os-faq/","b1f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/redeem-license-activation-code/",component:p("/es/unraid-os/faq/redeem-license-activation-code/","0dd"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/unraid-account/",component:p("/es/unraid-os/faq/unraid-account/","0b1"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/guides/configuring-time-machine/",component:p("/es/unraid-os/guides/configuring-time-machine/","0e3"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/guides/wol-setup-for-unraid/",component:p("/es/unraid-os/guides/wol-setup-for-unraid/","564"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/additional-settings/",component:p("/es/unraid-os/manual/additional-settings/","5e8"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/applications/",component:p("/es/unraid-os/manual/applications/","949"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/changing-the-flash-device/",component:p("/es/unraid-os/manual/changing-the-flash-device/","160"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/docker-management/",component:p("/es/unraid-os/manual/docker-management/","35e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/getting-started/",component:p("/es/unraid-os/manual/getting-started/","9e3"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/getting-started/manual-install-method/",component:p("/es/unraid-os/manual/getting-started/manual-install-method/","2c5"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/multi-language/",component:p("/es/unraid-os/manual/multi-language/","813"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/security/",component:p("/es/unraid-os/manual/security/","366"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/shares/",component:p("/es/unraid-os/manual/shares/","08d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/storage-management/",component:p("/es/unraid-os/manual/storage-management/","a13"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/tools/",component:p("/es/unraid-os/manual/tools/","07d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/troubleshooting/",component:p("/es/unraid-os/manual/troubleshooting/","5d1"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/upgrade-instructions/",component:p("/es/unraid-os/manual/upgrade-instructions/","078"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/users/",component:p("/es/unraid-os/manual/users/","3da"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/vm-management/",component:p("/es/unraid-os/manual/vm-management/","8f2"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/vm-support/",component:p("/es/unraid-os/manual/vm-support/","aaf"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/what-is-unraid/",component:p("/es/unraid-os/manual/what-is-unraid/","17f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/zfs/placeholder/",component:p("/es/unraid-os/manual/zfs/placeholder/","9f4"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.0/",component:p("/es/unraid-os/release-notes/6.10.0/","949"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.1/",component:p("/es/unraid-os/release-notes/6.10.1/","b71"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.2/",component:p("/es/unraid-os/release-notes/6.10.2/","5db"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.3/",component:p("/es/unraid-os/release-notes/6.10.3/","165"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.0/",component:p("/es/unraid-os/release-notes/6.11.0/","3e7"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.1/",component:p("/es/unraid-os/release-notes/6.11.1/","cf6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.2/",component:p("/es/unraid-os/release-notes/6.11.2/","b21"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.3/",component:p("/es/unraid-os/release-notes/6.11.3/","3eb"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.4/",component:p("/es/unraid-os/release-notes/6.11.4/","91d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.5/",component:p("/es/unraid-os/release-notes/6.11.5/","688"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.0/",component:p("/es/unraid-os/release-notes/6.12.0/","466"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.1/",component:p("/es/unraid-os/release-notes/6.12.1/","f7e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.2/",component:p("/es/unraid-os/release-notes/6.12.2/","e1d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.3/",component:p("/es/unraid-os/release-notes/6.12.3/","74e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.9.0/",component:p("/es/unraid-os/release-notes/6.9.0/","2f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.9.1/",component:p("/es/unraid-os/release-notes/6.9.1/","ac8"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.9.2/",component:p("/es/unraid-os/release-notes/6.9.2/","6c7"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:p("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/es/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/es/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/es/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/es/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/es/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/es/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/es/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/es/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/es/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/es/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/es/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/es/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/es/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/es/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/es/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/es/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/es/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/es/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/es/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/es/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/es/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/es/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/es/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/es/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/es/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/es/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/es/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/es/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/es/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/es/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/es/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/es/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/es/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/es/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/es/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/es/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/es/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/es/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/es/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/es/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/es/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/es/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/es/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security","path":"/es/unraid-os/manual/security","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares","path":"/es/unraid-os/manual/shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/es/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/es/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/es/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/es/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/es/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/es/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/es/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/es/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/es/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/es/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/es/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/es/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/es/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/es/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/es/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/es/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/es/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/es/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/es/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/es/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/es/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/es/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/es/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/es/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/es/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/es/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/es/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/es/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/es/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/es/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/es/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/es/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/es/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/es/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/es/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/es/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/es/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/es/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/es/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"es","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=p||f;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=a.forwardRef(p)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>p,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return l(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(a),f=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var fe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],p=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:f,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(3734);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function pt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function ft(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(pt,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(ft,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},f,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},p)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{c.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(3734),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3734:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>p,jA:()=>h,xz:()=>f,hI:()=>x,lO:()=>k,vY:()=>E,oz:()=>S,s1:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432);function c(e){return Array.from(new Set(e))}var d=n(9003);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+p(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),f(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===p(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[p(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(p(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(p(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=l[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var p=s(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var P=_[0],N=x.slice(0,T),O=x.slice(T+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),u(t,D,C),S=s(t,D,new a(p,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),C>1){var M={cause:p+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),a.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),f=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),u=l.alias,d=Array.isArray(u)?u[0]:u,f=e.languages[d];if(!f)continue;i[1]=c(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),C=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Te&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=ft(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<pt.indexOf(e))return e=ft(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=ln(dn),fn=a({},dn,{view:0,detail:0}),mn=ln(fn),hn=a({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},fn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},fn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=ln(a({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Pt.get(e);if(void 0!==l){var s=pn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Pn;break;case Tt:case At:case Lt:s=yn;break;case Rt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=je(m,p))&&c.push(Dr(m,h,f)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:ra(s),f=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=f,h=null,ta(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(p=u,m=0,f=c=s;f;f=Fr(f))m++;for(f=0,h=p;h;h=Fr(h))f++;for(;0<m-f;)c=Fr(c),m--;for(;0<f-m;)p=Fr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Fr(c),p=Fr(p)}c=null}else c=null;null!==s&&Br(i,l,s,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=je(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=je(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},pa=sa(da),fa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(fa),ua(pa)}function va(e,t,n){if(pa.current!==da)throw Error(i(168));ca(pa,t),ca(fa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=pa.current,ca(pa,e),ca(fa,fa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(fa),ua(pa),ca(pa,e)):ua(fa),ca(fa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ca(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fo(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=c:p.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(p=o.baseState,l=0,d=c=u=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=a({},p,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=f,u=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=p),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=p}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:pa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:pa.current,a.context=ha(e,o)),fo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=p(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),Po=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=fe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function fi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return pi(a,t,n)})),c=u[1],d=u[0];u=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Jo;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=fs(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=pi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return fi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=ps(),a=fs(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:pa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:pa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var p=t.memoizedState;i.state=p,fo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||fa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:pa.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&wo(t,i,r,s),io=!1,p=t.memoizedState,i.state=p,fo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||fa.current||io?("function"==typeof f&&(go(t,n,f,r),m=t.memoizedState),(u=io||vo(t,n,u,r,p,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(fa),ua(pa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(fa),ua(pa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function fl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function ps(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=jt(12,ss):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Bl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=ys.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Cs();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=jl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Ft(e,t)))}else n=Ts(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=jl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ua(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(fa),ua(pa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Pl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(u),p.updateQueue=b}else g.add(u);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),p=i;do{switch(p.tag){case 3:o=s,p.flags|=4096,t&=-t,p.lanes|=t,po(p,pl(0,o,t));break e;case 1:o=s;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,po(p,fl(p,o,t));break e}}p=p.return}while(null!==p)}Ps(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Pi,null===e?Pi:e}function Ts(e,t){var n=Nl;Nl|=16;var r=Cs();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Rl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Ta();)Rs(Il)}function Rs(e){var t=Ql(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ps(e):Il=t,Pl.current=null}function Ps(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,zr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(p=d+o),g!==u||0!==c&&3!==g.nodeType||(f=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(p=d),b===u&&++h===c&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Is()}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=fr(y,S),o=fr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Wl=Wl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function js(e,t,n){co(e,t=pl(0,t=ul(n,t),1)),t=ps(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=fl(n,e=ul(t,e),1);if(co(n,a),a=ps(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gs(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Ws(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=ps(),l=fs(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,pa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),fo(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!fa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,ps()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,ps()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,Pe,Ds,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,p,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=f!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(c||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=p(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,l.Z)({},P,f));var N=(0,l.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},a=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/es/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"Cerrar","theme.BackToTopButton.buttonAriaLabel":"Volver al principio","theme.CodeBlock.copied":"Copiado","theme.CodeBlock.copy":"Copiar","theme.CodeBlock.copyButtonAriaLabel":"Copiar c\xf3digo al portapapeles","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"Toggle the collapsible sidebar category \'{label}\'","theme.ErrorPageContent.title":"This page crashed.","theme.ErrorPageContent.tryAgain":"Try again","theme.NavBar.navAriaLabel":"Main","theme.NotFound.p1":"No pudimos encontrar lo que buscaba.","theme.NotFound.p2":"Comun\xedquese con el due\xf1o del sitio que lo vincul\xf3 a la URL original y h\xe1gale saber que su v\xednculo est\xe1 roto.","theme.NotFound.title":"P\xe1gina No Encontrada","theme.TOCCollapsible.toggleButtonLabel":"En esta p\xe1gina","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.blog.archive.description":"Archivo","theme.blog.archive.title":"Archivo","theme.blog.paginator.navAriaLabel":"Navegaci\xf3n por la p\xe1gina de la lista de blogs ","theme.blog.paginator.newerEntries":"Entradas m\xe1s recientes","theme.blog.paginator.olderEntries":"Entradas m\xe1s antiguas","theme.blog.post.paginator.navAriaLabel":"Barra de paginaci\xf3n de publicaciones del blog","theme.blog.post.paginator.newerPost":"Publicaci\xf3n m\xe1s reciente","theme.blog.post.paginator.olderPost":"Publicaci\xf3n m\xe1s antigua","theme.blog.post.plurals":"Una publicaci\xf3n|{count} publicaciones","theme.blog.post.readMore":"Leer M\xe1s","theme.blog.post.readMoreLabel":"Read more about {title}","theme.blog.post.readingTime.plurals":"Lectura de un minuto|{readingTime} min de lectura","theme.blog.sidebar.navAriaLabel":"Navegaci\xf3n de publicaciones recientes","theme.blog.tagTitle":"{nPosts} etiquetados con \\"{tagName}\\"","theme.colorToggle.ariaLabel":"Switch between dark and light mode (currently {mode})","theme.colorToggle.ariaLabel.mode.dark":"dark mode","theme.colorToggle.ariaLabel.mode.light":"light mode","theme.common.editThisPage":"Editar esta p\xe1gina","theme.common.headingLinkTitle":"Enlace directo al {heading}","theme.common.skipToMainContent":"Saltar al contenido principal","theme.docs.DocCard.categoryDescription":"{count} items","theme.docs.breadcrumbs.home":"Home page","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"P\xe1gina del documento","theme.docs.paginator.next":"Siguiente","theme.docs.paginator.previous":"Anterior","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.docs.sidebar.collapseButtonAriaLabel":"Colapsar barra lateral","theme.docs.sidebar.collapseButtonTitle":"Colapsar barra lateral","theme.docs.sidebar.expandButtonAriaLabel":"Expandir barra lateral","theme.docs.sidebar.expandButtonTitle":"Expandir barra lateral","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.docs.tagDocListPageTitle":"{nDocsTagged} con \\"{tagName}\\"","theme.docs.tagDocListPageTitle.nDocsTagged":"Un documento etiquetado|{count} documentos etiquetados","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\xfaltima versi\xf3n","theme.docs.versions.latestVersionSuggestionLabel":"Para la documentaci\xf3n actualizada, vea {latestVersionLink} ({versionLabel}).","theme.docs.versions.unmaintainedVersionLabel":"Esta es documentaci\xf3n para {siteTitle} {versionLabel}, que ya no se mantiene activamente.","theme.docs.versions.unreleasedVersionLabel":"Esta es documentaci\xf3n sin liberar para {siteTitle} {versionLabel} versi\xf3n.","theme.lastUpdated.atDate":" en {date}","theme.lastUpdated.byUser":" por {user}","theme.lastUpdated.lastUpdatedAtBy":"\xdaltima actualizaci\xf3n{atDate}{byUser}","theme.navbar.mobileLanguageDropdown.label":"Languages","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Volver al men\xfa principal","theme.navbar.mobileVersionsDropdown.label":"Versiones","theme.tags.tagsListLabel":"Etiquetas:","theme.tags.tagsPageLink":"Ver Todas las Etiquetas","theme.tags.tagsPageTitle":"Etiquetas","theme.SearchBar.label":"Buscar","theme.SearchBar.seeAll":"See all {count} results","theme.SearchModal.errorScreen.helpText":"You might want to check your network connection.","theme.SearchModal.errorScreen.titleText":"Unable to fetch results","theme.SearchModal.footer.closeKeyAriaLabel":"Escape key","theme.SearchModal.footer.closeText":"to close","theme.SearchModal.footer.navigateDownKeyAriaLabel":"Arrow down","theme.SearchModal.footer.navigateText":"to navigate","theme.SearchModal.footer.navigateUpKeyAriaLabel":"Arrow up","theme.SearchModal.footer.searchByText":"Search by","theme.SearchModal.footer.selectKeyAriaLabel":"Enter key","theme.SearchModal.footer.selectText":"to select","theme.SearchModal.noResultsScreen.noResultsText":"No results for","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"Let us know.","theme.SearchModal.noResultsScreen.reportMissingResultsText":"Believe this query should return results?","theme.SearchModal.noResultsScreen.suggestedQueryText":"Try searching for","theme.SearchModal.placeholder":"Search docs","theme.SearchModal.searchBox.cancelButtonText":"Cancel","theme.SearchModal.searchBox.resetButtonTitle":"Clear the query","theme.SearchModal.startScreen.favoriteSearchesTitle":"Favorite","theme.SearchModal.startScreen.noRecentSearchesText":"No recent searches","theme.SearchModal.startScreen.recentSearchesTitle":"Recent","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"Remove this search from favorites","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"Remove this search from history","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"Save this search","theme.SearchPage.algoliaLabel":"B\xfasqueda por Algolia","theme.SearchPage.documentsFound.plurals":"Un documento encontrado|{count} documentos encontrados","theme.SearchPage.emptyResultsTitle":"B\xfasqueda en la documentaci\xf3n","theme.SearchPage.existingResultsTitle":"Resultados de b\xfasqueda para \\"{query}\\"","theme.SearchPage.fetchingNewResults":"Obteniendo nuevos resultados...","theme.SearchPage.inputLabel":"Buscar","theme.SearchPage.inputPlaceholder":"Escribe tu b\xfasqueda aqu\xed","theme.SearchPage.noResultsText":"No se encontraron resultados","theme.IdealImageMessage.404error":"404. Image not found","theme.IdealImageMessage.error":"Error. Click to reload","theme.IdealImageMessage.load":"Click to load{sizeMessage}","theme.IdealImageMessage.loading":"Loading...","theme.IdealImageMessage.offline":"Your browser is offline. Image not loaded"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/es/search/-500":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/es/-3d0":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/es/-a8c":{"__comp":"17896441","content":"6e7e0dfd"},"/es/category/contribute/-260":{"__comp":"14eb3368","categoryGeneratedIndex":"9ff5325d"},"/es/category/faq/-787":{"__comp":"14eb3368","categoryGeneratedIndex":"dc9fd2e7"},"/es/category/getting-started/-f24":{"__comp":"14eb3368","categoryGeneratedIndex":"4d9f14c4"},"/es/category/guides/-36b":{"__comp":"14eb3368","categoryGeneratedIndex":"96fb4374"},"/es/category/legacy-documentation/-650":{"__comp":"14eb3368","categoryGeneratedIndex":"49f133ab"},"/es/category/manual/-ab7":{"__comp":"14eb3368","categoryGeneratedIndex":"18d17e09"},"/es/category/release-notes/-e28":{"__comp":"14eb3368","categoryGeneratedIndex":"d5211f12"},"/es/category/tutorial---basics/-07f":{"__comp":"14eb3368","categoryGeneratedIndex":"322cff69"},"/es/category/tutorial---extras/-0e2":{"__comp":"14eb3368","categoryGeneratedIndex":"1e1d6f20"},"/es/category/unraid-connect/-33e":{"__comp":"14eb3368","categoryGeneratedIndex":"24983e98"},"/es/category/unraid-os/-5a6":{"__comp":"14eb3368","categoryGeneratedIndex":"d53ad56c"},"/es/category/zfs/-55d":{"__comp":"14eb3368","categoryGeneratedIndex":"235babb1"},"/es/connect/about/-8d1":{"__comp":"17896441","content":"bd5544b1"},"/es/connect/help/-441":{"__comp":"17896441","content":"54fe4512"},"/es/connect/remote-access/-4e7":{"__comp":"17896441","content":"ba2ffba3"},"/es/contribute-to-docs/intro/-80f":{"__comp":"17896441","content":"9c8e01a5"},"/es/contribute-to-docs/tutorial-basics/congratulations/-1d9":{"__comp":"17896441","content":"06cd2fd6"},"/es/contribute-to-docs/tutorial-basics/create-a-blog-post/-71d":{"__comp":"17896441","content":"e62fd64a"},"/es/contribute-to-docs/tutorial-basics/create-a-document/-15c":{"__comp":"17896441","content":"73c1707a"},"/es/contribute-to-docs/tutorial-basics/create-a-page/-ea9":{"__comp":"17896441","content":"6937eda1"},"/es/contribute-to-docs/tutorial-basics/markdown-features/-15d":{"__comp":"17896441","content":"fd47d4b7"},"/es/contribute-to-docs/tutorial-extras/manage-docs-versions/-5ff":{"__comp":"17896441","content":"0993abe5"},"/es/contribute-to-docs/tutorial-extras/translate-your-site/-8f0":{"__comp":"17896441","content":"f568d666"},"/es/legacy/Articles/dual-boot-unraid-and-windows/-166":{"__comp":"17896441","content":"c5b893f4"},"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/-9b4":{"__comp":"17896441","content":"69f90a2c"},"/es/legacy/Articles/upgrading-to-unraid-6/-07b":{"__comp":"17896441","content":"39304afb"},"/es/legacy/FAQ/cache-disk/-552":{"__comp":"17896441","content":"88a1b883"},"/es/legacy/FAQ/check-disk-filesystems/-753":{"__comp":"17896441","content":"5034631f"},"/es/legacy/FAQ/check-harddrive-speed/-1a5":{"__comp":"17896441","content":"039cd775"},"/es/legacy/FAQ/console/-9ea":{"__comp":"17896441","content":"2dd62328"},"/es/legacy/FAQ/parity-swap-procedure/-214":{"__comp":"17896441","content":"f2577e9f"},"/es/legacy/FAQ/Parity/-f3d":{"__comp":"17896441","content":"54f4a7b0"},"/es/legacy/FAQ/replacing-a-data-drive/-a2e":{"__comp":"17896441","content":"74287a25"},"/es/legacy/FAQ/replacing-multiple-data-drives/-c30":{"__comp":"17896441","content":"d441ea6d"},"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-90b":{"__comp":"17896441","content":"6618ba01"},"/es/legacy/FAQ/setup-sleep-and-wake-on-lan/-ef6":{"__comp":"17896441","content":"036bad42"},"/es/legacy/FAQ/shrink-array/-19a":{"__comp":"17896441","content":"9d093beb"},"/es/legacy/FAQ/terminal-access/-827":{"__comp":"17896441","content":"e624f8a6"},"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-f51":{"__comp":"17896441","content":"67a4e8b6"},"/es/legacy/FAQ/transferring-files-within-the-unraid-server/-723":{"__comp":"17896441","content":"38c3fa26"},"/es/legacy/FAQ/understanding-smart-reports/-0fc":{"__comp":"17896441","content":"dec1eefe"},"/es/legacy/FAQ/usb-flash-drive-preparation/-c36":{"__comp":"17896441","content":"79722de7"},"/es/unraid-os/faq/licensing-faq/-edb":{"__comp":"17896441","content":"26113f5d"},"/es/unraid-os/faq/os-faq/-b1f":{"__comp":"17896441","content":"81b28c9f"},"/es/unraid-os/faq/redeem-license-activation-code/-0dd":{"__comp":"17896441","content":"1161d08d"},"/es/unraid-os/faq/unraid-account/-0b1":{"__comp":"17896441","content":"5565d3f9"},"/es/unraid-os/guides/configuring-time-machine/-0e3":{"__comp":"17896441","content":"f9ab548b"},"/es/unraid-os/guides/wol-setup-for-unraid/-564":{"__comp":"17896441","content":"0a18b2d8"},"/es/unraid-os/manual/additional-settings/-5e8":{"__comp":"17896441","content":"1942e1e1"},"/es/unraid-os/manual/applications/-949":{"__comp":"17896441","content":"7b378cd1"},"/es/unraid-os/manual/changing-the-flash-device/-160":{"__comp":"17896441","content":"0ca4c500"},"/es/unraid-os/manual/docker-management/-35e":{"__comp":"17896441","content":"4caccc33"},"/es/unraid-os/manual/getting-started/-9e3":{"__comp":"17896441","content":"b13723e0"},"/es/unraid-os/manual/getting-started/manual-install-method/-2c5":{"__comp":"17896441","content":"25ec094f"},"/es/unraid-os/manual/multi-language/-813":{"__comp":"17896441","content":"6b42df2b"},"/es/unraid-os/manual/security/-366":{"__comp":"17896441","content":"a78d85c7"},"/es/unraid-os/manual/shares/-08d":{"__comp":"17896441","content":"90126b70"},"/es/unraid-os/manual/storage-management/-a13":{"__comp":"17896441","content":"55054ac6"},"/es/unraid-os/manual/tools/-07d":{"__comp":"17896441","content":"7c081f1b"},"/es/unraid-os/manual/troubleshooting/-5d1":{"__comp":"17896441","content":"104dd0b4"},"/es/unraid-os/manual/upgrade-instructions/-078":{"__comp":"17896441","content":"7436a388"},"/es/unraid-os/manual/users/-3da":{"__comp":"17896441","content":"40147886"},"/es/unraid-os/manual/vm-management/-8f2":{"__comp":"17896441","content":"3d3d1f9d"},"/es/unraid-os/manual/vm-support/-aaf":{"__comp":"17896441","content":"88941ca4"},"/es/unraid-os/manual/what-is-unraid/-17f":{"__comp":"17896441","content":"f0844d9f"},"/es/unraid-os/manual/zfs/placeholder/-9f4":{"__comp":"17896441","content":"5df36282"},"/es/unraid-os/release-notes/6.10.0/-949":{"__comp":"17896441","content":"798531cc"},"/es/unraid-os/release-notes/6.10.1/-b71":{"__comp":"17896441","content":"b3a9d7ab"},"/es/unraid-os/release-notes/6.10.2/-5db":{"__comp":"17896441","content":"caa9baff"},"/es/unraid-os/release-notes/6.10.3/-165":{"__comp":"17896441","content":"54219b20"},"/es/unraid-os/release-notes/6.11.0/-3e7":{"__comp":"17896441","content":"096fb135"},"/es/unraid-os/release-notes/6.11.1/-cf6":{"__comp":"17896441","content":"6b97f0f9"},"/es/unraid-os/release-notes/6.11.2/-b21":{"__comp":"17896441","content":"a0c90937"},"/es/unraid-os/release-notes/6.11.3/-3eb":{"__comp":"17896441","content":"d31ea43a"},"/es/unraid-os/release-notes/6.11.4/-91d":{"__comp":"17896441","content":"c8335b6e"},"/es/unraid-os/release-notes/6.11.5/-688":{"__comp":"17896441","content":"ae93aaeb"},"/es/unraid-os/release-notes/6.12.0/-466":{"__comp":"17896441","content":"e1256ee6"},"/es/unraid-os/release-notes/6.12.1/-f7e":{"__comp":"17896441","content":"98a2ad9f"},"/es/unraid-os/release-notes/6.12.2/-e1d":{"__comp":"17896441","content":"0ba4e87b"},"/es/unraid-os/release-notes/6.12.3/-74e":{"__comp":"17896441","content":"7a2d53ea"},"/es/unraid-os/release-notes/6.9.0/-2f0":{"__comp":"17896441","content":"06988216"},"/es/unraid-os/release-notes/6.9.1/-ac8":{"__comp":"17896441","content":"49332cbb"},"/es/unraid-os/release-notes/6.9.2/-6c7":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/es/assets/js/main.62fd37dd.js b/es/assets/js/main.62fd37dd.js new file mode 100644 index 000000000..d69a1b581 --- /dev/null +++ b/es/assets/js/main.62fd37dd.js @@ -0,0 +1,2 @@ +/*! For license information please see main.62fd37dd.js.LICENSE.txt */ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),s=n(6887);const l={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0a1bdeaa":[()=>n.e(967).then(n.bind(n,3940)),"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",3940],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"10869db1":[()=>n.e(3563).then(n.bind(n,2127)),"@site/docs/unraid-os/manual/security/flash-drive.md",2127],"1161d08d":[()=>n.e(5632).then(n.bind(n,7084)),"@site/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/faq/redeem-license-activation-code.md",7084],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18d17e09":[()=>n.e(4118).then(n.t.bind(n,429,19)),"~docs/default/category-es-unraidsidebar-category-manual-c0e.json",429],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"1c36a847":[()=>n.e(5289).then(n.bind(n,7732)),"@site/docs/unraid-os/manual/security/vpn.md",7732],"1e1d6f20":[()=>n.e(808).then(n.t.bind(n,9236,19)),"~docs/default/category-es-unraidsidebar-category-tutorial-extras-df9.json",9236],"235babb1":[()=>n.e(557).then(n.t.bind(n,5346,19)),"~docs/default/category-es-unraidsidebar-category-zfs-8e0.json",5346],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"24983e98":[()=>n.e(2099).then(n.t.bind(n,6443,19)),"~docs/default/category-es-unraidsidebar-category-unraid-connect-0b4.json",6443],"25ec094f":[()=>n.e(9146).then(n.bind(n,1812)),"@site/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md",1812],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"277cf690":[()=>n.e(9821).then(n.bind(n,3593)),"@site/docs/unraid-os/manual/security/security.md",3593],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"313b9001":[()=>n.e(559).then(n.bind(n,3283)),"@site/docs/unraid-os/manual/security/good-practices.md",3283],"322cff69":[()=>n.e(1420).then(n.t.bind(n,3051,19)),"~docs/default/category-es-unraidsidebar-category-tutorial-basics-e0f.json",3051],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"49f133ab":[()=>n.e(6424).then(n.t.bind(n,6784,19)),"~docs/default/category-es-unraidsidebar-category-legacy-documentation-2f4.json",6784],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"4d9f14c4":[()=>n.e(1220).then(n.t.bind(n,4886,19)),"~docs/default/category-es-unraidsidebar-category-getting-started-c7e.json",4886],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"5f60a020":[()=>n.e(4863).then(n.bind(n,6260)),"@site/docs/unraid-os/manual/shares/disk-shares.md",6260],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"8944547a":[()=>Promise.all([n.e(532),n.e(5450)]).then(n.bind(n,3135)),"@site/docs/unraid-os/manual/shares/user-shares.md",3135],"8a89048a":[()=>n.e(1770).then(n.bind(n,8829)),"@site/docs/unraid-os/manual/shares/create-a-share.md",8829],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"96fb4374":[()=>n.e(42).then(n.t.bind(n,1859,19)),"~docs/default/category-es-unraidsidebar-category-guides-6bf.json",1859],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],"9d23aec8":[()=>n.e(1754).then(n.bind(n,6419)),"@site/docs/unraid-os/manual/shares/delete-a-share.md",6419],"9ff5325d":[()=>n.e(8647).then(n.t.bind(n,1547,19)),"~docs/default/category-es-unraidsidebar-category-contribute-a03.json",1547],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],aed38285:[()=>n.e(1932).then(n.bind(n,3976)),"@site/docs/unraid-os/manual/shares/shares.md",3976],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],d5211f12:[()=>n.e(1919).then(n.t.bind(n,6777,19)),"~docs/default/category-es-unraidsidebar-category-release-notes-5b7.json",6777],d53ad56c:[()=>n.e(9394).then(n.t.bind(n,4276,19)),"~docs/default/category-es-unraidsidebar-category-unraid-os-382.json",4276],dc9fd2e7:[()=>n.e(2105).then(n.t.bind(n,660,19)),"~docs/default/category-es-unraidsidebar-category-faq-8c2.json",660],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f7b0b541:[()=>n.e(2454).then(n.bind(n,7088)),"@site/docs/unraid-os/manual/shares/network-access.md",7088],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219],fee3ac30:[()=>n.e(7328).then(n.bind(n,8330)),"@site/docs/unraid-os/manual/security/data-encryption.md",8330]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function p(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=s[`${e}-${t}`],p={},f=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=l[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const s=n.split(".");s.slice(0,-1).forEach((e=>{o=o[e]})),o[s[s.length-1]]=a}));const s=i.__comp;delete i.__comp;const l=i.__context;return delete i.__context,r.createElement(d.z,{value:l},r.createElement(s,(0,a.Z)({},i,n)))}})}const f=[{path:"/es/search/",component:p("/es/search/","500"),exact:!0},{path:"/es/",component:p("/es/","43c"),routes:[{path:"/es/",component:p("/es/","a8c"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/contribute/",component:p("/es/category/contribute/","260"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/faq/",component:p("/es/category/faq/","787"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/getting-started/",component:p("/es/category/getting-started/","f24"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/guides/",component:p("/es/category/guides/","36b"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/legacy-documentation/",component:p("/es/category/legacy-documentation/","650"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/manual/",component:p("/es/category/manual/","ab7"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/release-notes/",component:p("/es/category/release-notes/","e28"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/tutorial---basics/",component:p("/es/category/tutorial---basics/","07f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/tutorial---extras/",component:p("/es/category/tutorial---extras/","0e2"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/unraid-connect/",component:p("/es/category/unraid-connect/","33e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/unraid-os/",component:p("/es/category/unraid-os/","5a6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/category/zfs/",component:p("/es/category/zfs/","55d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/connect/about/",component:p("/es/connect/about/","8d1"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/connect/help/",component:p("/es/connect/help/","441"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/connect/remote-access/",component:p("/es/connect/remote-access/","4e7"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/intro/",component:p("/es/contribute-to-docs/intro/","80f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/congratulations/",component:p("/es/contribute-to-docs/tutorial-basics/congratulations/","1d9"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:p("/es/contribute-to-docs/tutorial-basics/create-a-blog-post/","71d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/create-a-document/",component:p("/es/contribute-to-docs/tutorial-basics/create-a-document/","15c"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/create-a-page/",component:p("/es/contribute-to-docs/tutorial-basics/create-a-page/","ea9"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-basics/markdown-features/",component:p("/es/contribute-to-docs/tutorial-basics/markdown-features/","15d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:p("/es/contribute-to-docs/tutorial-extras/manage-docs-versions/","5ff"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/contribute-to-docs/tutorial-extras/translate-your-site/",component:p("/es/contribute-to-docs/tutorial-extras/translate-your-site/","8f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/Articles/dual-boot-unraid-and-windows/",component:p("/es/legacy/Articles/dual-boot-unraid-and-windows/","166"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:p("/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/","9b4"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/Articles/upgrading-to-unraid-6/",component:p("/es/legacy/Articles/upgrading-to-unraid-6/","07b"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/cache-disk/",component:p("/es/legacy/FAQ/cache-disk/","552"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/check-disk-filesystems/",component:p("/es/legacy/FAQ/check-disk-filesystems/","753"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/check-harddrive-speed/",component:p("/es/legacy/FAQ/check-harddrive-speed/","1a5"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/console/",component:p("/es/legacy/FAQ/console/","9ea"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/parity-swap-procedure/",component:p("/es/legacy/FAQ/parity-swap-procedure/","214"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/Parity/",component:p("/es/legacy/FAQ/Parity/","f3d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/replacing-a-data-drive/",component:p("/es/legacy/FAQ/replacing-a-data-drive/","a2e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/replacing-multiple-data-drives/",component:p("/es/legacy/FAQ/replacing-multiple-data-drives/","c30"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:p("/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","90b"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:p("/es/legacy/FAQ/setup-sleep-and-wake-on-lan/","ef6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/shrink-array/",component:p("/es/legacy/FAQ/shrink-array/","19a"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/terminal-access/",component:p("/es/legacy/FAQ/terminal-access/","827"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:p("/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","f51"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/transferring-files-within-the-unraid-server/",component:p("/es/legacy/FAQ/transferring-files-within-the-unraid-server/","723"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/understanding-smart-reports/",component:p("/es/legacy/FAQ/understanding-smart-reports/","0fc"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/legacy/FAQ/usb-flash-drive-preparation/",component:p("/es/legacy/FAQ/usb-flash-drive-preparation/","c36"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/licensing-faq/",component:p("/es/unraid-os/faq/licensing-faq/","edb"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/os-faq/",component:p("/es/unraid-os/faq/os-faq/","b1f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/redeem-license-activation-code/",component:p("/es/unraid-os/faq/redeem-license-activation-code/","0dd"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/faq/unraid-account/",component:p("/es/unraid-os/faq/unraid-account/","0b1"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/guides/configuring-time-machine/",component:p("/es/unraid-os/guides/configuring-time-machine/","0e3"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/guides/wol-setup-for-unraid/",component:p("/es/unraid-os/guides/wol-setup-for-unraid/","564"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/additional-settings/",component:p("/es/unraid-os/manual/additional-settings/","5e8"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/applications/",component:p("/es/unraid-os/manual/applications/","949"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/changing-the-flash-device/",component:p("/es/unraid-os/manual/changing-the-flash-device/","160"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/docker-management/",component:p("/es/unraid-os/manual/docker-management/","35e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/getting-started/",component:p("/es/unraid-os/manual/getting-started/","9e3"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/getting-started/manual-install-method/",component:p("/es/unraid-os/manual/getting-started/manual-install-method/","2c5"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/multi-language/",component:p("/es/unraid-os/manual/multi-language/","813"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/security/",component:p("/es/unraid-os/manual/security/","61d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/security/data-encryption/",component:p("/es/unraid-os/manual/security/data-encryption/","808"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/security/flash-drive/",component:p("/es/unraid-os/manual/security/flash-drive/","3d6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/security/good-practices/",component:p("/es/unraid-os/manual/security/good-practices/","99a"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/security/secure-webgui-ssl/",component:p("/es/unraid-os/manual/security/secure-webgui-ssl/","4d9"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/security/vpn/",component:p("/es/unraid-os/manual/security/vpn/","cb6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/shares/",component:p("/es/unraid-os/manual/shares/","e57"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/shares/create-a-share/",component:p("/es/unraid-os/manual/shares/create-a-share/","8b9"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/shares/delete-a-share/",component:p("/es/unraid-os/manual/shares/delete-a-share/","74c"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/shares/disk-shares/",component:p("/es/unraid-os/manual/shares/disk-shares/","cfb"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/shares/network-access/",component:p("/es/unraid-os/manual/shares/network-access/","8f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/shares/user-shares/",component:p("/es/unraid-os/manual/shares/user-shares/","c54"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/storage-management/",component:p("/es/unraid-os/manual/storage-management/","a13"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/tools/",component:p("/es/unraid-os/manual/tools/","07d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/troubleshooting/",component:p("/es/unraid-os/manual/troubleshooting/","5d1"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/upgrade-instructions/",component:p("/es/unraid-os/manual/upgrade-instructions/","078"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/users/",component:p("/es/unraid-os/manual/users/","3da"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/vm-management/",component:p("/es/unraid-os/manual/vm-management/","8f2"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/vm-support/",component:p("/es/unraid-os/manual/vm-support/","aaf"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/what-is-unraid/",component:p("/es/unraid-os/manual/what-is-unraid/","17f"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/manual/zfs/placeholder/",component:p("/es/unraid-os/manual/zfs/placeholder/","9f4"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.0/",component:p("/es/unraid-os/release-notes/6.10.0/","949"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.1/",component:p("/es/unraid-os/release-notes/6.10.1/","b71"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.2/",component:p("/es/unraid-os/release-notes/6.10.2/","5db"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.10.3/",component:p("/es/unraid-os/release-notes/6.10.3/","165"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.0/",component:p("/es/unraid-os/release-notes/6.11.0/","3e7"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.1/",component:p("/es/unraid-os/release-notes/6.11.1/","cf6"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.2/",component:p("/es/unraid-os/release-notes/6.11.2/","b21"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.3/",component:p("/es/unraid-os/release-notes/6.11.3/","3eb"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.4/",component:p("/es/unraid-os/release-notes/6.11.4/","91d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.11.5/",component:p("/es/unraid-os/release-notes/6.11.5/","688"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.0/",component:p("/es/unraid-os/release-notes/6.12.0/","466"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.1/",component:p("/es/unraid-os/release-notes/6.12.1/","f7e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.2/",component:p("/es/unraid-os/release-notes/6.12.2/","e1d"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.12.3/",component:p("/es/unraid-os/release-notes/6.12.3/","74e"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.9.0/",component:p("/es/unraid-os/release-notes/6.9.0/","2f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.9.1/",component:p("/es/unraid-os/release-notes/6.9.1/","ac8"),exact:!0,sidebar:"unraidSidebar"},{path:"/es/unraid-os/release-notes/6.9.2/",component:p("/es/unraid-os/release-notes/6.9.2/","6c7"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:p("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),s=n(6136);const l=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:s,direction:l}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:s,dir:l}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(s.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/es/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/es/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/es/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/es/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/es/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/es/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/es/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/es/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/es/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/es/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/es/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/es/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/es/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/es/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/es/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/es/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/es/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/es/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/es/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/es/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/es/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/es/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/es/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/es/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/es/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/es/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/es/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/es/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/es/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/es/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/es/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/es/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/es/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/es/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/es/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/es/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/es/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/es/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/es/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/es/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/es/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/es/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/es/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/data-encryption","path":"/es/unraid-os/manual/security/data-encryption","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/flash-drive","path":"/es/unraid-os/manual/security/flash-drive","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/good-practices","path":"/es/unraid-os/manual/security/good-practices","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/secure-webgui-ssl","path":"/es/unraid-os/manual/security/secure-webgui-ssl","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/security","path":"/es/unraid-os/manual/security/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/vpn","path":"/es/unraid-os/manual/security/vpn","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/create-a-share","path":"/es/unraid-os/manual/shares/create-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/delete-a-share","path":"/es/unraid-os/manual/shares/delete-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/disk-shares","path":"/es/unraid-os/manual/shares/disk-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/network-access","path":"/es/unraid-os/manual/shares/network-access","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/shares","path":"/es/unraid-os/manual/shares/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/user-shares","path":"/es/unraid-os/manual/shares/user-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/es/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/es/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/es/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/es/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/es/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/es/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/es/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/es/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/es/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/es/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/es/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/es/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/es/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/es/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/es/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/es/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/es/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/es/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/es/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/es/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/es/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/es/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/es/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/es/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/es/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/es/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/es/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/es/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/es/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/es/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/es/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/es/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/es/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/es/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/es/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/es/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/es/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/es/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/es/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"es","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),s=n(241);function l(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(s.Z,null,r.createElement(l,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),s=n(9962),l=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,s.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=p||f;const _=(0,l.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=a.forwardRef(p)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,I:()=>s});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function l(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const s=i({message:t,id:n});return r.createElement(r.Fragment,null,a(s,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>p,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=l(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),s=n(7462),l=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,s.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...l}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,s.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const s=(0,j.Z)(),l=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!s&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!s,title:l,"aria-label":l,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:l,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(a),f=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=l?{dangerouslySetInnerHTML:{__html:l}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,s.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,s.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,s.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,s.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,s.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),se=n(9003),le=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,s.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},l,{onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),l.children??l.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,s.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,s.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(qe,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var fe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){s=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,u=void 0===l?"Search":l,c=we((0,r.useState)(null),2),d=c[0],p=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,le.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},m=(0,l.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,s.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,s.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:f,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,le.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(8259);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,l.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,s.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const s=i?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),l=(0,je.vY)(t,a);return null===l?null:r.createElement(oe,(0,s.Z)({exact:!0},o,{isActive:()=>i?.path===l.path||!!i?.sidebar&&i.sidebar===l.sidebar,label:n??l.id,to:l.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),l=(0,je.oz)(t,a).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,s.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??l.label,to:l.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],l=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,s.Z)({},o,{label:l,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:p}=(0,l.TH)(),f=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,s.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,s.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:s,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-o.current,u=window.innerHeight;s&&i>=s?n(!1):i+u<l&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:s,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!l&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,s.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,s.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function st(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function lt(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(st,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(lt,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...l}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,s.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},l),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function pt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function ft(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(pt,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(ft,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:s,title:l,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:l,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,s)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),s=n(9962),l=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},s=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},s):s}function d(e){const{siteConfig:{title:t}}=(0,s.Z)(),{navbar:{title:n,logo:u}}=(0,l.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},f,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),s=n(9200);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,s.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(l.themedImage,l[`themedImage--${e}`],c)},p)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const s="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??s}`,height:`${t}px`}}function l(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:l}=e;const u=(0,a.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:l?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:s},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[s,l]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&l(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:s})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),s=n(107);const l=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===l.get(),d=e=>l.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),s=n(107);const l=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{c.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(l.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(l);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),s=n(8259),l=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return s.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,b:()=>s});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function s(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function l(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),s=n(107),l=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[l,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:l})),[e,n,c,l])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>l,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=i,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>s,M:()=>l});var r=n(7294),a=n(9962),o=n(5238);const i="q";function s(){return(0,o.Nc)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const l=!1;function u(){const[e,t]=(0,r.useState)((()=>l?"ssr":s()));return(0,r.useEffect)((()=>{function e(){t(s())}const n=l?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8259:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>p,hI:()=>x,jA:()=>h,lO:()=>k,oz:()=>S,s1:()=>w,vY:()=>E,xz:()=>f});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),s=n(6409),l=n(8801),u=n(4432),c=n(3609),d=n(9003);const p=!!i._r;function f(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,s=i.find((e=>(0,a.LX)(r.pathname,e)));if(!s)return null;const l=s.sidebar,u=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.H)(i),sidebarName:l,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>s,_X:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function s(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function l(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=l(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},3609:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:s}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,l.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),s=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:s},r.createElement(o.Z,null,r.createElement("html",{className:s})),n)}function f(e){let{children:t}=e;const n=s(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>l,i6:()=>s,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function l(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>l,RF:()=>d,o5:()=>p});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const s=r.createContext(void 0);function l(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(s.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(9871),a=n(9962),o=n(6409);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function s(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,l||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),l=!0),null}var t}let l=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=s(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),s=o===n?e:e.replace(`/${o}/`,"/"),l=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${s}`:`${s}${e}/`}(r)}${l}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function s(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&a(e),l=t&&a(t),u=s||l;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(l(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+p(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,s=o.state;if(a)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var l=D.indexOf(U.location.key),u=D.slice(0,l+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,s=o.state;if(a)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var l=D.indexOf(U.location.key);-1!==l&&(D[l]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:l},slash:{encodePath:l,decodePath:l}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(l(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),f(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===p(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[p(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(p(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(p(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,u=void 0===l?6:l,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(s,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||s&&s[b])){var v=p(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,s],c=0;(l=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(u,i(e,c,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l<arguments.length;l++){for(var u in o=Object(arguments[l]))n.call(o,u)&&(s[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(s[i[c]]=o[i[c]])}}return s}},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+l(x)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",s=t||{},l=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=s[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",s=0;s<e.length;s++){var u=e[s];if("string"==typeof u)i+=l(u);else{var p=l(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=l(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=o[s])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],a||s);var l=t[s],u=r.util.type(l);"Object"!==u||o[i(l)]?"Array"!==u||o[i(l)]||(o[i(l)]=!0,e(l,n,s,o)):(o[i(l)]=!0,e(l,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new s;return l(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,s,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=s.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var P=_[0],N=x.slice(0,T),O=x.slice(T+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=l(t,D,N),E+=N.length),u(t,D,C),S=l(t,D,new a(p,g?r.tokenize(P,g):P,y,P)),O&&l(t,S,O),C>1){var M={cause:p+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var s=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),l="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,l]:i.alias.push(l):i.alias=[l]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n);var r=s[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),a.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l<s;l++){var u=t[l];"variable"===u.type&&a.indexOf(u.content)>=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))a++;else if(r.test(s)&&0===--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,l(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=l(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(i++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,s=o.indexOf(a);if(-1!==s){++i;var l=o.substring(0,s),d=u(c[a]),f=o.substring(s+a.length),m=[];if(l&&m.push(l),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var s=i[1];if(3===i.length&&"string"!=typeof s&&"embedded-code"===s.type){var l=p(s),u=s.alias,d=Array.isArray(u)?u[0]:u,f=e.languages[d];if(!f)continue;i[1]=c(l,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var l=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(l+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=i(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(a>=o.length);l++){var u=s[l];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?s.splice.apply(s,[l,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return s}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var s={},l=e[r];if(l){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in a(t,o),s[t]=!0,n[t])s[i]=!0}t(l.require,u),t(l.optional,u),t(l.modify,u)}n[r]=s,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(l);i=i.map(u),s=(s||[]).map(u);var c=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(l),m=c;a(m);){for(var h in p={},m){var g=l[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,s={},l={};function u(e){if(e in s)return s[e];l[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete l[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return s[e]=a}for(var c in n)u(c);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var s=new Set,l={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(l[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),C=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(l){var r=l}Reflect.construct(e,[],t)}else{try{t.call()}catch(l){r=l}e.call(t.prototype)}else{try{throw Error()}catch(l){r=l}e()}}catch(l){if(l&&r&&"string"==typeof l.stack){for(var a=l.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=s);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Te&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,s,l){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=o;break}if(l===r){s=!0,r=a,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,r=a;break}if(l===r){s=!0,r=o,n=a;break}l=l.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,st=null,lt=null,ut=new Map,ct=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":lt=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=ft(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==st&&bt(st)&&(st=null),null!==lt&&bt(lt)&&(lt=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==st&&wt(st,e),null!==lt&&wt(lt,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,s=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var l=o&~i;0!==l?(r=Mt(l),a=Dt):0!==(s&=o)&&(r=Mt(s),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==s&&(r=Mt(s),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<pt.indexOf(e))return e=ft(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return st=ht(st,e,t,n,r,a),!0;case"mouseover":return lt=ht(lt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function sn(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var ln,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=sn(dn),fn=a({},dn,{view:0,detail:0}),mn=sn(fn),hn=a({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(ln=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=ln=0,cn=e),ln)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=sn(hn),bn=sn(a({},hn,{dataTransfer:0})),vn=sn(a({},fn,{relatedTarget:0})),yn=sn(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=sn(wn),Sn=sn(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},fn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=sn(An),Rn=sn(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=sn(a({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=sn(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=sn(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function sr(e,t){if("click"===e)return Yn(t)}function lr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,s,l,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Tr(a,s,u),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,u=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Tr(a,s,u),o=l}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,s.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),s=e+"__"+(t?"capture":"bubble");i.has(s)||(t&&(a|=4),Or(o,e,a,t),i.add(s))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=ta(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var s=Pt.get(e);if(void 0!==s){var l=pn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":l=Ln;break;case"focusin":u="focus",l=vn;break;case"focusout":u="blur",l=vn;break;case"beforeblur":case"afterblur":l=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Pn;break;case Tt:case At:case Lt:l=yn;break;case Rt:l=Nn;break;case"scroll":l=mn;break;case"wheel":l=In;break;case"copy":case"cut":case"paste":l=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,p=c?null!==s?s+"Capture":null:s;c=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=je(m,p))&&c.push(Dr(m,h,f)))),d)break;m=m.return}0<c.length&&(s=new l(s,u,null,n,a),i.push({event:s,listeners:c}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(l=null,u=r),l!==u)){if(c=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==l?s:ra(l),f=null==u?s:ra(u),(s=new c(h,m+"leave",l,n,a)).target=d,s.relatedTarget=f,h=null,ta(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,h=c),d=h,l&&u)e:{for(p=u,m=0,f=c=l;f;f=Fr(f))m++;for(f=0,h=p;h;h=Fr(h))f++;for(;0<m-f;)c=Fr(c),m--;for(;0<f-m;)p=Fr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Fr(c),p=Fr(p)}c=null}else c=null;null!==l&&Br(i,s,l,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(l=(s=r?ra(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Xn;else if(Zn(s))if(Jn)g=lr;else{g=ir;var b=or}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=sr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ae(s,"number",s.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,u=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==u&&(s=u,a?null!=(l=je(n,o))&&i.unshift(Dr(n,l,s)):a||null!=(l=je(n,o))&&i.push(Dr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],sa=-1;function la(e){return{current:e}}function ua(e){0>sa||(e.current=ia[sa],ia[sa]=null,sa--)}function ca(e,t){sa++,ia[sa]=e.current,e.current=t}var da={},pa=la(da),fa=la(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(fa),ua(pa)}function va(e,t,n){if(pa.current!==da)throw Error(i(168));ca(pa,t),ca(fa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=pa.current,ca(pa,e),ca(fa,fa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(fa),ua(pa),ca(pa,e)):ua(fa),ca(fa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ca(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=la(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function so(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function lo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fo(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,s=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var u=l,c=u.next;u.next=null,null===s?i=c:s.next=c,s=u;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==s&&(null===p?d.firstBaseUpdate=c:p.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(p=o.baseState,s=0,d=c=u=null;;){l=i.lane;var f=i.eventTime;if((r&l)===l){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(l=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,l);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(l="function"==typeof(m=h.payload)?m.call(f,p,l):m))break e;p=a({},p,l);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(l=o.effects)?o.effects=[i]:l.push(i))}else f={eventTime:f,lane:l,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=f,u=p):d=d.next=f,s|=l;if(null===(i=i.next)){if(null===(l=o.shared.pending))break;i=l.next,l.next=null,o.lastBaseUpdate=l,o.shared.pending=null}}null===d&&(u=p),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Us|=s,e.lanes=s,e.memoizedState=p}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pl(),a=fl(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ml(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pl(),a=fl(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ml(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pl(),r=fl(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ml(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:pa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,so(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:pa.current,a.context=ha(e,o)),fo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zl(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Kl(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vl(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Yl(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Ql(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Kl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vl(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Yl(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Ql(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,s,l){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,s[h],l);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===s.length)return n(a,d),u;if(null===d){for(;h<s.length;h++)null!==(d=p(a,s[h],l))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<s.length;h++)null!==(g=m(d,a,h,s[h],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,s,l,u){var c=$(l);if("function"!=typeof c)throw Error(i(150));if(null==(l=c.call(l)))throw Error(i(151));for(var d=c=null,h=s,g=s=0,b=null,v=l.next();null!==h&&!v.done;g++,v=l.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),s=o(y,s,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=l.next())null!==(v=p(a,v.value,u))&&(s=o(v,s,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=l.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),s=o(v,s,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,l){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Ql(o.props.children,e.mode,l,o.key)).return=e,e=r):((l=Vl(o.type,o.key,o.props,null,e.mode,l)).ref=Eo(e,r,o),l.return=e,e=l)}return s(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Yl(o,e.mode,l)).return=e,e=r}return s(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Kl(o,e.mode,l)).return=e,e=r),s(e);if(So(o))return h(e,r,o,l);if($(o))return g(e,r,o,l);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=la(Ao),Ro=la(Ao),Po=la(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=fe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=la(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gl(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function li(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=li(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var s=a.next;a.next=o.next,o.next=s}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var l=s=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==l&&(l=l.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===l?(s=l=d,o=r):l=l.next=d,Jo.lanes|=c,Us|=c}u=u.next}while(null!==u&&u!==a);null===l?o=r:l.next=s,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=li(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{o=e(o,s.action),s=s.next}while(s!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function fi(e,t,n,r){var a=Os;if(null===a)throw Error(i(349));var o=t._getVersion,s=o(t._source),l=Ko.current,u=l.useState((function(){return pi(a,t,n)})),c=u[1],d=u[0];u=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Jo;return e.memoizedState={refs:f,source:t,subscribe:r},l.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!ur(s,e)){e=n(t._source),ur(d,e)||(c(e),e=fl(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var l=31-qt(i),u=1<<l;r[l]|=e,i&=~u}}}),[n,t,r]),l.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fl(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=pi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return fi(li(),e,t,n)}function hi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},si().memoizedState=e}function vi(){return li().memoizedState}function yi(e,t,n,r){var a=si();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=li();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=li();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=li();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=pl(),a=fl(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var s=t.lastRenderedState,l=i(s,n);if(o.eagerReducer=i,o.eagerState=l,ur(l,s))return}catch(u){}ml(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,os(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hl(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vl(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?os(e,t,o):(t.flags|=1,(e=Zl(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,os(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Sl(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Sl(t,e),null;t.memoizedState={baseLanes:0},Sl(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Sl(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:pa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,os(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:pa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==u)&&wo(t,i,r,u),io=!1;var p=t.memoizedState;i.state=p,fo(t,r,i,a),l=t.memoizedState,s!==r||p!==l||fa.current||io?("function"==typeof c&&(go(t,n,c,r),l=t.memoizedState),(s=io||vo(t,n,s,r,p,l,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=u,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,lo(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:Ka(t.type,s),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=oo(l):l=ha(t,l=ga(n)?ma:pa.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&wo(t,i,r,l),io=!1,p=t.memoizedState,i.state=p,fo(t,r,i,a);var m=t.memoizedState;s!==d||p!==m||fa.current||io?("function"==typeof f&&(go(t,n,f,r),m=t.memoizedState),(u=io||vo(t,n,u,r,p,m,l))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=l,r=u):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),os(e,t,o);r=t.stateNode,Di.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,s,o)):Fi(e,t,s,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Wl({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=ts(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=es(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Wl(t,a,0,null),n=Ql(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function es(e,t,n,r){var a=e.child;return e=a.sibling,n=Zl(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ts(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var s={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=s,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zl(i,s),null!==e?r=Zl(e,r):(r=Ql(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function ns(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rs(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function as(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ns(e,n);else if(19===e.tag)ns(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rs(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rs(t,!0,n,null,o,t.lastEffect);break;case"together":rs(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function os(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Us|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zl(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function is(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ss(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(fa),ua(pa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Yr]=t,r[Xr]=s,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,s),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},Lr("invalid",r);break;case"textarea":le(r,s),Lr("invalid",r)}for(var u in Ee(n,s),e=null,s)s.hasOwnProperty(u)&&(o=s[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):l.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,s,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":le(e,r),o=se(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(s in c)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?ke(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===s?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(l.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Lr("scroll",e):null!=d&&w(e,s,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?ie(e,!!r.multiple,s,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bs&&(Bs=3):(0!==Bs&&3!==Bs||(Bs=4),null===Os||0==(134217727&Us)&&0==(134217727&$s)||vl(Os,Ds))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(u=r.rendering))if(s)is(r,!1);else{if(0!==Bs||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,is(r,!1),null!==(s=u.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(u=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=u.childLanes,s.lanes=u.lanes,s.child=u.child,s.memoizedProps=u.memoizedProps,s.memoizedState=u.memoizedState,s.updateQueue=u.updateQueue,s.type=u.type,e=u.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zs&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Bo(u))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),is(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zs&&1073741824!==n&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,s?1&t|2:1&t),n):null;case 23:case 24:return El(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function ls(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(fa),ua(pa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return El(),null;default:return null}}function us(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cs(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,s=null;switch(n){case"input":o=J(e,o),r=J(e,r),s=[];break;case"option":o=oe(e,o),r=oe(e,r),s=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),s=[];break;case"textarea":o=se(e,o),r=se(e,r),s=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(l.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(s||(s=[]),s.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(l.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),s||u===c||(s=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var ds="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ks||(Ks=!0,Ys=r),cs(0,t)},n}function fs(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cs(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xs?Xs=new Set([this]):Xs.add(this),cs(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ms="function"==typeof WeakSet?WeakSet:Set;function hs(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zl(e,n)}else t.current=null}function gs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bs(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fl(n,e),Ml(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vs(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ys(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fl(t,n);else{r=t;try{a()}catch(o){zl(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hs(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zl(t,o)}break;case 5:hs(t);break;case 4:_s(e,t)}}function ws(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ks(e){return 5===e.tag||3===e.tag||4===e.tag}function Ss(e){e:{for(var t=e.return;null!==t;){if(ks(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ks(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Es(e,n,t):xs(e,n,t)}function Es(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(Es(e,t,n),e=e.sibling;null!==e;)Es(e,t,n),e=e.sibling}function xs(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xs(e,t,n),e=e.sibling;null!==e;)xs(e,t,n),e=e.sibling}function _s(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var s=e,l=a,u=l;;)if(ys(s,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===l)break e;for(;null===u.sibling;){if(null===u.return||u.return===l)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(s=n,l=a.stateNode,8===s.nodeType?s.parentNode.removeChild(l):s.removeChild(l)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(ys(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cs(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var s=o[a],l=o[a+1];"style"===s?ke(n,l):"dangerouslySetInnerHTML"===s?ge(n,l):"children"===s?be(n,l):w(n,s,l,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hs=$a(),vs(t.child,!0)),void Ts(t);case 19:return void Ts(t);case 23:case 24:return void vs(t,null!==t.memoizedState)}throw Error(i(163))}function Ts(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ms),t.forEach((function(t){var r=$l.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function As(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ls=Math.ceil,Rs=k.ReactCurrentDispatcher,Ps=k.ReactCurrentOwner,Ns=0,Os=null,Is=null,Ds=0,Ms=0,Fs=la(0),Bs=0,js=null,zs=0,Us=0,$s=0,qs=0,Gs=null,Hs=0,Zs=1/0;function Vs(){Zs=$a()+500}var Qs,Ws=null,Ks=!1,Ys=null,Xs=null,Js=!1,el=null,tl=90,nl=[],rl=[],al=null,ol=0,il=null,sl=-1,ll=0,ul=0,cl=null,dl=!1;function pl(){return 0!=(48&Ns)?$a():-1!==sl?sl:sl=$a()}function fl(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ll&&(ll=zs),0!==Wa.transition){0!==ul&&(ul=null!==Gs?Gs.pendingLanes:0),e=ll;var t=4186112&~ul;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Ns)&&98===e?e=jt(12,ll):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ll),e}function ml(e,t,n){if(50<ol)throw ol=0,il=null,Error(i(185));if(null===(e=hl(e,t)))return null;$t(e,t,n),e===Os&&($s|=t,4===Bs&&vl(e,Ds));var r=qa();1===t?0!=(8&Ns)&&0==(48&Ns)?yl(e):(gl(e,n),0===Ns&&(Vs(),Va())):(0==(4&Ns)||98!==r&&99!==r||(null===al?al=new Set([e]):al.add(e)),gl(e,n)),Gs=e}function hl(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gl(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var l=31-qt(s),u=1<<l,c=o[l];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[l]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);s&=~u}if(r=Ft(e,e===Os?Ds:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=yl.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,yl.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bl.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bl(e){if(sl=-1,ul=ll=0,0!=(48&Ns))throw Error(i(327));var t=e.callbackNode;if(Dl()&&e.callbackNode!==t)return null;var n=Ft(e,e===Os?Ds:0);if(0===n)return null;var r=n,a=Ns;Ns|=16;var o=Cl();for(Os===e&&Ds===r||(Vs(),xl(e,r));;)try{Ll();break}catch(l){_l(e,l)}if(to(),Rs.current=o,Ns=a,null!==Is?r=0:(Os=null,Ds=0,r=Bs),0!=(zs&$s))xl(e,0);else if(0!==r){if(2===r&&(Ns|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Tl(e,n))),1===r)throw t=js,xl(e,0),vl(e,n),gl(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Nl(e);break;case 3:if(vl(e,n),(62914560&n)===n&&10<(r=Hs+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){pl(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Nl.bind(null,e),r);break}Nl(e);break;case 4:if(vl(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var s=31-qt(n);o=1<<s,(s=r[s])>a&&(a=s),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ls(n/1960))-n)){e.timeoutHandle=Gr(Nl.bind(null,e),n);break}Nl(e);break;default:throw Error(i(329))}}return gl(e,$a()),e.callbackNode===t?bl.bind(null,e):null}function vl(e,t){for(t&=~qs,t&=~$s,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function yl(e){if(0!=(48&Ns))throw Error(i(327));if(Dl(),e===Os&&0!=(e.expiredLanes&Ds)){var t=Ds,n=Tl(e,t);0!=(zs&$s)&&(n=Tl(e,t=Ft(e,t)))}else n=Tl(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Ns|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Tl(e,t))),1===n)throw n=js,xl(e,0),vl(e,t),gl(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Nl(e),gl(e,$a()),null}function wl(e,t){var n=Ns;Ns|=1;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Va())}}function kl(e,t){var n=Ns;Ns&=-2,Ns|=8;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Va())}}function Sl(e,t){ca(Fs,Ms),Ms|=t,zs|=t}function El(){Ms=Fs.current,ua(Fs)}function xl(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Is)for(n=Is.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(fa),ua(pa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:El()}n=n.return}Os=e,Is=Zl(e.current,null),Ds=Ms=zs=t,Bs=0,js=null,qs=$s=Us=0}function _l(e,t){for(;;){var n=Is;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Ps.current=null,null===n||null===n.return){Bs=1,js=t,Is=null;break}e:{var o=e,i=n.return,s=n,l=t;if(t=Ds,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var u=l;if(0==(2&s.mode)){var c=s.alternate;c?(s.updateQueue=c.updateQueue,s.memoizedState=c.memoizedState,s.lanes=c.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!=(1&Fo.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(u),p.updateQueue=b}else g.add(u);if(0==(2&p.mode)){if(p.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var v=uo(-1,1);v.tag=2,co(s,v)}s.lanes|=1;break e}l=void 0,s=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new ds,l=new Set,y.set(u,l)):void 0===(l=y.get(u))&&(l=new Set,y.set(u,l)),!l.has(s)){l.add(s);var w=Ul.bind(null,o,u,s);u.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);l=Error((V(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bs&&(Bs=2),l=us(l,s),p=i;do{switch(p.tag){case 3:o=l,p.flags|=4096,t&=-t,p.lanes|=t,po(p,ps(0,o,t));break e;case 1:o=l;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xs||!Xs.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,po(p,fs(p,o,t));break e}}p=p.return}while(null!==p)}Pl(n)}catch(E){t=E,Is===n&&null!==n&&(Is=n=n.return);continue}break}}function Cl(){var e=Rs.current;return Rs.current=Pi,null===e?Pi:e}function Tl(e,t){var n=Ns;Ns|=16;var r=Cl();for(Os===e&&Ds===t||xl(e,t);;)try{Al();break}catch(a){_l(e,a)}if(to(),Ns=n,Rs.current=r,null!==Is)throw Error(i(261));return Os=null,Ds=0,Bs}function Al(){for(;null!==Is;)Rl(Is)}function Ll(){for(;null!==Is&&!Ta();)Rl(Is)}function Rl(e){var t=Qs(e.alternate,e,Ms);e.memoizedProps=e.pendingProps,null===t?Pl(e):Is=t,Ps.current=null}function Pl(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ss(n,t,Ms)))return void(Is=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ms)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=ls(t)))return n.flags&=2047,void(Is=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Is=t);Is=t=e}while(null!==t);0===Bs&&(Bs=5)}function Nl(e){var t=qa();return Ha(99,Ol.bind(null,e,t)),null}function Ol(e,t){do{Dl()}while(null!==el);if(0!=(48&Ns))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var s=e.eventTimes,l=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,s[u]=-1,l[u]=-1,o&=~c}if(null!==al&&0==(24&r)&&al.has(e)&&al.delete(e),e===Os&&(Is=Os=null,Ds=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Ns,Ns|=32,Ps.current=null,zr=Qt,gr(s=hr())){if("selectionStart"in s)l={start:s.selectionStart,end:s.selectionEnd};else e:if(l=(l=s.ownerDocument)&&l.defaultView||window,(c=l.getSelection&&l.getSelection())&&0!==c.rangeCount){l=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{l.nodeType,u.nodeType}catch(C){l=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=s,b=null;t:for(;;){for(var v;g!==l||0!==o&&3!==g.nodeType||(p=d+o),g!==u||0!==c&&3!==g.nodeType||(f=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===s)break t;if(b===l&&++m===o&&(p=d),b===u&&++h===c&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}l=-1===p||-1===f?null:{start:p,end:f}}else l=null;l=l||{start:0,end:0}}else l=null;Ur={focusedElem:s,selectionRange:l},Qt=!1,cl=null,dl=!1,Ws=r;do{try{Il()}catch(C){if(null===Ws)throw Error(i(330));zl(Ws,C),Ws=Ws.nextEffect}}while(null!==Ws);cl=null,Ws=r;do{try{for(s=e;null!==Ws;){var y=Ws.flags;if(16&y&&be(Ws.stateNode,""),128&y){var w=Ws.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Ss(Ws),Ws.flags&=-3;break;case 6:Ss(Ws),Ws.flags&=-3,Cs(Ws.alternate,Ws);break;case 1024:Ws.flags&=-1025;break;case 1028:Ws.flags&=-1025,Cs(Ws.alternate,Ws);break;case 4:Cs(Ws.alternate,Ws);break;case 8:_s(s,l=Ws);var S=l.alternate;ws(l),null!==S&&ws(S)}Ws=Ws.nextEffect}}catch(C){if(null===Ws)throw Error(i(330));zl(Ws,C),Ws=Ws.nextEffect}}while(null!==Ws);if(k=Ur,w=hr(),y=k.focusedElem,s=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==s&&gr(y)&&(w=s.start,void 0===(k=s.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),l=y.textContent.length,S=Math.min(s.start,l),s=void 0===s.end?S:Math.min(s.end,l),!k.extend&&S>s&&(l=s,s=S,S=l),l=fr(y,S),o=fr(y,s),l&&o&&(1!==k.rangeCount||k.anchorNode!==l.node||k.anchorOffset!==l.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(l.node,l.offset),k.removeAllRanges(),S>s?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Ws=r;do{try{for(y=e;null!==Ws;){var E=Ws.flags;if(36&E&&bs(y,Ws.alternate,Ws),128&E){w=void 0;var x=Ws.ref;if(null!==x){var _=Ws.stateNode;Ws.tag,w=_,"function"==typeof x?x(w):x.current=w}}Ws=Ws.nextEffect}}catch(C){if(null===Ws)throw Error(i(330));zl(Ws,C),Ws=Ws.nextEffect}}while(null!==Ws);Ws=null,Fa(),Ns=a}else e.current=n;if(Js)Js=!1,el=e,tl=t;else for(Ws=r;null!==Ws;)t=Ws.nextEffect,Ws.nextEffect=null,8&Ws.flags&&((E=Ws).sibling=null,E.stateNode=null),Ws=t;if(0===(r=e.pendingLanes)&&(Xs=null),1===r?e===il?ol++:(ol=0,il=e):ol=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gl(e,$a()),Ks)throw Ks=!1,e=Ys,Ys=null,e;return 0!=(8&Ns)||Va(),null}function Il(){for(;null!==Ws;){var e=Ws.alternate;dl||null===cl||(0!=(8&Ws.flags)?Je(Ws,cl)&&(dl=!0):13===Ws.tag&&As(e,Ws)&&Je(Ws,cl)&&(dl=!0));var t=Ws.flags;0!=(256&t)&&gs(e,Ws),0==(512&t)||Js||(Js=!0,Za(97,(function(){return Dl(),null}))),Ws=Ws.nextEffect}}function Dl(){if(90!==tl){var e=97<tl?97:tl;return tl=90,Ha(e,Bl)}return!1}function Ml(e,t){nl.push(t,e),Js||(Js=!0,Za(97,(function(){return Dl(),null})))}function Fl(e,t){rl.push(t,e),Js||(Js=!0,Za(97,(function(){return Dl(),null})))}function Bl(){if(null===el)return!1;var e=el;if(el=null,0!=(48&Ns))throw Error(i(331));var t=Ns;Ns|=32;var n=rl;rl=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],s=a.destroy;if(a.destroy=void 0,"function"==typeof s)try{s()}catch(u){if(null===o)throw Error(i(330));zl(o,u)}}for(n=nl,nl=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var l=a.create;a.destroy=l()}catch(u){if(null===o)throw Error(i(330));zl(o,u)}}for(l=e.current.firstEffect;null!==l;)e=l.nextEffect,l.nextEffect=null,8&l.flags&&(l.sibling=null,l.stateNode=null),l=e;return Ns=t,Va(),!0}function jl(e,t,n){co(e,t=ps(0,t=us(n,t),1)),t=pl(),null!==(e=hl(e,1))&&($t(e,1,t),gl(e,t))}function zl(e,t){if(3===e.tag)jl(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){jl(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xs||!Xs.has(r))){var a=fs(n,e=us(t,e),1);if(co(n,a),a=pl(),null!==(n=hl(n,1)))$t(n,1,a),gl(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xs||!Xs.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Ul(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=pl(),e.pingedLanes|=e.suspendedLanes&n,Os===e&&(Ds&n)===n&&(4===Bs||3===Bs&&(62914560&Ds)===Ds&&500>$a()-Hs?xl(e,0):qs|=n),gl(e,t)}function $l(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ll&&(ll=zs),0===(t=zt(62914560&~ll))&&(t=4194304))),n=pl(),null!==(e=hl(e,t))&&($t(e,t,n),gl(e,n))}function ql(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gl(e,t,n,r){return new ql(e,t,n,r)}function Hl(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zl(e,t){var n=e.alternate;return null===n?((n=Gl(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vl(e,t,n,r,a,o){var s=2;if(r=e,"function"==typeof e)Hl(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case x:return Ql(n.children,a,o,t);case M:s=8,a|=16;break;case _:s=8,a|=1;break;case C:return(e=Gl(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gl(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gl(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Wl(n,a,o,t);case B:return(e=Gl(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case A:s=9;break e;case L:s=11;break e;case N:s=14;break e;case O:s=16,r=null;break e;case I:s=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gl(s,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Ql(e,t,n,r){return(e=Gl(7,e,r,t)).lanes=n,e}function Wl(e,t,n,r){return(e=Gl(23,e,r,t)).elementType=F,e.lanes=n,e}function Kl(e,t,n){return(e=Gl(6,e,null,t)).lanes=n,e}function Yl(e,t,n){return(t=Gl(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xl(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Jl(e,t,n,r){var a=t.current,o=pl(),s=fl(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(ga(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,l);break e}}n=l}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ml(a,s,o),s}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xl(e,t,null!=n&&!0===n.hydrate),t=Gl(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,so(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}Jl(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}kl((function(){Jl(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Qs=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=os(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return as(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return os(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,pa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,so(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&go(t,r,s,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hl(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,lo(e,t),fo(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=os(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,s=a.children,qr(r,a)?s=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,s,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,s=t.memoizedProps,o=a.value;var l=t.type._context;if(ca(Ya,l._currentValue),l._currentValue=o,null!==s)if(l=s.value,0===(o=ur(l,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(l,o):1073741823))){if(s.children===a.children&&!fa.current){t=os(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var u=l.dependencies;if(null!==u){s=l.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===l.tag&&((c=uo(-1,n&-n)).tag=2,co(l,c)),l.lanes|=n,null!==(c=l.alternate)&&(c.lanes|=n),ro(l.return,n),u.lanes|=n;break}c=c.next}}else s=10===l.tag&&l.type===t.type?null:l.child;if(null!==s)s.return=l;else for(s=l;null!==s;){if(s===t){s=null;break}if(null!==(l=s.sibling)){l.return=s.return,s=l;break}s=s.return}l=s}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return as(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Jl(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Jl(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ml(e,4,pl()),nu(e,4))},tt=function(e){13===e.tag&&(ml(e,67108864,pl()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=pl(),n=fl(e);ml(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=wl,Oe=function(e,t,n,r,a){var o=Ns;Ns|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Ns=o)&&(Vs(),Va())}},Ie=function(){0==(49&Ns)&&(function(){if(null!==al){var e=al;al=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gl(e,$a())}))}Va()}(),Dl())},De=function(e,t){var n=Ns;Ns|=2;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Va())}};var su={Events:[na,ra,aa,Re,Pe,Dl,{current:!1}]},lu={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:lu.bundleType,version:lu.version,rendererPackageName:lu.rendererPackageName,rendererConfig:lu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:lu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,u,c;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!o(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!i.has(l.value[0]))return!1;for(c=e.entries();!(l=c.next()).done;)if(!o(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(l=c.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,u[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==u[l]&&"__v"!==u[l]&&"__o"!==u[l]||!e.$$typeof)&&!o(e[u[l]],i[u[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),s=n.n(i),l=n(1143),u=n.n(l),c=n(6774),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var s=o[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var s=o[i],l=p({},r[s],a[s]);r[s]=l}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,p,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:l,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],u=t[l]||"";n.getAttribute(l)!==u&&n.setAttribute(l,u),-1===a.indexOf(l)&&a.push(l);var c=o.indexOf(l);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,l),styleTags:Z(g.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),s=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,o),l){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case g:case h:case l:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(7294),l=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),o(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:l.func.isRequired}),o(g,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),s=n(7462),l=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,l.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,s.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=f!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,l.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),l=r?n.createHref(r):"",h=(0,s.Z)({},v,{href:l,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(c||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=p(d(x,n),n),l=i.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,s.Z)({},P,f));var N=(0,s.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),s=n(9318),l=n(8776),u=n(7462),c=n(4779),d=n.n(c),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},a.getValue=function(){return this.context[s]?this.context[s].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[s]=i().object,o),{Provider:l,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,s=void 0!==i&&i,l=n.sensitive,u=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:s,sensitive:u}),a=r.regexp,i=r.keys,l=a.exec(e);if(!l)return null;var c=l[0],p=l.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,c=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(v.Provider,{value:o},o.match?s?"function"==typeof s?s(o):s:c?a.createElement(c,o):d?d(o):null:"function"==typeof s?s(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function A(e){return function(){(0,l.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,s=60110,l=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),s=d("react.context"),l=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var l=arguments.length-2;if(1===l)o.children=n;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===o[r]&&(o[r]=l[r]);return{$$typeof:a,type:e,key:i,ref:s,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case a:case o:l=!0}}if(l)return i=i(l=e),e=""===r?"."+C(l,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(s=e[u],u);l+=T(s,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(s=e.next()).done;)l+=T(s=s.value,t,n,c=r+C(s,u++),i);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return l}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,s=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,l=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:s,props:o,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},a=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],s=o+1,l=e[s];if(void 0!==i&&0>_(i,n))void 0!==l&&0>_(l,i)?(e[r]=l,e[s]=n,r=s):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==l&&0>_(l,n)))break e;e[r]=l,e[s]=n,r=s}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var s=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?L.callback=s:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var l=!0;else{var u=E(T);null!==u&&r(D,u.startTime-n),l=!1}return l}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var s=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?s+i:s:i=s,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:l=i+l,sortIndex:-1},i>s?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-s))):(e.sortIndex=l,S(C,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<o.length;l++){var u=o[l];if(!s(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,s=r.useLayoutEffect,l=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return s((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),l(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/es/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"Cerrar","theme.BackToTopButton.buttonAriaLabel":"Volver al principio","theme.CodeBlock.copied":"Copiado","theme.CodeBlock.copy":"Copiar","theme.CodeBlock.copyButtonAriaLabel":"Copiar c\xf3digo al portapapeles","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"Toggle the collapsible sidebar category \'{label}\'","theme.ErrorPageContent.title":"This page crashed.","theme.ErrorPageContent.tryAgain":"Try again","theme.NavBar.navAriaLabel":"Main","theme.NotFound.p1":"No pudimos encontrar lo que buscaba.","theme.NotFound.p2":"Comun\xedquese con el due\xf1o del sitio que lo vincul\xf3 a la URL original y h\xe1gale saber que su v\xednculo est\xe1 roto.","theme.NotFound.title":"P\xe1gina No Encontrada","theme.TOCCollapsible.toggleButtonLabel":"En esta p\xe1gina","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.blog.archive.description":"Archivo","theme.blog.archive.title":"Archivo","theme.blog.paginator.navAriaLabel":"Navegaci\xf3n por la p\xe1gina de la lista de blogs ","theme.blog.paginator.newerEntries":"Entradas m\xe1s recientes","theme.blog.paginator.olderEntries":"Entradas m\xe1s antiguas","theme.blog.post.paginator.navAriaLabel":"Barra de paginaci\xf3n de publicaciones del blog","theme.blog.post.paginator.newerPost":"Publicaci\xf3n m\xe1s reciente","theme.blog.post.paginator.olderPost":"Publicaci\xf3n m\xe1s antigua","theme.blog.post.plurals":"Una publicaci\xf3n|{count} publicaciones","theme.blog.post.readMore":"Leer M\xe1s","theme.blog.post.readMoreLabel":"Read more about {title}","theme.blog.post.readingTime.plurals":"Lectura de un minuto|{readingTime} min de lectura","theme.blog.sidebar.navAriaLabel":"Navegaci\xf3n de publicaciones recientes","theme.blog.tagTitle":"{nPosts} etiquetados con \\"{tagName}\\"","theme.colorToggle.ariaLabel":"Switch between dark and light mode (currently {mode})","theme.colorToggle.ariaLabel.mode.dark":"dark mode","theme.colorToggle.ariaLabel.mode.light":"light mode","theme.common.editThisPage":"Editar esta p\xe1gina","theme.common.headingLinkTitle":"Enlace directo al {heading}","theme.common.skipToMainContent":"Saltar al contenido principal","theme.docs.DocCard.categoryDescription":"{count} items","theme.docs.breadcrumbs.home":"Home page","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"P\xe1gina del documento","theme.docs.paginator.next":"Siguiente","theme.docs.paginator.previous":"Anterior","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.docs.sidebar.collapseButtonAriaLabel":"Colapsar barra lateral","theme.docs.sidebar.collapseButtonTitle":"Colapsar barra lateral","theme.docs.sidebar.expandButtonAriaLabel":"Expandir barra lateral","theme.docs.sidebar.expandButtonTitle":"Expandir barra lateral","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.docs.tagDocListPageTitle":"{nDocsTagged} con \\"{tagName}\\"","theme.docs.tagDocListPageTitle.nDocsTagged":"Un documento etiquetado|{count} documentos etiquetados","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\xfaltima versi\xf3n","theme.docs.versions.latestVersionSuggestionLabel":"Para la documentaci\xf3n actualizada, vea {latestVersionLink} ({versionLabel}).","theme.docs.versions.unmaintainedVersionLabel":"Esta es documentaci\xf3n para {siteTitle} {versionLabel}, que ya no se mantiene activamente.","theme.docs.versions.unreleasedVersionLabel":"Esta es documentaci\xf3n sin liberar para {siteTitle} {versionLabel} versi\xf3n.","theme.lastUpdated.atDate":" en {date}","theme.lastUpdated.byUser":" por {user}","theme.lastUpdated.lastUpdatedAtBy":"\xdaltima actualizaci\xf3n{atDate}{byUser}","theme.navbar.mobileLanguageDropdown.label":"Languages","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Volver al men\xfa principal","theme.navbar.mobileVersionsDropdown.label":"Versiones","theme.tags.tagsListLabel":"Etiquetas:","theme.tags.tagsPageLink":"Ver Todas las Etiquetas","theme.tags.tagsPageTitle":"Etiquetas","theme.SearchBar.label":"Buscar","theme.SearchBar.seeAll":"See all {count} results","theme.SearchModal.errorScreen.helpText":"You might want to check your network connection.","theme.SearchModal.errorScreen.titleText":"Unable to fetch results","theme.SearchModal.footer.closeKeyAriaLabel":"Escape key","theme.SearchModal.footer.closeText":"to close","theme.SearchModal.footer.navigateDownKeyAriaLabel":"Arrow down","theme.SearchModal.footer.navigateText":"to navigate","theme.SearchModal.footer.navigateUpKeyAriaLabel":"Arrow up","theme.SearchModal.footer.searchByText":"Search by","theme.SearchModal.footer.selectKeyAriaLabel":"Enter key","theme.SearchModal.footer.selectText":"to select","theme.SearchModal.noResultsScreen.noResultsText":"No results for","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"Let us know.","theme.SearchModal.noResultsScreen.reportMissingResultsText":"Believe this query should return results?","theme.SearchModal.noResultsScreen.suggestedQueryText":"Try searching for","theme.SearchModal.placeholder":"Search docs","theme.SearchModal.searchBox.cancelButtonText":"Cancel","theme.SearchModal.searchBox.resetButtonTitle":"Clear the query","theme.SearchModal.startScreen.favoriteSearchesTitle":"Favorite","theme.SearchModal.startScreen.noRecentSearchesText":"No recent searches","theme.SearchModal.startScreen.recentSearchesTitle":"Recent","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"Remove this search from favorites","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"Remove this search from history","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"Save this search","theme.SearchPage.algoliaLabel":"B\xfasqueda por Algolia","theme.SearchPage.documentsFound.plurals":"Un documento encontrado|{count} documentos encontrados","theme.SearchPage.emptyResultsTitle":"B\xfasqueda en la documentaci\xf3n","theme.SearchPage.existingResultsTitle":"Resultados de b\xfasqueda para \\"{query}\\"","theme.SearchPage.fetchingNewResults":"Obteniendo nuevos resultados...","theme.SearchPage.inputLabel":"Buscar","theme.SearchPage.inputPlaceholder":"Escribe tu b\xfasqueda aqu\xed","theme.SearchPage.noResultsText":"No se encontraron resultados","theme.IdealImageMessage.404error":"404. Image not found","theme.IdealImageMessage.error":"Error. Click to reload","theme.IdealImageMessage.load":"Click to load{sizeMessage}","theme.IdealImageMessage.loading":"Loading...","theme.IdealImageMessage.offline":"Your browser is offline. Image not loaded"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/es/search/-500":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/es/-43c":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/es/-a8c":{"__comp":"17896441","content":"6e7e0dfd"},"/es/category/contribute/-260":{"__comp":"14eb3368","categoryGeneratedIndex":"9ff5325d"},"/es/category/faq/-787":{"__comp":"14eb3368","categoryGeneratedIndex":"dc9fd2e7"},"/es/category/getting-started/-f24":{"__comp":"14eb3368","categoryGeneratedIndex":"4d9f14c4"},"/es/category/guides/-36b":{"__comp":"14eb3368","categoryGeneratedIndex":"96fb4374"},"/es/category/legacy-documentation/-650":{"__comp":"14eb3368","categoryGeneratedIndex":"49f133ab"},"/es/category/manual/-ab7":{"__comp":"14eb3368","categoryGeneratedIndex":"18d17e09"},"/es/category/release-notes/-e28":{"__comp":"14eb3368","categoryGeneratedIndex":"d5211f12"},"/es/category/tutorial---basics/-07f":{"__comp":"14eb3368","categoryGeneratedIndex":"322cff69"},"/es/category/tutorial---extras/-0e2":{"__comp":"14eb3368","categoryGeneratedIndex":"1e1d6f20"},"/es/category/unraid-connect/-33e":{"__comp":"14eb3368","categoryGeneratedIndex":"24983e98"},"/es/category/unraid-os/-5a6":{"__comp":"14eb3368","categoryGeneratedIndex":"d53ad56c"},"/es/category/zfs/-55d":{"__comp":"14eb3368","categoryGeneratedIndex":"235babb1"},"/es/connect/about/-8d1":{"__comp":"17896441","content":"bd5544b1"},"/es/connect/help/-441":{"__comp":"17896441","content":"54fe4512"},"/es/connect/remote-access/-4e7":{"__comp":"17896441","content":"ba2ffba3"},"/es/contribute-to-docs/intro/-80f":{"__comp":"17896441","content":"9c8e01a5"},"/es/contribute-to-docs/tutorial-basics/congratulations/-1d9":{"__comp":"17896441","content":"06cd2fd6"},"/es/contribute-to-docs/tutorial-basics/create-a-blog-post/-71d":{"__comp":"17896441","content":"e62fd64a"},"/es/contribute-to-docs/tutorial-basics/create-a-document/-15c":{"__comp":"17896441","content":"73c1707a"},"/es/contribute-to-docs/tutorial-basics/create-a-page/-ea9":{"__comp":"17896441","content":"6937eda1"},"/es/contribute-to-docs/tutorial-basics/markdown-features/-15d":{"__comp":"17896441","content":"fd47d4b7"},"/es/contribute-to-docs/tutorial-extras/manage-docs-versions/-5ff":{"__comp":"17896441","content":"0993abe5"},"/es/contribute-to-docs/tutorial-extras/translate-your-site/-8f0":{"__comp":"17896441","content":"f568d666"},"/es/legacy/Articles/dual-boot-unraid-and-windows/-166":{"__comp":"17896441","content":"c5b893f4"},"/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/-9b4":{"__comp":"17896441","content":"69f90a2c"},"/es/legacy/Articles/upgrading-to-unraid-6/-07b":{"__comp":"17896441","content":"39304afb"},"/es/legacy/FAQ/cache-disk/-552":{"__comp":"17896441","content":"88a1b883"},"/es/legacy/FAQ/check-disk-filesystems/-753":{"__comp":"17896441","content":"5034631f"},"/es/legacy/FAQ/check-harddrive-speed/-1a5":{"__comp":"17896441","content":"039cd775"},"/es/legacy/FAQ/console/-9ea":{"__comp":"17896441","content":"2dd62328"},"/es/legacy/FAQ/parity-swap-procedure/-214":{"__comp":"17896441","content":"f2577e9f"},"/es/legacy/FAQ/Parity/-f3d":{"__comp":"17896441","content":"54f4a7b0"},"/es/legacy/FAQ/replacing-a-data-drive/-a2e":{"__comp":"17896441","content":"74287a25"},"/es/legacy/FAQ/replacing-multiple-data-drives/-c30":{"__comp":"17896441","content":"d441ea6d"},"/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-90b":{"__comp":"17896441","content":"6618ba01"},"/es/legacy/FAQ/setup-sleep-and-wake-on-lan/-ef6":{"__comp":"17896441","content":"036bad42"},"/es/legacy/FAQ/shrink-array/-19a":{"__comp":"17896441","content":"9d093beb"},"/es/legacy/FAQ/terminal-access/-827":{"__comp":"17896441","content":"e624f8a6"},"/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-f51":{"__comp":"17896441","content":"67a4e8b6"},"/es/legacy/FAQ/transferring-files-within-the-unraid-server/-723":{"__comp":"17896441","content":"38c3fa26"},"/es/legacy/FAQ/understanding-smart-reports/-0fc":{"__comp":"17896441","content":"dec1eefe"},"/es/legacy/FAQ/usb-flash-drive-preparation/-c36":{"__comp":"17896441","content":"79722de7"},"/es/unraid-os/faq/licensing-faq/-edb":{"__comp":"17896441","content":"26113f5d"},"/es/unraid-os/faq/os-faq/-b1f":{"__comp":"17896441","content":"81b28c9f"},"/es/unraid-os/faq/redeem-license-activation-code/-0dd":{"__comp":"17896441","content":"1161d08d"},"/es/unraid-os/faq/unraid-account/-0b1":{"__comp":"17896441","content":"5565d3f9"},"/es/unraid-os/guides/configuring-time-machine/-0e3":{"__comp":"17896441","content":"f9ab548b"},"/es/unraid-os/guides/wol-setup-for-unraid/-564":{"__comp":"17896441","content":"0a18b2d8"},"/es/unraid-os/manual/additional-settings/-5e8":{"__comp":"17896441","content":"1942e1e1"},"/es/unraid-os/manual/applications/-949":{"__comp":"17896441","content":"7b378cd1"},"/es/unraid-os/manual/changing-the-flash-device/-160":{"__comp":"17896441","content":"0ca4c500"},"/es/unraid-os/manual/docker-management/-35e":{"__comp":"17896441","content":"4caccc33"},"/es/unraid-os/manual/getting-started/-9e3":{"__comp":"17896441","content":"b13723e0"},"/es/unraid-os/manual/getting-started/manual-install-method/-2c5":{"__comp":"17896441","content":"25ec094f"},"/es/unraid-os/manual/multi-language/-813":{"__comp":"17896441","content":"6b42df2b"},"/es/unraid-os/manual/security/-61d":{"__comp":"17896441","content":"277cf690"},"/es/unraid-os/manual/security/data-encryption/-808":{"__comp":"17896441","content":"fee3ac30"},"/es/unraid-os/manual/security/flash-drive/-3d6":{"__comp":"17896441","content":"10869db1"},"/es/unraid-os/manual/security/good-practices/-99a":{"__comp":"17896441","content":"313b9001"},"/es/unraid-os/manual/security/secure-webgui-ssl/-4d9":{"__comp":"17896441","content":"0a1bdeaa"},"/es/unraid-os/manual/security/vpn/-cb6":{"__comp":"17896441","content":"1c36a847"},"/es/unraid-os/manual/shares/-e57":{"__comp":"17896441","content":"aed38285"},"/es/unraid-os/manual/shares/create-a-share/-8b9":{"__comp":"17896441","content":"8a89048a"},"/es/unraid-os/manual/shares/delete-a-share/-74c":{"__comp":"17896441","content":"9d23aec8"},"/es/unraid-os/manual/shares/disk-shares/-cfb":{"__comp":"17896441","content":"5f60a020"},"/es/unraid-os/manual/shares/network-access/-8f0":{"__comp":"17896441","content":"f7b0b541"},"/es/unraid-os/manual/shares/user-shares/-c54":{"__comp":"17896441","content":"8944547a"},"/es/unraid-os/manual/storage-management/-a13":{"__comp":"17896441","content":"55054ac6"},"/es/unraid-os/manual/tools/-07d":{"__comp":"17896441","content":"7c081f1b"},"/es/unraid-os/manual/troubleshooting/-5d1":{"__comp":"17896441","content":"104dd0b4"},"/es/unraid-os/manual/upgrade-instructions/-078":{"__comp":"17896441","content":"7436a388"},"/es/unraid-os/manual/users/-3da":{"__comp":"17896441","content":"40147886"},"/es/unraid-os/manual/vm-management/-8f2":{"__comp":"17896441","content":"3d3d1f9d"},"/es/unraid-os/manual/vm-support/-aaf":{"__comp":"17896441","content":"88941ca4"},"/es/unraid-os/manual/what-is-unraid/-17f":{"__comp":"17896441","content":"f0844d9f"},"/es/unraid-os/manual/zfs/placeholder/-9f4":{"__comp":"17896441","content":"5df36282"},"/es/unraid-os/release-notes/6.10.0/-949":{"__comp":"17896441","content":"798531cc"},"/es/unraid-os/release-notes/6.10.1/-b71":{"__comp":"17896441","content":"b3a9d7ab"},"/es/unraid-os/release-notes/6.10.2/-5db":{"__comp":"17896441","content":"caa9baff"},"/es/unraid-os/release-notes/6.10.3/-165":{"__comp":"17896441","content":"54219b20"},"/es/unraid-os/release-notes/6.11.0/-3e7":{"__comp":"17896441","content":"096fb135"},"/es/unraid-os/release-notes/6.11.1/-cf6":{"__comp":"17896441","content":"6b97f0f9"},"/es/unraid-os/release-notes/6.11.2/-b21":{"__comp":"17896441","content":"a0c90937"},"/es/unraid-os/release-notes/6.11.3/-3eb":{"__comp":"17896441","content":"d31ea43a"},"/es/unraid-os/release-notes/6.11.4/-91d":{"__comp":"17896441","content":"c8335b6e"},"/es/unraid-os/release-notes/6.11.5/-688":{"__comp":"17896441","content":"ae93aaeb"},"/es/unraid-os/release-notes/6.12.0/-466":{"__comp":"17896441","content":"e1256ee6"},"/es/unraid-os/release-notes/6.12.1/-f7e":{"__comp":"17896441","content":"98a2ad9f"},"/es/unraid-os/release-notes/6.12.2/-e1d":{"__comp":"17896441","content":"0ba4e87b"},"/es/unraid-os/release-notes/6.12.3/-74e":{"__comp":"17896441","content":"7a2d53ea"},"/es/unraid-os/release-notes/6.9.0/-2f0":{"__comp":"17896441","content":"06988216"},"/es/unraid-os/release-notes/6.9.1/-ac8":{"__comp":"17896441","content":"49332cbb"},"/es/unraid-os/release-notes/6.9.2/-6c7":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/es/assets/js/main.284febb9.js.LICENSE.txt b/es/assets/js/main.62fd37dd.js.LICENSE.txt similarity index 100% rename from es/assets/js/main.284febb9.js.LICENSE.txt rename to es/assets/js/main.62fd37dd.js.LICENSE.txt diff --git a/es/assets/js/runtime~main.2fc7ff6e.js b/es/assets/js/runtime~main.2fc7ff6e.js deleted file mode 100644 index 69497f25e..000000000 --- a/es/assets/js/runtime~main.2fc7ff6e.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,f,a,b,d,c={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=c,r.c=t,e=[],r.O=(f,a,b,d)=>{if(!a){var c=1/0;for(i=0;i<e.length;i++){a=e[i][0],b=e[i][1],d=e[i][2];for(var t=!0,o=0;o<a.length;o++)(!1&d||c>=d)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,d<c&&(c=d));if(t){e.splice(i--,1);var n=b();void 0!==n&&(f=n)}}return f}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[a,b,d]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var c={};f=f||[null,a({}),a([]),a(a)];for(var t=2&b&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>c[f]=()=>e[f]));return c.default=()=>e,r.d(d,c),d},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({42:"96fb4374",53:"935f2afb",79:"90126b70",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",557:"235babb1",563:"6618ba01",808:"1e1d6f20",879:"d441ea6d",909:"b3a9d7ab",1036:"88a1b883",1220:"4d9f14c4",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1420:"322cff69",1698:"49332cbb",1791:"5df36282",1919:"d5211f12",2099:"24983e98",2105:"dc9fd2e7",2121:"6e7e0dfd",2269:"54fe4512",2697:"f0844d9f",2926:"54f4a7b0",3203:"67a4e8b6",3659:"6e6b2999",3923:"6937eda1",3967:"4caccc33",4077:"38c3fa26",4118:"18d17e09",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5632:"1161d08d",5832:"caa9baff",5833:"7a2d53ea",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6424:"49f133ab",6461:"3d3d1f9d",6596:"dec1eefe",6617:"81b28c9f",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"a78d85c7",7415:"ae93aaeb",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7748:"798531cc",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8647:"9ff5325d",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9146:"25ec094f",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9394:"d53ad56c",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368"}[e]||e)+"."+{42:"52f974e5",53:"d9784532",79:"9f6b92ae",322:"af1bd862",335:"11f59f65",347:"6ae0db3d",496:"15cf4e12",557:"f3d305ef",563:"87b0b52a",808:"3cc6d6a5",879:"10b9b84b",909:"1ac98996",1036:"0133137f",1220:"f6cc893c",1317:"55c71b28",1367:"af7c4dc7",1377:"d5b0d664",1420:"9466be1a",1698:"722a856d",1791:"fafd3837",1919:"b72249c1",2099:"3d77385e",2105:"152bcd7d",2121:"7a02a7e7",2153:"6676c42e",2269:"f915ddb2",2697:"599da76c",2926:"eba8a17a",3203:"08991d9d",3659:"cb978484",3923:"1cc45075",3967:"7c1a0ec6",4077:"37449010",4118:"aacc5121",4149:"33c02b85",4248:"f946246d",4262:"dec56907",4321:"580a5eca",4399:"b64dc407",4472:"fa710dac",4567:"f648e1ab",4579:"2f97e452",4618:"c325f5ef",4622:"0da03690",4688:"7ef8e09e",4710:"e98af95d",4813:"b2fffa94",5069:"bc01a910",5078:"a790a7d0",5236:"f5b8122c",5275:"9c496532",5632:"d801a83c",5832:"97d0193f",5833:"77e98bca",6279:"14ba028a",6299:"87d24830",6305:"53b228d6",6385:"9bf402a8",6424:"78b9ec3a",6461:"0bff78aa",6596:"b1f4b985",6617:"5ca9e0f7",6945:"e6ca558a",7044:"5ce005ce",7054:"97f06086",7124:"da4dc09a",7317:"df765d78",7328:"dfd666f5",7415:"6be95c78",7537:"53671d7d",7570:"516806a4",7603:"19bbcf8d",7748:"2c20cdd9",7918:"5d44835b",7920:"2a186628",8078:"ddb2a7d3",8145:"f0364e43",8298:"9be9b751",8647:"9f8f06d8",8868:"7c518e21",8882:"f4f521b2",8894:"d2f6f776",8925:"b7586db0",9114:"bedf8d3d",9146:"9e09d3eb",9185:"aad754d7",9334:"dadfb5a6",9347:"2e6ba7b6",9394:"a31b1b36",9401:"18317148",9514:"010a8141",9554:"a0fc7dd1",9724:"62312122",9725:"786e2fb3",9817:"3f60616a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),b={},d="docs:",r.l=(e,f,a,c)=>{if(b[e])b[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+a){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+a),t.src=e),b[e]=[f];var l=(f,a)=>{t.onerror=t.onload=null,clearTimeout(s);var d=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/es/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","96fb4374":"42","935f2afb":"53","90126b70":"79","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","235babb1":"557","6618ba01":"563","1e1d6f20":"808",d441ea6d:"879",b3a9d7ab:"909","88a1b883":"1036","4d9f14c4":"1220","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","322cff69":"1420","49332cbb":"1698","5df36282":"1791",d5211f12:"1919","24983e98":"2099",dc9fd2e7:"2105","6e7e0dfd":"2121","54fe4512":"2269",f0844d9f:"2697","54f4a7b0":"2926","67a4e8b6":"3203","6e6b2999":"3659","6937eda1":"3923","4caccc33":"3967","38c3fa26":"4077","18d17e09":"4118",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","1161d08d":"5632",caa9baff:"5832","7a2d53ea":"5833","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","49f133ab":"6424","3d3d1f9d":"6461",dec1eefe:"6596","81b28c9f":"6617","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",a78d85c7:"7328",ae93aaeb:"7415","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","798531cc":"7748","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298","9ff5325d":"8647","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","25ec094f":"9146","247783bb":"9334",e624f8a6:"9347",d53ad56c:"9394","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var b=r.o(e,f)?e[f]:void 0;if(0!==b)if(b)a.push(b[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var d=new Promise(((a,d)=>b=e[f]=[a,d]));a.push(b[2]=d);var c=r.p+r.u(f),t=new Error;r.l(c,(a=>{if(r.o(e,f)&&(0!==(b=e[f])&&(e[f]=void 0),b)){var d=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+d+": "+c+")",t.name="ChunkLoadError",t.type=d,t.request=c,b[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var b,d,c=a[0],t=a[1],o=a[2],n=0;if(c.some((f=>0!==e[f]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(f&&f(a);n<c.length;n++)d=c[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},a=self.webpackChunkdocs=self.webpackChunkdocs||[];a.forEach(f.bind(null,0)),a.push=f.bind(null,a.push.bind(a))})()})(); \ No newline at end of file diff --git a/es/assets/js/runtime~main.d7bdb25b.js b/es/assets/js/runtime~main.d7bdb25b.js new file mode 100644 index 000000000..fb7e53c90 --- /dev/null +++ b/es/assets/js/runtime~main.d7bdb25b.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,d,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=c,r.c=t,e=[],r.O=(a,f,d,b)=>{if(!f){var c=1/0;for(i=0;i<e.length;i++){f=e[i][0],d=e[i][1],b=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&b||c>=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b<c&&(c=b));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,d,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({42:"96fb4374",53:"935f2afb",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",557:"235babb1",559:"313b9001",563:"6618ba01",808:"1e1d6f20",879:"d441ea6d",909:"b3a9d7ab",967:"0a1bdeaa",1036:"88a1b883",1220:"4d9f14c4",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1420:"322cff69",1698:"49332cbb",1754:"9d23aec8",1770:"8a89048a",1791:"5df36282",1919:"d5211f12",1932:"aed38285",2099:"24983e98",2105:"dc9fd2e7",2121:"6e7e0dfd",2269:"54fe4512",2454:"f7b0b541",2697:"f0844d9f",2926:"54f4a7b0",3203:"67a4e8b6",3563:"10869db1",3659:"6e6b2999",3923:"6937eda1",3967:"4caccc33",4077:"38c3fa26",4118:"18d17e09",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",4863:"5f60a020",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5289:"1c36a847",5450:"8944547a",5632:"1161d08d",5832:"caa9baff",5833:"7a2d53ea",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6424:"49f133ab",6461:"3d3d1f9d",6596:"dec1eefe",6617:"81b28c9f",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"fee3ac30",7415:"ae93aaeb",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7748:"798531cc",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8647:"9ff5325d",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9146:"25ec094f",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9394:"d53ad56c",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368",9821:"277cf690"}[e]||e)+"."+{42:"52f974e5",53:"b09d5f8b",322:"af1bd862",335:"11f59f65",347:"6ae0db3d",496:"15cf4e12",557:"f3d305ef",559:"b77b1e8e",563:"87b0b52a",808:"3cc6d6a5",879:"10b9b84b",909:"1ac98996",967:"b15b63b5",1036:"0133137f",1220:"f6cc893c",1317:"1c6bd3dd",1367:"a6c7e676",1377:"d5b0d664",1420:"9466be1a",1698:"722a856d",1754:"1333bc54",1770:"2bc2fffa",1791:"fafd3837",1919:"b72249c1",1932:"94b00935",2099:"3d77385e",2105:"152bcd7d",2121:"7a02a7e7",2153:"6676c42e",2269:"f915ddb2",2454:"7dcf9237",2697:"1f01c257",2926:"eba8a17a",3203:"08991d9d",3563:"80b06e87",3659:"cb978484",3923:"1cc45075",3967:"ce493ad3",4077:"37449010",4118:"6ec93d3c",4149:"33c02b85",4248:"f946246d",4262:"9393eea1",4321:"5183065a",4399:"b64dc407",4472:"fa710dac",4567:"4f513726",4579:"2f97e452",4618:"c325f5ef",4622:"0da03690",4688:"7ef8e09e",4710:"e98af95d",4813:"aeb54beb",4863:"9ba72785",5069:"dc7dcdeb",5078:"a790a7d0",5236:"f5b8122c",5275:"9c496532",5289:"97768b3e",5450:"341d22ef",5632:"d801a83c",5832:"97d0193f",5833:"77e98bca",6279:"14ba028a",6299:"87d24830",6305:"53b228d6",6385:"9bf402a8",6424:"78b9ec3a",6461:"0bff78aa",6596:"b1f4b985",6617:"dfb14a8b",6945:"e6ca558a",7044:"73043424",7054:"97f06086",7124:"da4dc09a",7317:"df765d78",7328:"aeeafe4b",7415:"6be95c78",7537:"4d5e11e8",7570:"516806a4",7603:"19bbcf8d",7748:"f5810f3b",7918:"63195e72",7920:"2a186628",8078:"ddb2a7d3",8145:"f0364e43",8298:"9be9b751",8647:"9f8f06d8",8868:"7c518e21",8882:"f4f521b2",8894:"d2f6f776",8925:"b7586db0",9114:"bedf8d3d",9146:"fb8cab05",9185:"aad754d7",9334:"dadfb5a6",9347:"2e6ba7b6",9394:"a31b1b36",9401:"18317148",9514:"fe92450b",9554:"a0fc7dd1",9724:"62312122",9725:"01d9d74c",9817:"64ec88ed",9821:"3285e9f4"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},b="docs:",r.l=(e,a,f,c)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+f),t.src=e),d[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var b=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/es/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","96fb4374":"42","935f2afb":"53","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","235babb1":"557","313b9001":"559","6618ba01":"563","1e1d6f20":"808",d441ea6d:"879",b3a9d7ab:"909","0a1bdeaa":"967","88a1b883":"1036","4d9f14c4":"1220","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","322cff69":"1420","49332cbb":"1698","9d23aec8":"1754","8a89048a":"1770","5df36282":"1791",d5211f12:"1919",aed38285:"1932","24983e98":"2099",dc9fd2e7:"2105","6e7e0dfd":"2121","54fe4512":"2269",f7b0b541:"2454",f0844d9f:"2697","54f4a7b0":"2926","67a4e8b6":"3203","10869db1":"3563","6e6b2999":"3659","6937eda1":"3923","4caccc33":"3967","38c3fa26":"4077","18d17e09":"4118",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813","5f60a020":"4863","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","1c36a847":"5289","8944547a":"5450","1161d08d":"5632",caa9baff:"5832","7a2d53ea":"5833","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","49f133ab":"6424","3d3d1f9d":"6461",dec1eefe:"6596","81b28c9f":"6617","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",fee3ac30:"7328",ae93aaeb:"7415","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","798531cc":"7748","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298","9ff5325d":"8647","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","25ec094f":"9146","247783bb":"9334",e624f8a6:"9347",d53ad56c:"9394","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817","277cf690":"9821"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>d=e[a]=[f,b]));f.push(d[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,(f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var b=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,b,c=f[0],t=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n<c.length;n++)b=c[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},f=self.webpackChunkdocs=self.webpackChunkdocs||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/es/category/contribute/index.html b/es/category/contribute/index.html index 221a2868c..fe86c5e47 100644 --- a/es/category/contribute/index.html +++ b/es/category/contribute/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contribute</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Contribute</h1><p>How to contribute to the Unraid Docs</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/intro/"><h2 class="text--truncate cardTitle_rnsV" title="Contributing to Unraid Documentation">📄️<!-- --> <!-- -->Contributing to Unraid Documentation</h2><p class="text--truncate cardDescription_PWke" title="Contribute to a Docs Page that already Exists">Contribute to a Docs Page that already Exists</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/tutorial---basics/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Basics">🗃️<!-- --> <!-- -->Tutorial - Basics</h2><p class="text--truncate cardDescription_PWke" title="5 items">5 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/tutorial---extras/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Extras">🗃️<!-- --> <!-- -->Tutorial - Extras</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/faq/index.html b/es/category/faq/index.html index 53fbb999d..0f8f3a397 100644 --- a/es/category/faq/index.html +++ b/es/category/faq/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/faq/redeem-license-activation-code/">Cómo Canjear un Código de Activación de Licencia</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">FAQ</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">FAQ</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/faq/licensing-faq/"><h2 class="text--truncate cardTitle_rnsV" title="Licensing">📄️<!-- --> <!-- -->Licensing</h2><p class="text--truncate cardDescription_PWke" title="Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/faq/os-faq/"><h2 class="text--truncate cardTitle_rnsV" title="OS">📄️<!-- --> <!-- -->OS</h2><p class="text--truncate cardDescription_PWke" title="I Need Help with a Build / System Configuration. Where do I go?">I Need Help with a Build / System Configuration. Where do I go?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/faq/redeem-license-activation-code/"><h2 class="text--truncate cardTitle_rnsV" title="Cómo Canjear un Código de Activación de Licencia">📄️<!-- --> <!-- -->Cómo Canjear un Código de Activación de Licencia</h2><p class="text--truncate cardDescription_PWke" title="Primero, siga nuestra guía de inicio para configurar un servidor">Primero, siga nuestra guía de inicio para configurar un servidor</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/faq/unraid-account/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Account">📄️<!-- --> <!-- -->Unraid Account</h2><p class="text--truncate cardDescription_PWke" title="What is an Unraid.net Account?">What is an Unraid.net Account?</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/release-notes/6.9.2/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">6.9.2</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Licensing</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/getting-started/index.html b/es/category/getting-started/index.html index 04bede9e2..66d63e8d4 100644 --- a/es/category/getting-started/index.html +++ b/es/category/getting-started/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/manual-install-method/">Manual Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Method">📄️<!-- --> <!-- -->Manual Method</h2><p class="text--truncate cardDescription_PWke" title="Método manual">Método manual</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/manual-install-method/">Manual Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Method">📄️<!-- --> <!-- -->Manual Method</h2><p class="text--truncate cardDescription_PWke" title="Método manual">Método manual</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/guides/index.html b/es/category/guides/index.html index 6feb3dff3..600fe80e5 100644 --- a/es/category/guides/index.html +++ b/es/category/guides/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Guides</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Guides</h1><p>Unraid OS Guides</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/guides/configuring-time-machine/"><h2 class="text--truncate cardTitle_rnsV" title="Apple Time Machine">📄️<!-- --> <!-- -->Apple Time Machine</h2><p class="text--truncate cardDescription_PWke" title="Guide: Setting up a Time Machine Share on your Unraid Server">Guide: Setting up a Time Machine Share on your Unraid Server</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/guides/wol-setup-for-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="How To Setup Wake On LAN (WOL) for UNRAID">📄️<!-- --> <!-- -->How To Setup Wake On LAN (WOL) for UNRAID</h2><p class="text--truncate cardDescription_PWke" title="(assuming onboard NIC and WOL activated in motherboard's BIOS)">(assuming onboard NIC and WOL activated in motherboard's BIOS)</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Unraid Account</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Apple Time Machine</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/legacy-documentation/index.html b/es/category/legacy-documentation/index.html index b69bc20ac..4bd81cef8 100644 --- a/es/category/legacy-documentation/index.html +++ b/es/category/legacy-documentation/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/es/legacy/Articles/dual-boot-unraid-and-windows/">Articles</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/es/legacy/FAQ/Parity/">FAQ</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Legacy Documentation</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Legacy Documentation</h1><p>Unraid OS Documentation ported from legacy.wiki.unraid.net</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/legacy/Articles/dual-boot-unraid-and-windows/"><h2 class="text--truncate cardTitle_rnsV" title="Articles">🗃️<!-- --> <!-- -->Articles</h2><p class="text--truncate cardDescription_PWke" title="3 items">3 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/legacy/FAQ/Parity/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="16 items">16 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/connect/remote-access/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Remote Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/manual/index.html b/es/category/manual/index.html index df4718523..a484ee3e9 100644 --- a/es/category/manual/index.html +++ b/es/category/manual/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">📄️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="Once you have assigned some devices to Unraid and started the array, you">Once you have assigned some devices to Unraid and started the array, you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">📄️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="This section covers various security-related aspects of Unraid">This section covers various security-related aspects of Unraid</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 items">1 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/what-is-unraid/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Overview</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">🗃️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="5 items">5 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">🗃️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="5 items">5 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 items">1 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Shares</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/release-notes/index.html b/es/category/release-notes/index.html index d0664dc9d..ae8813e3f 100644 --- a/es/category/release-notes/index.html +++ b/es/category/release-notes/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="true" tabindex="0" href="/es/unraid-os/release-notes/6.12.0/">6.12</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/release-notes/6.12.0/">6.12.0</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/release-notes/6.12.1/">6.12.1</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/release-notes/6.12.2/">6.12.2</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/release-notes/6.12.3/">6.12.3</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/es/unraid-os/release-notes/6.11.0/">6.11</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/es/unraid-os/release-notes/6.10.0/">6.10</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/es/unraid-os/release-notes/6.9.0/">6.9</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Release Notes</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Release Notes</h1><p>Unraid Release Notes</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/release-notes/6.12.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.12">🗃️<!-- --> <!-- -->6.12</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/release-notes/6.11.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.11">🗃️<!-- --> <!-- -->6.11</h2><p class="text--truncate cardDescription_PWke" title="6 items">6 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/release-notes/6.10.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.10">🗃️<!-- --> <!-- -->6.10</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/release-notes/6.9.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.9">🗃️<!-- --> <!-- -->6.9</h2><p class="text--truncate cardDescription_PWke" title="3 items">3 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/unraid-os/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Unraid OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/release-notes/6.12.0/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Version 6.12.0 2023-06-14</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/tutorial---basics/index.html b/es/category/tutorial---basics/index.html index c2f54553b..6eadd3aa4 100644 --- a/es/category/tutorial---basics/index.html +++ b/es/category/tutorial---basics/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Basics</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Basics</h1><p>5 minutes to learn the most important Docusaurus concepts.</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/tutorial-basics/create-a-page/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Page">📄️<!-- --> <!-- -->Create a Page</h2><p class="text--truncate cardDescription_PWke" title="Add Markdown or React files to src/pages to create a standalone page:">Add Markdown or React files to src/pages to create a standalone page:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/tutorial-basics/create-a-document/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Document">📄️<!-- --> <!-- -->Create a Document</h2><p class="text--truncate cardDescription_PWke" title="Documents are groups of pages connected through:">Documents are groups of pages connected through:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Blog Post">📄️<!-- --> <!-- -->Create a Blog Post</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...">Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/tutorial-basics/markdown-features/"><h2 class="text--truncate cardTitle_rnsV" title="Markdown Features">📄️<!-- --> <!-- -->Markdown Features</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus supports Markdown and a few additional features.">Docusaurus supports Markdown and a few additional features.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/tutorial-basics/congratulations/"><h2 class="text--truncate cardTitle_rnsV" title="Congratulations">📄️<!-- --> <!-- -->Congratulations</h2><p class="text--truncate cardDescription_PWke" title="You have just learned the basics of Docusaurus and made some changes to the initial template.">You have just learned the basics of Docusaurus and made some changes to the initial template.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Create a Page</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/tutorial---extras/index.html b/es/category/tutorial---extras/index.html index 13be78b75..a787082a1 100644 --- a/es/category/tutorial---extras/index.html +++ b/es/category/tutorial---extras/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Extras</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Extras</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/"><h2 class="text--truncate cardTitle_rnsV" title="Manage Docs Versions">📄️<!-- --> <!-- -->Manage Docs Versions</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus can manage multiple versions of your docs.">Docusaurus can manage multiple versions of your docs.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/contribute-to-docs/tutorial-extras/translate-your-site/"><h2 class="text--truncate cardTitle_rnsV" title="Translate your site">📄️<!-- --> <!-- -->Translate your site</h2><p class="text--truncate cardDescription_PWke" title="Let's translate docs/intro.md to French.">Let's translate docs/intro.md to French.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Congratulations</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/unraid-connect/index.html b/es/category/unraid-connect/index.html index 1c7c2d82b..d571f15c9 100644 --- a/es/category/unraid-connect/index.html +++ b/es/category/unraid-connect/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid Connect</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid Connect</h1><p>Unraid Connect Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/connect/about/"><h2 class="text--truncate cardTitle_rnsV" title="About Unraid Connect">📄️<!-- --> <!-- -->About Unraid Connect</h2><p class="text--truncate cardDescription_PWke" title="What is Unraid Connect?">What is Unraid Connect?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/connect/help/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Connect Help">📄️<!-- --> <!-- -->Unraid Connect Help</h2><p class="text--truncate cardDescription_PWke" title="How to Install">How to Install</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/connect/remote-access/"><h2 class="text--truncate cardTitle_rnsV" title="Remote Access">📄️<!-- --> <!-- -->Remote Access</h2><p class="text--truncate cardDescription_PWke" title="The Remote Access feature">The Remote Access feature</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">About</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/connect/about/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">About Unraid Connect</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/unraid-os/index.html b/es/category/unraid-os/index.html index d2ab62b82..a9b10c3ad 100644 --- a/es/category/unraid-os/index.html +++ b/es/category/unraid-os/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid OS</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid OS</h1><p>Unraid OS Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/release-notes/"><h2 class="text--truncate cardTitle_rnsV" title="Release Notes">🗃️<!-- --> <!-- -->Release Notes</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/faq/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="4 items">4 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/guides/"><h2 class="text--truncate cardTitle_rnsV" title="Guides">🗃️<!-- --> <!-- -->Guides</h2><p class="text--truncate cardDescription_PWke" title="2 items">2 items</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/category/manual/"><h2 class="text--truncate cardTitle_rnsV" title="Manual">🗃️<!-- --> <!-- -->Manual</h2><p class="text--truncate cardDescription_PWke" title="17 items">17 items</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Home</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/release-notes/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Release Notes</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/category/zfs/index.html b/es/category/zfs/index.html index 5de0db74a..23e011cd5 100644 --- a/es/category/zfs/index.html +++ b/es/category/zfs/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/es/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/connect/about/index.html b/es/connect/about/index.html index a86619223..9985a5947 100644 --- a/es/connect/about/index.html +++ b/es/connect/about/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -22,7 +22,7 @@ Unraid Server with a suite of new features including Dynamic Remote Access, Server Deep Linking, Server management from the Connect UI, Online flash backups, Real-time monitoring, and much more!</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="launch-unraid-connect"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer"><strong>Launch Unraid Connect</strong></a><a href="#launch-unraid-connect" class="hash-link" aria-label="Enlace directo al launch-unraid-connect" title="Enlace directo al launch-unraid-connect">​</a></h2></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/about.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/unraid-connect/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/connect/help/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Unraid Connect Help</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-unraid-connect" class="table-of-contents__link toc-highlight"><strong>What is Unraid Connect?</strong></a></li><li><a href="#launch-unraid-connect" class="table-of-contents__link toc-highlight"><strong>Launch Unraid Connect</strong></a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/connect/help/index.html b/es/connect/help/index.html index f0f61132d..b91e3c392 100644 --- a/es/connect/help/index.html +++ b/es/connect/help/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -152,7 +152,7 @@ UPC please open a terminal window and type:</p><p><code>unraid-api restart</code></p><p>If you have other Unraid Connect Support related questions, please see our <a href="https://forums.unraid.net/" target="_blank" rel="noopener noreferrer">Unraid Connect user forum</a> or <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">contact us</a> to open a support ticket.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/help.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/connect/about/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">About Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/connect/remote-access/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Remote Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-to-install" class="table-of-contents__link toc-highlight"><strong>How to Install</strong></a></li><li><a href="#unraid-connect-dashboard" class="table-of-contents__link toc-highlight"><strong>Unraid Connect Dashboard</strong></a><ul><li><a href="#manage-your-server-from-within-the-connect-ui" class="table-of-contents__link toc-highlight"><strong>Manage Your Server From Within the Connect UI</strong></a></li><li><a href="#a-note-regarding-dns-rebinding-protection" class="table-of-contents__link toc-highlight">A note regarding DNS Rebinding Protection</a></li><li><a href="#how-to-access-your-server-when-dns-is-down" class="table-of-contents__link toc-highlight">How to access your server when DNS is down</a></li><li><a href="#how-to-disable-ssl-for-local-access" class="table-of-contents__link toc-highlight">How to disable SSL for local access</a></li></ul></li><li><a href="#automated-flash-backup" class="table-of-contents__link toc-highlight"><strong>Automated Flash Backup</strong></a><ul><li><a href="#enabling-flash-backup-optional" class="table-of-contents__link toc-highlight">Enabling Flash Backup (optional)</a></li><li><a href="#restoring-flash-backup" class="table-of-contents__link toc-highlight">Restoring Flash Backup</a></li></ul></li><li><a href="#server-deep-linking" class="table-of-contents__link toc-highlight"><strong>Server Deep Linking</strong></a></li><li><a href="#customizable-dashboard-server-banner-image-and-themes" class="table-of-contents__link toc-highlight"><strong>Customizable Dashboard, Server Banner Image and Themes</strong></a></li><li><a href="#license-management" class="table-of-contents__link toc-highlight"><strong>License Management</strong></a></li><li><a href="#language-localization" class="table-of-contents__link toc-highlight"><strong>Language Localization</strong></a></li><li><a href="#signing-out" class="table-of-contents__link toc-highlight">Signing Out</a></li><li><a href="#uninstalling-the-plugin" class="table-of-contents__link toc-highlight">Uninstalling the plugin</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a><ul><li><a href="#data-we-store" class="table-of-contents__link toc-highlight">Data We Store</a></li><li><a href="#flash-backups-are-not-encrypted" class="table-of-contents__link toc-highlight">Flash Backups are Not Encrypted</a></li><li><a href="#sensitive-data" class="table-of-contents__link toc-highlight">Sensitive Data</a></li></ul></li><li><a href="#connect-troubleshooting" class="table-of-contents__link toc-highlight">Connect Troubleshooting</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/connect/remote-access/index.html b/es/connect/remote-access/index.html index 5dc6232a4..befc25094 100644 --- a/es/connect/remote-access/index.html +++ b/es/connect/remote-access/index.html @@ -9,16 +9,16 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-connect/"><span itemprop="name">Unraid Connect</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Remote Access</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Remote Access</h1><p><img loading="lazy" src="/es/assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png" width="812" height="283" class="img_ev3q"></p><p>The Remote Access feature allows you to access your Unraid webgui from the Internet. If you need access to Docker containers, network drives, or other devices on your -network, you'll want to <a href="/es/unraid-os/manual/security/#vpn">setup a +network, you'll want to <a href="/es/unraid-os/manual/security.md/#vpn">setup a VPN</a> instead.</p><p><strong>Note: Before enabling remote access, consider your root password. Is it sufficiently complex? Update your root password on the Users page.</strong></p><p>Also note: <strong>Remote Access is an optional feature</strong>, and is not required to use the rest of Unraid Connect.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="remote-access---initial-setup">Remote Access - <strong>Initial Setup</strong><a href="#remote-access---initial-setup" class="hash-link" aria-label="Enlace directo al remote-access---initial-setup" title="Enlace directo al remote-access---initial-setup">​</a></h2><ol><li>From Unraid webGUI Navigate to <strong>Settings</strong> → <strong>Management Access</strong></li><li>Note the <strong>HTTPS port</strong>, it defaults to port 443. If you have Docker @@ -81,7 +81,7 @@ Internet connection drops you will likely lose access to your server's webgui. See <a href="/es/connect/help/#how-to-access-your-server-when-dns-is-down">How to access your server when DNS is down</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/connect/help/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Unraid Connect Help</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/legacy-documentation/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Legacy Documentation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#remote-access---initial-setup" class="table-of-contents__link toc-highlight">Remote Access - <strong>Initial Setup</strong></a><ul><li><a href="#remote-access---choose-remote-access-type" class="table-of-contents__link toc-highlight">Remote Access - <strong>Choose Remote Access Type</strong></a></li></ul></li><li><a href="#dynamic-remote-access" class="table-of-contents__link toc-highlight"><strong>Dynamic Remote Access</strong></a><ul><li><a href="#dynamic-remote-access-usage" class="table-of-contents__link toc-highlight">Dynamic Remote Access Usage</a></li><li><a href="#configuring-upnp-applies-to-dynamic---upnp--always-on---upnp" class="table-of-contents__link toc-highlight">Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)</a></li><li><a href="#configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward" class="table-of-contents__link toc-highlight">Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/intro/index.html b/es/contribute-to-docs/intro/index.html index 81dccdef4..f15bb6b13 100644 --- a/es/contribute-to-docs/intro/index.html +++ b/es/contribute-to-docs/intro/index.html @@ -9,15 +9,15 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contributing to Unraid Documentation</span><meta itemprop="position" content="2"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Contributing to Unraid Documentation</h1><p><strong>Contribute to a Docs Page that already Exists</strong> If you want to contribute to an Unraid Docs page that already exists, there is an "Edit this page" button at the bottom of every page.</p><p>Clicking this will take you to github, where you can click on the edit pencil in the far right to fork the repository, make edits on your own branch, and then commit Pull Requests to Main.</p><p>Unraid Docs are built using Docusaurus which uses <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features" target="_blank" rel="noopener noreferrer">Markdown</a>, so please use the proper formatting outlined there for <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#links" target="_blank" rel="noopener noreferrer">links</a>, <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#code-blocks" target="_blank" rel="noopener noreferrer">code blocks</a>, and <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#admonitions" target="_blank" rel="noopener noreferrer">admonitions</a>. </p><p><strong>Creating a New Docs Page</strong></p><p>To create a new Docs page, for example an Unraid Guide, in github, go to <a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides" target="_blank" rel="noopener noreferrer">docs/unraid-os/guides</a> and click "Add file" on the right to add a new Guides page. From there, name your file/guide and ensure it ends with ".md". Also, please ensure filenames are <em>lower case</em> and have <em>dashes separating-any-words</em> (Ex: wake-on-lan.md) Next, add the guide info and styling and then commit your changes. Then, a LimeTech employee will review and merge if everything looks good.</p><p>Thank you in advance for any and all submissions and edits. Making living technical documentation would be impossible without community involvement!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/intro.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/contribute/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Contribute</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/tutorial---basics/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Tutorial - Basics</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/tutorial-basics/congratulations/index.html b/es/contribute-to-docs/tutorial-basics/congratulations/index.html index 99baf52a4..06b45222f 100644 --- a/es/contribute-to-docs/tutorial-basics/congratulations/index.html +++ b/es/contribute-to-docs/tutorial-basics/congratulations/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Congratulations</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Congratulations</h1><p>You have just learned the <strong>basics of Docusaurus</strong> and made some changes to the <strong>initial template</strong>.</p><p>Docusaurus has <strong>much more to offer</strong>!</p><p>Have <strong>5 more minutes</strong>? Take a look at <strong><a href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/">versioning</a></strong> and <strong><a href="/es/contribute-to-docs/tutorial-extras/translate-your-site/">i18n</a></strong>.</p><p>Anything <strong>unclear</strong> or <strong>buggy</strong> in this tutorial? <a href="https://github.com/facebook/docusaurus/discussions/4610" target="_blank" rel="noopener noreferrer">Please report it!</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-next">What's next?<a href="#whats-next" class="hash-link" aria-label="Enlace directo al What's next?" title="Enlace directo al What's next?">​</a></h2><ul><li>Read the <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">official documentation</a></li><li>Modify your site configuration with <a href="https://docusaurus.io/docs/api/docusaurus-config" target="_blank" rel="noopener noreferrer"><code>docusaurus.config.js</code></a></li><li>Add navbar and footer items with <a href="https://docusaurus.io/docs/api/themes/configuration" target="_blank" rel="noopener noreferrer"><code>themeConfig</code></a></li><li>Add a custom <a href="https://docusaurus.io/docs/styling-layout" target="_blank" rel="noopener noreferrer">Design and Layout</a></li><li>Add a <a href="https://docusaurus.io/docs/search" target="_blank" rel="noopener noreferrer">search bar</a></li><li>Find inspirations in the <a href="https://docusaurus.io/showcase" target="_blank" rel="noopener noreferrer">Docusaurus showcase</a></li><li>Get involved in the <a href="https://docusaurus.io/community/support" target="_blank" rel="noopener noreferrer">Docusaurus Community</a></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/congratulations.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Markdown Features</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/tutorial---extras/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Tutorial - Extras</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#whats-next" class="table-of-contents__link toc-highlight">What's next?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html b/es/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html index 5c7d56901..95b98fef7 100644 --- a/es/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html +++ b/es/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Blog Post</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Create a Blog Post</h1><p>Docusaurus creates a <strong>page for each blog post</strong>, but also a <strong>blog index page</strong>, a <strong>tag system</strong>, an <strong>RSS</strong> feed...</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-post">Create your first Post<a href="#create-your-first-post" class="hash-link" aria-label="Enlace directo al Create your first Post" title="Enlace directo al Create your first Post">​</a></h2><p>Create a file at <code>blog/2021-02-28-greetings.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">blog/2021-02-28-greetings.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">slug</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> greetings</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Greetings</span><span class="token front-matter-block front-matter yaml language-yaml tag" style="color:rgb(255, 121, 198)">!</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">authors</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Joel Marcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Co</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml">creator of Docusaurus 1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Sébastien Lorber</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Docusaurus maintainer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//sebastienlorber.com</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/slorber.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">tags</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token front-matter-block front-matter yaml language-yaml">greetings</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Congratulations, you have made your first post!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Feel free to play around and edit this post as much you like.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new blog post is now available at <a href="http://localhost:3000/blog/greetings" target="_blank" rel="noopener noreferrer">http://localhost:3000/blog/greetings</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Create a Document</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Markdown Features</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-post" class="table-of-contents__link toc-highlight">Create your first Post</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/tutorial-basics/create-a-document/index.html b/es/contribute-to-docs/tutorial-basics/create-a-document/index.html index a236d07b6..d805a988e 100644 --- a/es/contribute-to-docs/tutorial-basics/create-a-document/index.html +++ b/es/contribute-to-docs/tutorial-basics/create-a-document/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Document</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Create a Document</h1><p>Documents are <strong>groups of pages</strong> connected through:</p><ul><li>a <strong>sidebar</strong></li><li><strong>previous/next navigation</strong></li><li><strong>versioning</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-doc">Create your first Doc<a href="#create-your-first-doc" class="hash-link" aria-label="Enlace directo al Create your first Doc" title="Enlace directo al Create your first Doc">​</a></h2><p>Create a Markdown file at <code>docs/hello.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new document is now available at <a href="http://localhost:3000/docs/hello" target="_blank" rel="noopener noreferrer">http://localhost:3000/docs/hello</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-the-sidebar">Configure the Sidebar<a href="#configure-the-sidebar" class="hash-link" aria-label="Enlace directo al Configure the Sidebar" title="Enlace directo al Configure the Sidebar">​</a></h2><p>Docusaurus automatically <strong>creates a sidebar</strong> from the <code>docs</code> folder.</p><p>Add metadata to customize the sidebar label and position:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_label</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml string" style="color:rgb(255, 121, 198)">"Hi!"</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_position</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml number">3</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It is also possible to create your sidebar explicitly in <code>sidebars.js</code>:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">sidebars.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">tutorialSidebar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"intro"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"hello"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"category"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">label</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Tutorial"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"tutorial-basics/create-a-document"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-document.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Create a Page</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Create a Blog Post</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-doc" class="table-of-contents__link toc-highlight">Create your first Doc</a></li><li><a href="#configure-the-sidebar" class="table-of-contents__link toc-highlight">Configure the Sidebar</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/tutorial-basics/create-a-page/index.html b/es/contribute-to-docs/tutorial-basics/create-a-page/index.html index 6928cd48d..5cb4883ee 100644 --- a/es/contribute-to-docs/tutorial-basics/create-a-page/index.html +++ b/es/contribute-to-docs/tutorial-basics/create-a-page/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Page</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Create a Page</h1><p>Add <strong>Markdown or React</strong> files to <code>src/pages</code> to create a <strong>standalone page</strong>:</p><ul><li><code>src/pages/index.js</code> → <code>localhost:3000/</code></li><li><code>src/pages/foo.md</code> → <code>localhost:3000/foo</code></li><li><code>src/pages/foo/bar.js</code> → <code>localhost:3000/foo/bar</code></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-react-page">Create your first React Page<a href="#create-your-first-react-page" class="hash-link" aria-label="Enlace directo al Create your first React Page" title="Enlace directo al Create your first React Page">​</a></h2><p>Create a file at <code>src/pages/my-react-page.js</code>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-react-page.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"react"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">Layout</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"@theme/Layout"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">default</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">MyReactPage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">My React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">This is a React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-react-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-react-page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-markdown-page">Create your first Markdown Page<a href="#create-your-first-markdown-page" class="hash-link" aria-label="Enlace directo al Create your first Markdown Page" title="Enlace directo al Create your first Markdown Page">​</a></h2><p>Create a file at <code>src/pages/my-markdown-page.md</code>:</p><div class="language-mdx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-markdown-page.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-mdx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># My Markdown page</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is a Markdown page</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-markdown-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-markdown-page</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-page.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/tutorial---basics/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Tutorial - Basics</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Create a Document</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-react-page" class="table-of-contents__link toc-highlight">Create your first React Page</a></li><li><a href="#create-your-first-markdown-page" class="table-of-contents__link toc-highlight">Create your first Markdown Page</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/tutorial-basics/markdown-features/index.html b/es/contribute-to-docs/tutorial-basics/markdown-features/index.html index 7089ae90e..321e69d73 100644 --- a/es/contribute-to-docs/tutorial-basics/markdown-features/index.html +++ b/es/contribute-to-docs/tutorial-basics/markdown-features/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Markdown Features</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Markdown Features</h1><p>Docusaurus supports <strong><a href="https://daringfireball.net/projects/markdown/syntax" target="_blank" rel="noopener noreferrer">Markdown</a></strong> and a few <strong>additional features</strong>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="front-matter">Front Matter<a href="#front-matter" class="hash-link" aria-label="Enlace directo al Front Matter" title="Enlace directo al Front Matter">​</a></h2><p>Markdown documents have metadata at the top called <a href="https://jekyllrb.com/docs/front-matter/" target="_blank" rel="noopener noreferrer">Front Matter</a>:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">my-doc.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">id: my-doc-id</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">title: My document title</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">description: My document description</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">slug: /my-custom-url</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">## Markdown heading</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Markdown text with [links](./hello.md)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="links">Links<a href="#links" class="hash-link" aria-label="Enlace directo al Links" title="Enlace directo al Links">​</a></h2><p>Regular Markdown links are supported, using url paths or relative file paths.</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">/create-a-page</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">./create-a-page.md</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Result:</strong> Let's see how to <a href="/es/contribute-to-docs/tutorial-basics/create-a-page/">Create a page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="images">Images<a href="#images" class="hash-link" aria-label="Enlace directo al Images" title="Enlace directo al Images">​</a></h2><p>Regular Markdown images are supported.</p><p>You can use absolute paths to reference images in the static directory (<code>static/img/docusaurus.png</code>):</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">/img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" alt="Docusaurus logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC" width="200" height="200" class="img_ev3q"></p><p>You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">./img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="code-blocks">Code Blocks<a href="#code-blocks" class="hash-link" aria-label="Enlace directo al Code Blocks" title="Enlace directo al Code Blocks">​</a></h2><p>Markdown code blocks are supported with Syntax highlighting.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">```jsx title="src/components/HelloDocusaurus.js"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">function HelloDocusaurus() {</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> return (</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> <h1>Hello, Docusaurus!</h1></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> )</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">```</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/components/HelloDocusaurus.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">HelloDocusaurus</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Hello, Docusaurus!</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="admonitions">Admonitions<a href="#admonitions" class="hash-link" aria-label="Enlace directo al Admonitions" title="Enlace directo al Admonitions">​</a></h2><p>Docusaurus has a special syntax to create admonitions and callouts:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::tip My tip</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Use this awesome feature option</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::danger Take care</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This action is dangerous</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="theme-admonition theme-admonition-tip alert alert--success admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>My tip</div><div class="admonitionContent_S0QG"><p>Use this awesome feature option</p></div></div><div class="theme-admonition theme-admonition-danger alert alert--danger admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Take care</div><div class="admonitionContent_S0QG"><p>This action is dangerous</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="mdx-and-react-components">MDX and React Components<a href="#mdx-and-react-components" class="hash-link" aria-label="Enlace directo al MDX and React Components" title="Enlace directo al MDX and React Components">​</a></h2><p><a href="https://mdxjs.com/" target="_blank" rel="noopener noreferrer">MDX</a> can make your documentation more <strong>interactive</strong> and allows using any <strong>React components inside Markdown</strong>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function maybe-class-name" style="color:rgb(80, 250, 123)">Highlight</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token parameter">children</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token parameter"> color</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=></span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">style</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">backgroundColor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> color</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">borderRadius</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'20px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'#fff'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">padding</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'10px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">cursor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'pointer'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=></span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">alert</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)">You clicked the color </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)"> with label </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">children</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#25c2a0</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Docusaurus green</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#1877F2</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Facebook blue</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is <span style="background-color:#25c2a0;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Docusaurus green</span> !</p><p>This is <span style="background-color:#1877F2;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Facebook blue</span> !</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Create a Blog Post</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Congratulations</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#front-matter" class="table-of-contents__link toc-highlight">Front Matter</a></li><li><a href="#links" class="table-of-contents__link toc-highlight">Links</a></li><li><a href="#images" class="table-of-contents__link toc-highlight">Images</a></li><li><a href="#code-blocks" class="table-of-contents__link toc-highlight">Code Blocks</a></li><li><a href="#admonitions" class="table-of-contents__link toc-highlight">Admonitions</a></li><li><a href="#mdx-and-react-components" class="table-of-contents__link toc-highlight">MDX and React Components</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html b/es/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html index beed3e45b..9fa0e7d8b 100644 --- a/es/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html +++ b/es/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manage Docs Versions</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Manage Docs Versions</h1><p>Docusaurus can manage multiple versions of your docs.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-a-docs-version">Create a docs version<a href="#create-a-docs-version" class="hash-link" aria-label="Enlace directo al Create a docs version" title="Enlace directo al Create a docs version">​</a></h2><p>Release a version 1.0 of your project:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run docusaurus docs:version </span><span class="token number">1.0</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The <code>docs</code> folder is copied into <code>versioned_docs/version-1.0</code> and <code>versions.json</code> is created.</p><p>Your docs now have 2 versions:</p><ul><li><code>1.0</code> at <code>http://localhost:3000/docs/</code> for the version 1.0 docs</li><li><code>current</code> at <code>http://localhost:3000/docs/next/</code> for the <strong>upcoming, unreleased docs</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-version-dropdown">Add a Version Dropdown<a href="#add-a-version-dropdown" class="hash-link" aria-label="Enlace directo al Add a Version Dropdown" title="Enlace directo al Add a Version Dropdown">​</a></h2><p>To navigate seamlessly across versions, add a version dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"docsVersionDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The docs version dropdown appears in your navbar:</p><p><img loading="lazy" alt="Docs Version Dropdown" src="/es/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="update-an-existing-version">Update an existing version<a href="#update-an-existing-version" class="hash-link" aria-label="Enlace directo al Update an existing version" title="Enlace directo al Update an existing version">​</a></h2><p>It is possible to edit versioned docs in their respective folder:</p><ul><li><code>versioned_docs/version-1.0/hello.md</code> updates <code>http://localhost:3000/docs/hello</code></li><li><code>docs/hello.md</code> updates <code>http://localhost:3000/docs/next/hello</code></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/tutorial---extras/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Tutorial - Extras</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/contribute-to-docs/tutorial-extras/translate-your-site/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Translate your site</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-a-docs-version" class="table-of-contents__link toc-highlight">Create a docs version</a></li><li><a href="#add-a-version-dropdown" class="table-of-contents__link toc-highlight">Add a Version Dropdown</a></li><li><a href="#update-an-existing-version" class="table-of-contents__link toc-highlight">Update an existing version</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/contribute-to-docs/tutorial-extras/translate-your-site/index.html b/es/contribute-to-docs/tutorial-extras/translate-your-site/index.html index 18d609d3d..b7e04fc5d 100644 --- a/es/contribute-to-docs/tutorial-extras/translate-your-site/index.html +++ b/es/contribute-to-docs/tutorial-extras/translate-your-site/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Basics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Toggle the collapsible sidebar category 'Tutorial - Extras'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Translate your site</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Translate your site</h1><p>Let's translate <code>docs/intro.md</code> to French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-i18n">Configure i18n<a href="#configure-i18n" class="hash-link" aria-label="Enlace directo al Configure i18n" title="Enlace directo al Configure i18n">​</a></h2><p>Modify <code>docusaurus.config.js</code> to add support for the <code>fr</code> locale:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">i18n</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">defaultLocale</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">locales</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"fr"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="translate-a-doc">Translate a doc<a href="#translate-a-doc" class="hash-link" aria-label="Enlace directo al Translate a doc" title="Enlace directo al Translate a doc">​</a></h2><p>Copy the <code>docs/intro.md</code> file to the <code>i18n/fr</code> folder:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">mkdir</span><span class="token plain"> -p i18n/fr/docusaurus-plugin-content-docs/current/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">cp</span><span class="token plain"> docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Translate <code>i18n/fr/docusaurus-plugin-content-docs/current/intro.md</code> in French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="start-your-localized-site">Start your localized site<a href="#start-your-localized-site" class="hash-link" aria-label="Enlace directo al Start your localized site" title="Enlace directo al Start your localized site">​</a></h2><p>Start your site on the French locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run start -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Your localized site is accessible at <a href="http://localhost:3000/fr/" target="_blank" rel="noopener noreferrer">http://localhost:3000/fr/</a> and the <code>Getting Started</code> page is translated.</p><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_S0QG"><p>In development, you can only use one locale at a same time.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-locale-dropdown">Add a Locale Dropdown<a href="#add-a-locale-dropdown" class="hash-link" aria-label="Enlace directo al Add a Locale Dropdown" title="Enlace directo al Add a Locale Dropdown">​</a></h2><p>To navigate seamlessly across languages, add a locale dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"localeDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The locale dropdown now appears in your navbar:</p><p><img loading="lazy" alt="Locale Dropdown" src="/es/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="build-your-localized-site">Build your localized site<a href="#build-your-localized-site" class="hash-link" aria-label="Enlace directo al Build your localized site" title="Enlace directo al Build your localized site">​</a></h2><p>Build your site for a specific locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Or build your site to include all the locales at once:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/translate-your-site.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#configure-i18n" class="table-of-contents__link toc-highlight">Configure i18n</a></li><li><a href="#translate-a-doc" class="table-of-contents__link toc-highlight">Translate a doc</a></li><li><a href="#start-your-localized-site" class="table-of-contents__link toc-highlight">Start your localized site</a></li><li><a href="#add-a-locale-dropdown" class="table-of-contents__link toc-highlight">Add a Locale Dropdown</a></li><li><a href="#build-your-localized-site" class="table-of-contents__link toc-highlight">Build your localized site</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/index.html b/es/index.html index 56afb5a42..3d21a2dd9 100644 --- a/es/index.html +++ b/es/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div id="__docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Home</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Home</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-documentation">Unraid Documentation<a href="#unraid-documentation" class="hash-link" aria-label="Enlace directo al Unraid Documentation" title="Enlace directo al Unraid Documentation">​</a></h2><p>Welcome! Some of the documentation here is still a work in progress, while the old documentation in the <a href="/es/category/legacy-documentation/">Legacy Documentation section</a> is actively being updated and edited to reflect accurate, up-to-date information.</p><p>If you'd like to contribute to these docs, feel free to open a PR by clicking <em>Edit this page</em> at the bottom of any page, or using the link in the footer. Thank you in advance for helping to keep these docs accurate and living.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="documentation-categories">Documentation Categories<a href="#documentation-categories" class="hash-link" aria-label="Enlace directo al Documentation Categories" title="Enlace directo al Documentation Categories">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-os"><a href="/es/category/unraid-os/">Unraid OS</a><a href="#unraid-os" class="hash-link" aria-label="Enlace directo al unraid-os" title="Enlace directo al unraid-os">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-connect"><a href="/es/category/unraid-connect/">Unraid Connect</a><a href="#unraid-connect" class="hash-link" aria-label="Enlace directo al unraid-connect" title="Enlace directo al unraid-connect">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="legacy-documentation"><a href="/es/category/legacy-documentation/">Legacy Documentation</a><a href="#legacy-documentation" class="hash-link" aria-label="Enlace directo al legacy-documentation" title="Enlace directo al legacy-documentation">​</a></h3></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/docs-home.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/unraid-os/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Unraid OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#unraid-documentation" class="table-of-contents__link toc-highlight">Unraid Documentation</a></li><li><a href="#documentation-categories" class="table-of-contents__link toc-highlight">Documentation Categories</a><ul><li><a href="#unraid-os" class="table-of-contents__link toc-highlight">Unraid OS</a></li><li><a href="#unraid-connect" class="table-of-contents__link toc-highlight">Unraid Connect</a></li><li><a href="#legacy-documentation" class="table-of-contents__link toc-highlight">Legacy Documentation</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/Articles/dual-boot-unraid-and-windows/index.html b/es/legacy/Articles/dual-boot-unraid-and-windows/index.html index c9155080e..cba71c1cc 100644 --- a/es/legacy/Articles/dual-boot-unraid-and-windows/index.html +++ b/es/legacy/Articles/dual-boot-unraid-and-windows/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -58,7 +58,7 @@ installing lilo to the MBR.</p><p>When done, edit /etc/lilo.conf to your liking.</p><p>Finally, format the cache partition (partition1) with ReiserFS.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="finish">Finish<a href="#finish" class="hash-link" aria-label="Enlace directo al Finish" title="Enlace directo al Finish">​</a></h2><p>Now start Unraid by booting the flash, and assigning the cache drive.</p><p>You can boot Windows or Linux by changing the BIOS settings, or using the appropriate key at boot time key to get a boot menu, or you can also edit the syslinux config on the flash to give you multi-boot options.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/dual-boot-unraid-and-windows.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/legacy-documentation/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Legacy Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-do-this" class="table-of-contents__link toc-highlight">Why do this?</a></li><li><a href="#what-you-need" class="table-of-contents__link toc-highlight">What you need</a></li><li><a href="#preparation" class="table-of-contents__link toc-highlight">Preparation</a></li><li><a href="#partition-disk" class="table-of-contents__link toc-highlight">Partition Disk</a></li><li><a href="#install-windows" class="table-of-contents__link toc-highlight">Install Windows</a></li><li><a href="#check-partition-order-after-windows-install" class="table-of-contents__link toc-highlight">Check Partition Order After Windows Install</a></li><li><a href="#install-linux" class="table-of-contents__link toc-highlight">Install Linux</a></li><li><a href="#finish" class="table-of-contents__link toc-highlight">Finish</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html b/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html index c9d016983..bbfd32968 100644 --- a/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html +++ b/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -33,7 +33,7 @@ numbered partition in the list (for recovery).</li><li>Type 'delete partition override' and press enter.</li><li>Right-click the start menu and select 'Disk Management'</li><li>Right-click on the partition you wish to extend and click 'Extend Partition'</li><li>Follow the on-screen prompts to complete the process.</li></ul><p><img loading="lazy" src="/es/assets/images/Resize_vdisk_3_(extend_partition_in_disk_management)-62c649acdf42616193f2d6c889504ea9.PNG" width="1132" height="896" class="img_ev3q"> <img loading="lazy" src="/es/assets/images/Resize_vdisk_4_(partition_has_been_extended_in_disk_management)-335d91d19a6c04b5d3e115c4d8149dcb.PNG" width="1131" height="896" class="img_ev3q"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#guide" class="table-of-contents__link toc-highlight">Guide</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/Articles/upgrading-to-unraid-6/index.html b/es/legacy/Articles/upgrading-to-unraid-6/index.html index 9b5727934..6e40d0f5a 100644 --- a/es/legacy/Articles/upgrading-to-unraid-6/index.html +++ b/es/legacy/Articles/upgrading-to-unraid-6/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -98,7 +98,7 @@ earlier.</p><h1>From version 5.x or earlier</h1><p>Please see <a href="https://forums.unraid.net/forum/index.php?topic=41061.0" target="_blank" rel="noopener noreferrer">this forum post</a> for information on upgrading.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/upgrading-to-unraid-6.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Parity</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#possible-upgrade-issues" class="table-of-contents__link toc-highlight">Possible upgrade issues</a><ul><li><a href="#the-new-release-does-not-show-up-after-clicking-check-for-updates-button" class="table-of-contents__link toc-highlight">The new release does not show up after clicking <em>Check for Updates</em> button</a></li><li><a href="#my-array--docker-apps-are-taking-a-really-long-time-to-start-after-the-upgrade" class="table-of-contents__link toc-highlight">My array / docker apps are taking a really long time to start after the upgrade</a></li><li><a href="#my-containers-arent-working-right-after-the-upgrade" class="table-of-contents__link toc-highlight">My containers aren't working right after the upgrade</a></li><li><a href="#my-vms-get-an-error-of-cannot-get-interface-mtu" class="table-of-contents__link toc-highlight">My VMs get an error of "cannot get interface MTU..."</a></li><li><a href="#vnc-access-to-my-vms-is-not-working-or-performing-poorly" class="table-of-contents__link toc-highlight">VNC access to my VMs is not working or performing poorly</a></li><li><a href="#my-ovmf-vm-doesnt-boot-correctly" class="table-of-contents__link toc-highlight">My OVMF VM doesn't boot correctly</a></li><li><a href="#trying-to-start-my-vm-gives-a-invalid-machine-type-error" class="table-of-contents__link toc-highlight">Trying to start my VM gives a "Invalid Machine Type" error</a></li><li><a href="#poor-vm-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VM performance after upgrading</a></li><li><a href="#poor-vnc-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VNC performance after upgrading</a></li></ul></li><li><a href="#checking-your-existing-version" class="table-of-contents__link toc-highlight">Checking your existing version</a></li><li><a href="#checking-for-sufficient-free-space" class="table-of-contents__link toc-highlight">Checking for sufficient free space</a></li><li><a href="#checking-your-network-bridge-name" class="table-of-contents__link toc-highlight">Checking your network bridge name</a></li><li><a href="#checking-your-vm-network-bridge-settings" class="table-of-contents__link toc-highlight">Checking your VM network bridge settings</a></li><li><a href="#post-installation-procedures" class="table-of-contents__link toc-highlight">Post installation procedures</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/Parity/index.html b/es/legacy/FAQ/Parity/index.html index 263c1007f..5c0a23ffa 100644 --- a/es/legacy/FAQ/Parity/index.html +++ b/es/legacy/FAQ/Parity/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ errors, with minimal impact on performance.(Requires Clarification that this is actually used)</p><p>Further discussion: <a href="https://forums.unraid.net/forum/index.php?topic=2634.msg21695#msg21695" target="_blank" rel="noopener noreferrer">1</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/Parity.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Cache Disk</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-parity-works" class="table-of-contents__link toc-highlight">How parity works</a></li><li><a href="#reconstructing-data" class="table-of-contents__link toc-highlight">Reconstructing data</a></li><li><a href="#checking-parity" class="table-of-contents__link toc-highlight">Checking parity</a></li><li><a href="#parity-disk" class="table-of-contents__link toc-highlight">Parity disk</a><ul><li><a href="#size" class="table-of-contents__link toc-highlight">Size</a></li><li><a href="#performance" class="table-of-contents__link toc-highlight">Performance</a></li></ul></li><li><a href="#dual-parity" class="table-of-contents__link toc-highlight">Dual parity</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/cache-disk/index.html b/es/legacy/FAQ/cache-disk/index.html index 1d8422490..877981c42 100644 --- a/es/legacy/FAQ/cache-disk/index.html +++ b/es/legacy/FAQ/cache-disk/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -134,7 +134,7 @@ you will want a cache drive that is larger than 100 GB. If you attempt a data transfer that is larger than the size of your cache drive, the transfer will fail.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/cache-disk.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Parity</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Checking and fixing file systems</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#adding-a-cache-disk-to-the-array" class="table-of-contents__link toc-highlight">Adding a cache disk to the array</a></li><li><a href="#cache-settings" class="table-of-contents__link toc-highlight">Cache settings</a></li><li><a href="#speed" class="table-of-contents__link toc-highlight">Speed</a><ul><li><a href="#perceived-write-speed-increases" class="table-of-contents__link toc-highlight">Perceived write speed increases</a></li><li><a href="#actual-write-speed-increases" class="table-of-contents__link toc-highlight">Actual write speed increases</a></li></ul></li><li><a href="#the-mover" class="table-of-contents__link toc-highlight">The Mover</a></li><li><a href="#other-uses-for-a-cache-disk" class="table-of-contents__link toc-highlight">Other uses for a cache disk</a><ul><li><a href="#warm-spare" class="table-of-contents__link toc-highlight">Warm spare</a></li><li><a href="#running-other-software-on-top-of-unraid" class="table-of-contents__link toc-highlight">Running other software on top of Unraid</a></li><li><a href="#scratch-space" class="table-of-contents__link toc-highlight">Scratch space</a></li></ul></li><li><a href="#disadvantages-of-a-cache-disk" class="table-of-contents__link toc-highlight">Disadvantages of a cache disk</a><ul><li><a href="#wasted-hdd-and-hdd-slot" class="table-of-contents__link toc-highlight">'Wasted' HDD and HDD slot</a></li><li><a href="#short-term-risk-of-data-loss" class="table-of-contents__link toc-highlight">Short-term risk of data loss</a></li></ul></li><li><a href="#hardware" class="table-of-contents__link toc-highlight">Hardware</a><ul><li><a href="#purpose" class="table-of-contents__link toc-highlight">Purpose</a></li><li><a href="#amount-of-data" class="table-of-contents__link toc-highlight">Amount of data</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/check-disk-filesystems/index.html b/es/legacy/FAQ/check-disk-filesystems/index.html index 37a1f6166..86b925c7f 100644 --- a/es/legacy/FAQ/check-disk-filesystems/index.html +++ b/es/legacy/FAQ/check-disk-filesystems/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -575,7 +575,7 @@ recommend you read both, for more details.</li><li><em>You may want to print this out ahead of time.</em></li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"> root@Tower:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">~</span><span class="token comment" style="color:rgb(98, 114, 164)"># reiserfsck --rebuild-sb /dev/md6</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfsck </span><span class="token number">3.6</span><span class="token plain">.19 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2003</span><span class="token plain"> www.namesys.com</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you are using the latest reiserfsprogs and it fails **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** please email bug reports to reiserfs-list@namesys.com, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** providing as much information as possible -- your **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** hardware, kernel, patches, settings, all reiserfsck **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** messages </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including version</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">, the reiserfsck logfile, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** check the syslog </span><span class="token function" style="color:rgb(80, 250, 123)">file</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> any related information. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you would like advice on using this program, support **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** is available </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$25</span><span class="token plain"> at www.namesys.com/support.html. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will check superblock and rebuild it </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> needed</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will put log info to </span><span class="token string" style="color:rgb(255, 121, 198)">'stdout'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to run this program?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">N/Yes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">note need to </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">type</span><span class="token plain"> Yes</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> you </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">:**Yes**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfs_open: the reiserfs superblock cannot be found on</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> /dev/md6.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> what the version of ReiserFS </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> you use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token plain">-4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain">.x</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">>=</span><span class="token number">3.5</span><span class="token plain">.9 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">introduced </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> the middle of </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">if you use linux </span><span class="token number">2.2</span><span class="token plain">, choose this one</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator"><</span><span class="token plain"> </span><span class="token number">3.5</span><span class="token plain">.9 converted to new </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">don</span><span class="token string" style="color:rgb(255, 121, 198)">'t choose if unsure)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token string" style="color:rgb(255, 121, 198)"> (4) < 3.5.9 (this is very old format, don'</span><span class="token plain">t choose </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> unsure</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">X</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">exit</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **1**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Enter block size </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">4096</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **4096**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> No journal device was specified. </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">If journal is not available,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> re-run with </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">--no-journal-available option specified</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is journal default? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">y</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Did you use resizer</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **n**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: no uuid found, a new uuid was generated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">b0894fe9-3850-4d57-b70b-a419cbf3823e</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: You either have a corrupted journal or have just</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> changed the start of the partition with some partition table</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> editor. If you are sure that the start of the partition is ok,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild the journal header.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to rebuild the journal header? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Reiserfs super block </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> block </span><span class="token number">16</span><span class="token plain"> on 0x906 of </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain"> with</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> standard journal</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Count of blocks on the device: </span><span class="token number">97677824</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Number of bitmaps: </span><span class="token number">2981</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocksize: </span><span class="token number">4096</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Free blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">count of blocks - used </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">journal, bitmaps, data,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reserved</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> blocks</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Root block: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Filesystem is NOT clean</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Tree height: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Hash </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> used to </span><span class="token function" style="color:rgb(80, 250, 123)">sort</span><span class="token plain"> names: not </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Objectid map size </span><span class="token number">0</span><span class="token plain">, max </span><span class="token number">972</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Journal parameters:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Device </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Magic </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Size </span><span class="token number">8193</span><span class="token plain"> blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including </span><span class="token number">1</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> journal header</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">first block </span><span class="token number">18</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max transaction length </span><span class="token number">1024</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max batch size </span><span class="token number">900</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max commit age </span><span class="token number">30</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocks reserved by journal: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Fs state field: 0x1:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> some corruptions exist.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> sb_version: </span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> inode generation number: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> UUID: b0894fe9-3850-4d57-b70b-a419cbf3823e</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> LABEL:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Set flags </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> SB:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is this ok ? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It should be quick. When this completes, hopefully successfully, rerun the <strong>reiserfsck <!-- -->-<!-- -->-check</strong> on the drive, and proceed according to the instructions that it gives you.</p><p><em>-<!-- -->-<!-- -->- work in progress <!-- -->-<!-- -->-<!-- -->-</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-disk-filesystems.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Cache Disk</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Check Harddrive Speed</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-this-the-right-page" class="table-of-contents__link toc-highlight">Is this the right page?</a></li><li><a href="#drive-names-and-symbols" class="table-of-contents__link toc-highlight">Drive names and symbols</a></li><li><a href="#which-section" class="table-of-contents__link toc-highlight">Which section?</a></li><li><a href="#checking-and-fixing-drives-in-the-webgui" class="table-of-contents__link toc-highlight">Checking and fixing drives in the webGui</a><ul><li><a href="#preparing-to-test" class="table-of-contents__link toc-highlight">Preparing to test</a></li><li><a href="#running-the-test" class="table-of-contents__link toc-highlight">Running the test</a></li><li><a href="#running-the-repair" class="table-of-contents__link toc-highlight">Running the repair</a><ul><li><a href="#for-reiserfs-drives" class="table-of-contents__link toc-highlight">For ReiserFS drives</a></li><li><a href="#for-xfs-drives" class="table-of-contents__link toc-highlight">For XFS drives</a></li><li><a href="#for-btrfs-drives-and-pools" class="table-of-contents__link toc-highlight">For BTRFS drives and pools</a></li></ul></li><li><a href="#running-the-repair-continued" class="table-of-contents__link toc-highlight">Running the repair (continued)</a></li><li><a href="#after-the-test-and-repair" class="table-of-contents__link toc-highlight">After the test and repair</a></li><li><a href="#additional-comments" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-xfs" class="table-of-contents__link toc-highlight">Drives formatted with XFS</a><ul><li><a href="#preparing-to-run-xfs_repair" class="table-of-contents__link toc-highlight">Preparing to run xfs_repair</a></li><li><a href="#running-xfs_repair" class="table-of-contents__link toc-highlight">Running xfs_repair</a></li><li><a href="#after-running-xfs_repair" class="table-of-contents__link toc-highlight">After running xfs_repair</a></li><li><a href="#additional-comments-1" class="table-of-contents__link toc-highlight">Additional comments</a></li><li><a href="#redoing-a-drive-formatted-with-xfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with XFS</a></li></ul></li><li><a href="#drives-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Drives formatted with BTRFS</a><ul><li><a href="#experimental-btrfs-recovery" class="table-of-contents__link toc-highlight">Experimental BTRFS recovery</a></li><li><a href="#redoing-a-drive-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with BTRFS</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v5-or-later" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v5 or later</a><ul><li><a href="#preparing-to-run-reiserfsck" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-2" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v4" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v4</a><ul><li><a href="#preparing-to-run-reiserfsck-1" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck-1" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck-1" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-3" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#xfs_repair" class="table-of-contents__link toc-highlight">xfs_repair</a></li><li><a href="#btrfs-scrub" class="table-of-contents__link toc-highlight">btrfs scrub</a></li><li><a href="#reiserfsck" class="table-of-contents__link toc-highlight">reiserfsck</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/check-harddrive-speed/index.html b/es/legacy/FAQ/check-harddrive-speed/index.html index 7c917e7a7..32f21e1da 100644 --- a/es/legacy/FAQ/check-harddrive-speed/index.html +++ b/es/legacy/FAQ/check-harddrive-speed/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -26,7 +26,7 @@ thread</a>. The script creates reports and graphs of drive read speeds, at multiple points across the surface of each drive.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-harddrive-speed.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Checking and fixing file systems</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/console/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Console</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/console/index.html b/es/legacy/FAQ/console/index.html index 6d22b987a..40289306c 100644 --- a/es/legacy/FAQ/console/index.html +++ b/es/legacy/FAQ/console/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -183,7 +183,7 @@ line into <code>/boot/config/go</code> similar to <code>/boot/macros</code>.</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token shebang important">#!/bin/bash</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set dn like Windows dir/o-d, newest files first</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias dn='ls -Aogt --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set ds like dn plus Windows dir/s, newest files first, include all subdirs</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ds='ls -AogtR --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># start tail of syslog with plenty of lines</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias tale='tail -f --lines=200 /var/log/syslog'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># an attempt to emulate the old Norton FF (FileFind)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ff='find . -wholename '/proc' -prune -o -name '"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set screen blanking (if idle for 10 minutes) and monitor to standby (if idle for 30 minutes)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">/bin/setterm -blank </span><span class="token number">10</span><span class="token plain"> -powersave powerdown -powerdown </span><span class="token number">30</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>When these macros are added to <code>/etc/profile</code>, they are available in any console you open, whether by SSH or Telnet or at the physical console on the UnRAID machine.</p><p>UnRAID already includes one macro - <code>v</code> is aliased to <code>ls -l</code>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/console.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Check Harddrive Speed</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#basics-of-console-usage" class="table-of-contents__link toc-highlight">Basics of Console Usage</a></li><li><a href="#console-commands-for-hard-drives" class="table-of-contents__link toc-highlight">Console Commands for Hard Drives</a><ul><li><a href="#hdparm" class="table-of-contents__link toc-highlight">hdparm</a></li><li><a href="#smartctl" class="table-of-contents__link toc-highlight">smartctl</a></li><li><a href="#other-hard-drive-commands" class="table-of-contents__link toc-highlight">other hard drive commands</a></li></ul></li><li><a href="#console-commands-for-networking" class="table-of-contents__link toc-highlight">Console Commands for Networking</a></li><li><a href="#console-commands-for-system-management" class="table-of-contents__link toc-highlight">Console Commands for System Management</a><ul><li><a href="#to-cleanly-stop-the-array-from-the-command-line" class="table-of-contents__link toc-highlight">To cleanly Stop the array from the command line</a></li></ul></li><li><a href="#console-commands-for-files-and-folders" class="table-of-contents__link toc-highlight">Console Commands for Files and Folders</a></li><li><a href="#console-commands-for-system-information" class="table-of-contents__link toc-highlight">Console Commands for System Information</a><ul><li><a href="#cpu-info" class="table-of-contents__link toc-highlight">CPU Info</a></li><li><a href="#memory-info" class="table-of-contents__link toc-highlight">Memory Info</a></li><li><a href="#sensor-info" class="table-of-contents__link toc-highlight">Sensor Info</a></li><li><a href="#network-info" class="table-of-contents__link toc-highlight">Network Info</a></li><li><a href="#other-hardware-info" class="table-of-contents__link toc-highlight">Other Hardware Info</a></li><li><a href="#version-info" class="table-of-contents__link toc-highlight">Version Info</a></li></ul></li><li><a href="#command-macros" class="table-of-contents__link toc-highlight">Command Macros</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/parity-swap-procedure/index.html b/es/legacy/FAQ/parity-swap-procedure/index.html index a62132041..3f2c80428 100644 --- a/es/legacy/FAQ/parity-swap-procedure/index.html +++ b/es/legacy/FAQ/parity-swap-procedure/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -113,7 +113,7 @@ starting and stopping the array one time.</p><ol><li>Stop the array.</li><li>Power down the unit.</li><li>Replace the parity disk with the new bigger one.</li><li>Replace the failed disk with your old parity disk.</li><li>Power up the unit.</li><li>Start the array.</li><li>When you start the array, the system will first copy the parity information to the new parity disk, and then reconstruct the contents of the failed disk.</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/parity-swap-procedure.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/console/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Console</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Replacing a Data Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/replacing-a-data-drive/index.html b/es/legacy/FAQ/replacing-a-data-drive/index.html index 9e5329c03..bfd0f99ce 100644 --- a/es/legacy/FAQ/replacing-a-data-drive/index.html +++ b/es/legacy/FAQ/replacing-a-data-drive/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -54,7 +54,7 @@ array on-line, start Data-Rebuild, and then expand the file system."</li><li>Hefty disk activity and main page will show lots of reading on "the other" disks and writing on new disk as data is being rebuilt.</li><li>End</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-a-data-drive.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/replacing-multiple-data-drives/index.html b/es/legacy/FAQ/replacing-multiple-data-drives/index.html index de6f4e5d6..b1b5d2449 100644 --- a/es/legacy/FAQ/replacing-multiple-data-drives/index.html +++ b/es/legacy/FAQ/replacing-multiple-data-drives/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -61,7 +61,7 @@ slot assignments of the new drive or any other drives at this point.</p></li><li><p>Start array and let parity rebuild.</p></li></ol><p><strong>Important! If any user shares are set to include/exclude specific disks, don't forget to update these settings to reflect the new drive numbering.</strong></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-multiple-data-drives.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Replacing a Data Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#faster-method" class="table-of-contents__link toc-highlight">Faster Method</a></li><li><a href="#safer-method" class="table-of-contents__link toc-highlight">Safer Method</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html b/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html index 4087a790e..1fcea63fc 100644 --- a/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html +++ b/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -108,7 +108,7 @@ If wrong, you may have to select different sensors or <a href="http://linux.die.net/man/5/sensors.conf" target="_blank" rel="noopener noreferrer">customize</a> the <strong>sensors.conf</strong> file.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#setting-up-sensing-for-v6" class="table-of-contents__link toc-highlight">Setting up sensing for v6</a></li><li><a href="#setting-up-sensing-for-older-versions" class="table-of-contents__link toc-highlight">Setting up sensing for older versions</a><ul><li><a href="#step-1-open-a-console" class="table-of-contents__link toc-highlight">Step 1: Open a console</a></li><li><a href="#step-2-run-sensors" class="table-of-contents__link toc-highlight">Step 2: Run sensors</a></li><li><a href="#step-3-note-the-devices" class="table-of-contents__link toc-highlight">Step 3: Note the devices</a></li><li><a href="#step-4-note-the-sensors" class="table-of-contents__link toc-highlight">Step 4: Note the sensors</a></li><li><a href="#step-5-create-sensorsconf" class="table-of-contents__link toc-highlight">Step 5: Create sensors.conf</a></li><li><a href="#step-6-prepare-sensors-detect" class="table-of-contents__link toc-highlight">Step 6: Prepare sensors-detect</a></li><li><a href="#step-7-run-sensors-detect" class="table-of-contents__link toc-highlight">Step 7: Run sensors-detect</a></li><li><a href="#step-8-note-the-drivers" class="table-of-contents__link toc-highlight">Step 8: Note the drivers</a></li><li><a href="#step-9-add-modprobes-to-go" class="table-of-contents__link toc-highlight">Step 9: Add modprobes to go</a></li><li><a href="#step-10-add-the-copy-instruction-to-go" class="table-of-contents__link toc-highlight">Step 10: Add the copy instruction to go</a></li><li><a href="#step-11-reboot-and-check" class="table-of-contents__link toc-highlight">Step 11: Reboot and check</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html b/es/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html index 50ea5d5da..36af59360 100644 --- a/es/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html +++ b/es/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -72,7 +72,7 @@ be lost (unless previously backed up elsewhere.)</p><p>10<!-- -->.<!-- --> Edit 'go' file to call script</p><ul><li>I added the following lines to my go script to initiate the sleep script during boot:</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># Execute s3.sh sleep script</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">fromdos </span><span class="token operator"><</span><span class="token plain"> /boot/custom/bin/s3.sh </span><span class="token operator">|</span><span class="token plain"> at now + </span><span class="token number">1</span><span class="token plain"> minute</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ul><li>Make sure you adjust file directory structure as necessary depending upon where you saved your <strong>s3.sh</strong> script.</li></ul><p>11<!-- -->.<!-- --> Re-boot / test</p><p>Good luck!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Shrink Array</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/shrink-array/index.html b/es/legacy/FAQ/shrink-array/index.html index ddd393abd..f80b57559 100644 --- a/es/legacy/FAQ/shrink-array/index.html +++ b/es/legacy/FAQ/shrink-array/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -147,7 +147,7 @@ write" (sometimes known as "turbo write" because it runs significantly faster) with the following command at the command line </em>after<!-- -->*<!-- --> the array is started:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">mdcmd </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"> md_write_method </span><span class="token number">1</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copiar código al portapapeles" title="Copiar" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/shrink-array.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Terminal Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#for-unraid-v62-and-later" class="table-of-contents__link toc-highlight">For Unraid v6.2 and later</a><ul><li><a href="#the-remove-drives-then-rebuild-parity-method" class="table-of-contents__link toc-highlight">The "Remove Drives Then Rebuild Parity" Method</a></li><li><a href="#the-clear-drive-then-remove-drive-method" class="table-of-contents__link toc-highlight">The "Clear Drive Then Remove Drive" Method</a></li></ul></li><li><a href="#for-unraid-v60-and-61-and-possibly-50" class="table-of-contents__link toc-highlight">For Unraid v6.0 and 6.1 and possibly 5.0</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/terminal-access/index.html b/es/legacy/FAQ/terminal-access/index.html index db2391afc..f3ad309b1 100644 --- a/es/legacy/FAQ/terminal-access/index.html +++ b/es/legacy/FAQ/terminal-access/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -124,7 +124,7 @@ server"</a></li><li><a href="/es/legacy/FAQ/console/">Console</a> - basics of console usage, plus commands for drives, networking, system management, files and folders, and system information</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/terminal-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Shrink Array</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#ssh" class="table-of-contents__link toc-highlight">SSH</a></li><li><a href="#telnet" class="table-of-contents__link toc-highlight">Telnet</a><ul><li><a href="#using-telnet" class="table-of-contents__link toc-highlight">Using Telnet</a></li></ul></li><li><a href="#putty" class="table-of-contents__link toc-highlight">PuTTY</a></li><li><a href="#opening-a-terminal-session-with-the-windows-telnet-tool" class="table-of-contents__link toc-highlight">Opening a terminal session with the Windows Telnet tool</a></li><li><a href="#related-links" class="table-of-contents__link toc-highlight">Related links</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html b/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html index a18cb0c51..e91afe1df 100644 --- a/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html +++ b/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -41,7 +41,7 @@ that have been created as part of this job. This can be rectified by running the 'New Permissions' job from the tools menu in the web admin after the copy process has completed.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Terminal Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#another-method-using-netcat-and-tar" class="table-of-contents__link toc-highlight">Another method using Netcat and Tar</a></li><li><a href="#unicode-issues" class="table-of-contents__link toc-highlight">Unicode issues</a></li><li><a href="#permission-issues-after-copying" class="table-of-contents__link toc-highlight">Permission issues after copying</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/transferring-files-within-the-unraid-server/index.html b/es/legacy/FAQ/transferring-files-within-the-unraid-server/index.html index 94c017a98..5b561e78a 100644 --- a/es/legacy/FAQ/transferring-files-within-the-unraid-server/index.html +++ b/es/legacy/FAQ/transferring-files-within-the-unraid-server/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -74,7 +74,7 @@ structure.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="wildcards">Wildcards<a href="#wildcards" class="hash-link" aria-label="Enlace directo al Wildcards" title="Enlace directo al Wildcards">​</a></h3><p>Wildcards are available as well. For example, if you want to copy all of the files from Disk 2 over to Disk 3, use the <strong>mv</strong> command like this:</p><p><code>mv /mnt/disk2/* /mnt/disk3</code></p><p>In this example, all files and folders on Disk 2 would be relocated over to Disk 3 in the exact same folder structure as it was on Disk 2.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Understanding SMART Reports</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#midnight-commander---easy-to-use-gui-tool" class="table-of-contents__link toc-highlight">Midnight Commander - Easy to Use GUI Tool</a></li><li><a href="#move-files-overnight" class="table-of-contents__link toc-highlight">Move Files Overnight</a></li><li><a href="#unix-commands" class="table-of-contents__link toc-highlight">Unix Commands</a><ul><li><a href="#copying-files" class="table-of-contents__link toc-highlight">Copying files</a></li><li><a href="#moving-files" class="table-of-contents__link toc-highlight">Moving files</a></li><li><a href="#quotes" class="table-of-contents__link toc-highlight">Quotes</a></li><li><a href="#wildcards" class="table-of-contents__link toc-highlight">Wildcards</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/understanding-smart-reports/index.html b/es/legacy/FAQ/understanding-smart-reports/index.html index 6bec7bd68..8b2d494b4 100644 --- a/es/legacy/FAQ/understanding-smart-reports/index.html +++ b/es/legacy/FAQ/understanding-smart-reports/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -217,7 +217,7 @@ MyMain thread; an UnMENU plugin; after installing UnMENU, install this next; has a Smart View that provides color-coded SMART info for all drives</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/understanding-smart-reports.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prologue" class="table-of-contents__link toc-highlight">Prologue</a></li><li><a href="#introduction-to-smart" class="table-of-contents__link toc-highlight">Introduction to SMART</a></li><li><a href="#smart-report-structure" class="table-of-contents__link toc-highlight">SMART report structure</a><ul><li><a href="#general-information-section" class="table-of-contents__link toc-highlight">General information section</a></li><li><a href="#smart-overall-health-test" class="table-of-contents__link toc-highlight">SMART overall health test</a></li><li><a href="#smart-parameters-section" class="table-of-contents__link toc-highlight">SMART parameters section</a></li><li><a href="#smart-attributes-section" class="table-of-contents__link toc-highlight">SMART attributes section</a></li><li><a href="#error-log-section" class="table-of-contents__link toc-highlight">Error Log section</a></li><li><a href="#test-results-section" class="table-of-contents__link toc-highlight">Test results section</a></li></ul></li><li><a href="#table-of-attributes" class="table-of-contents__link toc-highlight">Table of attributes</a><ul><li><a href="#1-raw_read_error_rate" class="table-of-contents__link toc-highlight">1 Raw_Read_Error_Rate</a></li><li><a href="#3-spin_up_time" class="table-of-contents__link toc-highlight">3 Spin_Up_Time</a></li><li><a href="#4-start_stop_count" class="table-of-contents__link toc-highlight">4 Start_Stop_Count</a></li><li><a href="#5-reallocated_sector_ct" class="table-of-contents__link toc-highlight">5 Reallocated_Sector_Ct</a></li><li><a href="#7-seek_error_rate" class="table-of-contents__link toc-highlight">7 Seek_Error_Rate</a></li><li><a href="#9-power_on_hours" class="table-of-contents__link toc-highlight">9 Power_On_Hours</a></li></ul></li><li><a href="#additional-info" class="table-of-contents__link toc-highlight">Additional info</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/legacy/FAQ/usb-flash-drive-preparation/index.html b/es/legacy/FAQ/usb-flash-drive-preparation/index.html index c7b8758ae..c186563fd 100644 --- a/es/legacy/FAQ/usb-flash-drive-preparation/index.html +++ b/es/legacy/FAQ/usb-flash-drive-preparation/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ flash drive, check <a href="http://www.weethet.nl/english/hardware_bootfromusbstick.php" target="_blank" rel="noopener noreferrer">here</a>, near the bottom of the page. Also see -<a href="/es/unraid-os/manual/getting-started.md/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="Enlace directo al If the Flash will not boot, read over the following tips" title="Enlace directo al If the Flash will not boot, read over the following tips">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about +<a href="/es/unraid-os/manual/getting-started/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="Enlace directo al If the Flash will not boot, read over the following tips" title="Enlace directo al If the Flash will not boot, read over the following tips">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about the geometry or configuration of the USB flash drive. Some combinations of motherboard, BIOS, and flash drive do not work, or only work after more advanced 'modifications'. The following tips are what users have @@ -165,7 +165,7 @@ instructions, using Ubuntu or similar, can be found here: <a href="http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/" target="_blank" rel="noopener noreferrer">http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/</a>.</p></li><li><p>And last of all, try upgrading the BIOS of your motherboard. A later BIOS may have better support for booting from USB.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Understanding SMART Reports</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/contribute/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Contribute</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#usb-flash-drives" class="table-of-contents__link toc-highlight">USB Flash Drives</a></li><li><a href="#instructions" class="table-of-contents__link toc-highlight">Instructions</a><ul><li><a href="#windows-xp" class="table-of-contents__link toc-highlight">Windows XP</a></li><li><a href="#windows-vista-and-windows-7" class="table-of-contents__link toc-highlight">Windows Vista and Windows 7</a></li><li><a href="#macos-x" class="table-of-contents__link toc-highlight">MacOS X</a></li></ul></li><li><a href="#booting-unraid-server" class="table-of-contents__link toc-highlight">Booting Unraid Server</a></li><li><a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="table-of-contents__link toc-highlight">If the Flash will not boot, read over the following tips</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/search/index.html b/es/search/index.html index 41fb66e4e..eed96741f 100644 --- a/es/search/index.html +++ b/es/search/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/search/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><h1>Búsqueda en la documentación</h1><form class="row"><div class="col searchQueryColumn_RTkw col--12"><input type="search" name="q" class="searchQueryInput_u2C7" placeholder="Escribe tu búsqueda aquí" aria-label="Buscar" autocomplete="off" autofocus=""></div></form><div class="row"><div class="col col--8 searchResultsColumn_JPFH"></div><div class="col col--4 text--right searchLogoColumn_rJIA"><a target="_blank" rel="noopener noreferrer" href="https://www.algolia.com/" aria-label="Búsqueda por Algolia"><svg viewBox="0 0 168 24" class="algoliaLogo_rT1R"><g fill="none"><path class="algoliaLogoPathFill_WdUC" d="M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"></path><path fill="#5468FF" d="M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"></path><path fill="white" d="M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"></path></g></svg></a></div></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/sitemap.xml b/es/sitemap.xml index 7a2dfa167..b5e830669 100644 --- a/es/sitemap.xml +++ b/es/sitemap.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/es/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/es/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/security/data-encryption/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/security/flash-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/security/good-practices/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/security/secure-webgui-ssl/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/security/vpn/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/shares/create-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/shares/delete-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/shares/disk-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/shares/network-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/shares/user-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/es/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file diff --git a/es/unraid-os/faq/licensing-faq/index.html b/es/unraid-os/faq/licensing-faq/index.html index 1217cb2bd..96a55eca9 100644 --- a/es/unraid-os/faq/licensing-faq/index.html +++ b/es/unraid-os/faq/licensing-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -20,7 +20,7 @@ corner of the page.</p><p>You can also purchase a <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">license activation code directly from our website</a> and redeem the code for a license later when your server is up and running. The activation code will be on -your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="Enlace directo al How to Redeem a License Activation Code" title="Enlace directo al How to Redeem a License Activation Code">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/es/unraid-os/manual/getting-started.md/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) +your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="Enlace directo al How to Redeem a License Activation Code" title="Enlace directo al How to Redeem a License Activation Code">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/es/unraid-os/manual/getting-started/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) For Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key." Select the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile. If you have any issues or questions with the above, there is also a walk through video: <a href="https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2" target="_blank" rel="noopener noreferrer">Activation Code Instructional Video</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-upgrade-my-unraid-license">How do I Upgrade my Unraid License?<a href="#how-do-i-upgrade-my-unraid-license" class="hash-link" aria-label="Enlace directo al How do I Upgrade my Unraid License?" title="Enlace directo al How do I Upgrade my Unraid License?">​</a></h2><p>If you want or need to upgrade your license to a higher tier, upgrades @@ -76,7 +76,7 @@ to them. There will also be an invoice download link upon completion of the checkout.</p><p>For bulk OEM/reseller pricing of 10 licenses or more, <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">please contact us</a>!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/faq/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">FAQ</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates" class="table-of-contents__link toc-highlight">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</a></li><li><a href="#how-do-i-purchase-unraid" class="table-of-contents__link toc-highlight">How do I Purchase Unraid?</a></li><li><a href="#how-to-redeem-a-license-activation-code" class="table-of-contents__link toc-highlight">How to Redeem a License Activation Code</a></li><li><a href="#how-do-i-upgrade-my-unraid-license" class="table-of-contents__link toc-highlight">How do I Upgrade my Unraid License?</a></li><li><a href="#what-does-unlimited-mean-for-trial-and-pro-licenses" class="table-of-contents__link toc-highlight">What does "Unlimited" mean for trial and Pro licenses?</a></li><li><a href="#what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license" class="table-of-contents__link toc-highlight">What Happens if my USB Fails? Do I Have to Repurchase a License?</a></li><li><a href="#how-do-i-manually-install-my-license-keyfile-to-my-usb-flash" class="table-of-contents__link toc-highlight">How do I Manually Install my License keyfile to my USB Flash?</a></li><li><a href="#im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do" class="table-of-contents__link toc-highlight">I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?</a></li><li><a href="#how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have" class="table-of-contents__link toc-highlight">How do I determine what registration type (Basic, Plus, or Pro) I have?</a></li><li><a href="#unraid-os-trial" class="table-of-contents__link toc-highlight">Unraid OS Trial</a><ul><li><a href="#can-i-transfer-my-trial-key-to-a-new-flash-device" class="table-of-contents__link toc-highlight">Can I Transfer my Trial Key to a New Flash Device?</a></li><li><a href="#how-do-i-extend-my-unraid-trial" class="table-of-contents__link toc-highlight">How Do I Extend My Unraid Trial?</a></li></ul></li><li><a href="#im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that" class="table-of-contents__link toc-highlight">I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/faq/os-faq/index.html b/es/unraid-os/faq/os-faq/index.html index b6b0e3040..5e754546b 100644 --- a/es/unraid-os/faq/os-faq/index.html +++ b/es/unraid-os/faq/os-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -43,12 +43,7 @@ able to simply re-assign them all and start the array.</p><p>You may need to reconfigure your shares, users, and other system settings, but your data should be intact.</p><p>If you cannot remember your drive assignments, <a href="https://forums.unraid.net/forum/55-general-support/" target="_blank" rel="noopener noreferrer">please post on the forum for further assistance (under General -Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="Enlace directo al What Should I do if I have Forgotten my Root Password?" title="Enlace directo al What Should I do if I have Forgotten my Root Password?">​</a></h2><p>To reset your <a href="/es/unraid-os/manual/getting-started.md/#connecting-to-the-unraid-webgui">root -password</a>:</p><ol><li>Shutdown your server.</li><li>Plug your USB flash into a laptop or another computer.</li><li>Open the USB folder and delete the files "config/shadow" and -"config/smbpasswd". <em>(DO NOT delete "config/passwd).</em> This will -reset all user passwords, including the root user to blank.</li><li>Now, safely eject your USB and reboot it on your Unraid server and -you’re in. You can then set a new password in the Users tab of the -Unraid webgui.</li></ol><p><em>Important: this process only works for user passwords. If you encrypt +Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="Enlace directo al What Should I do if I have Forgotten my Root Password?" title="Enlace directo al What Should I do if I have Forgotten my Root Password?">​</a></h2><p>See <a href="/es/unraid-os/manual/troubleshooting/#lost-root-password">Lost Root Password</a></p><p><em>Important: this process only works for user passwords. If you encrypt your drives and forget this password, unfortunately you are hosed. There is no way for Lime Technology or anyone to recover this password. Please remember it or write it down in a secure, locked place!</em></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?<a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="hash-link" aria-label="Enlace directo al How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?" title="Enlace directo al How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?">​</a></h2><ol><li>Ensure there is no data on the system that you want or need.</li><li>Stop the array and shut down the server.</li><li>Remove the USB flash device.</li><li>Using a Windows or Mac computer, reformat the flash using the USB @@ -114,7 +109,7 @@ each time to perform the swap and rebuilds. This will ensure the devices are not written during the process. At the end of the process, the original storage device should be intact.</p><p>Also highly recommend downloading flash backup: Main/Flash/Flash Backup</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Licensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Cómo Canjear un Código de Activación de Licencia</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#i-need-help-with-a-build--system-configuration-where-do-i-go" class="table-of-contents__link toc-highlight">I Need Help with a Build / System Configuration. Where do I go?</a></li><li><a href="#does-unraid-support-hardware-based-raid-controllers" class="table-of-contents__link toc-highlight">Does Unraid Support Hardware-based RAID Controllers?</a></li><li><a href="#can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms" class="table-of-contents__link toc-highlight">Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?</a></li><li><a href="#my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration" class="table-of-contents__link toc-highlight">My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?</a></li><li><a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="table-of-contents__link toc-highlight">What Should I do if I have Forgotten my Root Password?</a></li><li><a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="table-of-contents__link toc-highlight">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?</a></li><li><a href="#whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do" class="table-of-contents__link toc-highlight">Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?</a></li><li><a href="#how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device" class="table-of-contents__link toc-highlight">How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?</a></li><li><a href="#whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports" class="table-of-contents__link toc-highlight">What's the best way to add more storage to a system above what the built-in controller supports?</a></li><li><a href="#does-unraid-support-various-raid-types-such-as-raid15610" class="table-of-contents__link toc-highlight">Does Unraid support various RAID types such as RAID1/5/6/10?</a></li><li><a href="#my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support" class="table-of-contents__link toc-highlight">My system is crashing but my logs don't contain the event. What do I do to obtain support?</a></li><li><a href="#is-there-any-way-to-disable-the-br0-bridge" class="table-of-contents__link toc-highlight">Is there any way to disable the br0 bridge?</a></li><li><a href="#how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method" class="table-of-contents__link toc-highlight">How do I enable UEFI boot mode if I configured my flash device using the manual method?</a></li><li><a href="#im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine" class="table-of-contents__link toc-highlight">I'm having problems passing through my RTX-class GPU to a virtual machine</a></li><li><a href="#does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them" class="table-of-contents__link toc-highlight">Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?</a></li><li><a href="#i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that" class="table-of-contents__link toc-highlight">I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/faq/redeem-license-activation-code/index.html b/es/unraid-os/faq/redeem-license-activation-code/index.html index d004c1465..ba8695fd1 100644 --- a/es/unraid-os/faq/redeem-license-activation-code/index.html +++ b/es/unraid-os/faq/redeem-license-activation-code/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -23,7 +23,7 @@ código de activación e ingrese el código de activación para completar el proceso de activación. ¡Su clave de registro le será enviada por correo electrónico con instrucciones para la instalación!</p></li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/faq/redeem-license-activation-code.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Unraid Account</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/faq/unraid-account/index.html b/es/unraid-os/faq/unraid-account/index.html index 792124276..faeb52105 100644 --- a/es/unraid-os/faq/unraid-account/index.html +++ b/es/unraid-os/faq/unraid-account/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -21,7 +21,7 @@ <a href="/es/connect/about/">Unraid Connect</a>. This account is <em>not the same</em> as your server's root password that you use to login to the Unraid webgui.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/unraid-account.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Cómo Canjear un Código de Activación de Licencia</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/guides/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Guides</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-an-unraidnet-account" class="table-of-contents__link toc-highlight">What is an Unraid.net Account?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/guides/configuring-time-machine/index.html b/es/unraid-os/guides/configuring-time-machine/index.html index 29ab6e5ce..335a90680 100644 --- a/es/unraid-os/guides/configuring-time-machine/index.html +++ b/es/unraid-os/guides/configuring-time-machine/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -59,7 +59,7 @@ there, simply follow the instructions above!</p><p>For more info on Time Machine shares, be sure to also check out Space Invader One's excellent video on <a href="https://www.youtube.com/watch?v=5J955nNIdo0&feature=youtu.be" target="_blank" rel="noopener noreferrer">Unraid Shares and MacOS!</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/configuring-time-machine.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/guides/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Guides</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#guide-setting-up-a-time-machine-share-on-your-unraid-server" class="table-of-contents__link toc-highlight">Guide: Setting up a Time Machine Share on your Unraid Server</a></li><li><a href="#create-a-time-machine-backup-on-your-unraid-server" class="table-of-contents__link toc-highlight">Create a Time Machine Backup on your Unraid Server</a></li><li><a href="#unraid-and-time-machine-setup" class="table-of-contents__link toc-highlight">Unraid and Time Machine Setup</a></li><li><a href="#creating-multiple-time-machine-shares-for-different-peoplemacs" class="table-of-contents__link toc-highlight">Creating Multiple Time Machine Shares for Different People/Macs</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/guides/wol-setup-for-unraid/index.html b/es/unraid-os/guides/wol-setup-for-unraid/index.html index e419b2452..41d3cee21 100644 --- a/es/unraid-os/guides/wol-setup-for-unraid/index.html +++ b/es/unraid-os/guides/wol-setup-for-unraid/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/guides/"><span itemprop="name">Guides</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">How To Setup Wake On LAN (WOL) for UNRAID</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>How To Setup Wake On LAN (WOL) for UNRAID</h1><p>(assuming onboard NIC and WOL activated in motherboard's BIOS)</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="put-to-sleep">Put to sleep<a href="#put-to-sleep" class="hash-link" aria-label="Enlace directo al Put to sleep" title="Enlace directo al Put to sleep">​</a></h2><ol><li>Webterminal or SSH into server</li><li>Type <code>ifconfig</code> and note IP-address and MAC-Address (ether) of used NIC</li><li>Type <code>ethtool -s eth0 wol g</code></li><li>Type <code>echo -n mem > /sys/power/state</code></li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wake-up-using">Wake up using<a href="#wake-up-using" class="hash-link" aria-label="Enlace directo al Wake up using" title="Enlace directo al Wake up using">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="macos--linux--windows">MacOS / Linux / Windows<a href="#macos--linux--windows" class="hash-link" aria-label="Enlace directo al MacOS / Linux / Windows" title="Enlace directo al MacOS / Linux / Windows">​</a></h3><ol><li>Download "MiniWOL2" from <a href="https://www.tweaking4all.com/home-theatre/miniwol2/" target="_blank" rel="noopener noreferrer">https://www.tweaking4all.com/home-theatre/miniwol2/</a> and install</li><li>Click miniicon, push "Add" button and name the device to wake (Alias in Menu)</li><li>Set "IPv4 Address" (manually or select from ARP List) and "MAC-Address" (manually or click on 'detect') in appropriate fields</li><li>Set "Broadcast" 255.255.255.255</li><li>Push "Test" to wake-up device (needs to be in sleep mode: see above)</li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="windows-alternative">Windows: (ALTERNATIVE)<a href="#windows-alternative" class="hash-link" aria-label="Enlace directo al Windows: (ALTERNATIVE)" title="Enlace directo al Windows: (ALTERNATIVE)">​</a></h3><ol><li>Download "wolcmd.exe" from <a href="https://www.depicus.com/wake-on-lan/wake-on-lan-cmd" target="_blank" rel="noopener noreferrer">https://www.depicus.com/wake-on-lan/wake-on-lan-cmd</a> and unpack</li><li>Open command line prompt and cd to dowload directory</li><li>Type <code>wolcmd.exe <ether> <ip-dest> 255.255.255.255</code></li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="linux-alternative">Linux: (ALTERNATIVE)<a href="#linux-alternative" class="hash-link" aria-label="Enlace directo al Linux: (ALTERNATIVE)" title="Enlace directo al Linux: (ALTERNATIVE)">​</a></h3><ol><li>Type <code>wakeonlan <MAC-Address></code> OR</li><li>Type <code>wol <MAC-Address></code></li></ol><p>For Guide assistance, see: <a href="https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/" target="_blank" rel="noopener noreferrer">https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/wol-setup-for-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Apple Time Machine</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/manual/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Manual</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#put-to-sleep" class="table-of-contents__link toc-highlight">Put to sleep</a></li><li><a href="#wake-up-using" class="table-of-contents__link toc-highlight">Wake up using</a><ul><li><a href="#macos--linux--windows" class="table-of-contents__link toc-highlight">MacOS / Linux / Windows</a></li><li><a href="#windows-alternative" class="table-of-contents__link toc-highlight">Windows: (ALTERNATIVE)</a></li><li><a href="#linux-alternative" class="table-of-contents__link toc-highlight">Linux: (ALTERNATIVE)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/additional-settings/index.html b/es/unraid-os/manual/additional-settings/index.html index 82149f998..d03b2a74c 100644 --- a/es/unraid-os/manual/additional-settings/index.html +++ b/es/unraid-os/manual/additional-settings/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to further refine your setup by customizing your IP address, hostname, disk tunables, and other settings. This section goes over the various settings you can configure from the Unraid webGui. All settings controls @@ -65,7 +65,7 @@ workgroup, or even join an active directory domain.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="ftp-file-transfer-protocol">FTP (File Transfer Protocol)<a href="#ftp-file-transfer-protocol" class="hash-link" aria-label="Enlace directo al FTP (File Transfer Protocol)" title="Enlace directo al FTP (File Transfer Protocol)">​</a></h2><p>Users can connect via FTP if they are added to the <strong>FTP user(s)</strong> field on this page. If no users are added, the FTP service will not be started.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="syslog">Syslog<a href="#syslog" class="hash-link" aria-label="Enlace directo al Syslog" title="Enlace directo al Syslog">​</a></h2><p>Users can set up logging of the syslog to permanent storage</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wireguard">WireGuard<a href="#wireguard" class="hash-link" aria-label="Enlace directo al WireGuard" title="Enlace directo al WireGuard">​</a></h2><p>WireGuard VPN Server</p><p>Users can set up a VPN connection using -<a href="/es/unraid-os/manual/security/#wireguard%22">WireGuard</a> for secure connections +<a href="/es/unraid-os/manual/additional-settings/security.md/#wireguard%22">WireGuard</a> for secure connections to/from the internet</p><p><a href="https://www.wireguard.com/" target="_blank" rel="noopener noreferrer">"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="confirmations">Confirmations<a href="#confirmations" class="hash-link" aria-label="Enlace directo al Confirmations" title="Enlace directo al Confirmations">​</a></h2><p>From here, you can disable the need for confirmations to perform various tasks.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="display-settings">Display Settings<a href="#display-settings" class="hash-link" aria-label="Enlace directo al Display Settings" title="Enlace directo al Display Settings">​</a></h2><p>Customize the appearance of the Unraid webGui from this page. This includes adjusting the date and time format, number format, toggles for @@ -121,7 +121,7 @@ <strong>Scheduler</strong> settings page of the Unraid GUI. Typically they are related to enhancing/tuning the <strong>Parity Check</strong> or <strong>Mover</strong> functionality although this is not mandated.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Troubleshooting</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Changing the Flash Device</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#cpu-isolation" class="table-of-contents__link toc-highlight">CPU Isolation</a></li><li><a href="#date--time" class="table-of-contents__link toc-highlight">Date & Time</a></li><li><a href="#disk-settings" class="table-of-contents__link toc-highlight">Disk Settings</a></li><li><a href="#docker" class="table-of-contents__link toc-highlight">Docker</a></li><li><a href="#identification" class="table-of-contents__link toc-highlight">Identification</a></li><li><a href="#network-settings" class="table-of-contents__link toc-highlight">Network Settings</a></li><li><a href="#global-share-settings" class="table-of-contents__link toc-highlight">Global Share Settings</a></li><li><a href="#ups-settings" class="table-of-contents__link toc-highlight">UPS Settings</a></li><li><a href="#vm-manager" class="table-of-contents__link toc-highlight">VM Manager</a></li><li><a href="#afp-apple-file-protocol" class="table-of-contents__link toc-highlight">AFP (Apple File Protocol)</a></li><li><a href="#nfs-network-file-system" class="table-of-contents__link toc-highlight">NFS (Network File System)</a></li><li><a href="#smb-server-message-block" class="table-of-contents__link toc-highlight">SMB (Server Message Block)</a></li><li><a href="#ftp-file-transfer-protocol" class="table-of-contents__link toc-highlight">FTP (File Transfer Protocol)</a></li><li><a href="#syslog" class="table-of-contents__link toc-highlight">Syslog</a></li><li><a href="#wireguard" class="table-of-contents__link toc-highlight">WireGuard</a></li><li><a href="#confirmations" class="table-of-contents__link toc-highlight">Confirmations</a></li><li><a href="#display-settings" class="table-of-contents__link toc-highlight">Display Settings</a></li><li><a href="#notifications-settings" class="table-of-contents__link toc-highlight">Notifications Settings</a></li><li><a href="#scheduler" class="table-of-contents__link toc-highlight">Scheduler</a><ul><li><a href="#parity-checks-read-checks" class="table-of-contents__link toc-highlight">Parity Checks (Read Checks)</a><ul><li><a href="#notes" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#mover" class="table-of-contents__link toc-highlight">Mover</a><ul><li><a href="#notes-1" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#other" class="table-of-contents__link toc-highlight">Other</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/applications/index.html b/es/unraid-os/manual/applications/index.html index 053aa10a9..00a009b8c 100644 --- a/es/unraid-os/manual/applications/index.html +++ b/es/unraid-os/manual/applications/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or extending the base capabilities. One of the great strengths of Unraid is the ability for it to easily be made to function as more than a basic NAS system.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Enlace directo al Overview" title="Enlace directo al Overview">​</a></h2><p>A number of mechanisms are provided by which the capability of an Unraid @@ -236,8 +236,8 @@ Unraid. The port to be used for such clients is displayed in the Unraid GUI on the VM tab when a VM is running. Using such an alternative client can work in cases where the NoVNC client does -not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/multi-language/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Multi-Language Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/security/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Security</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/changing-the-flash-device/index.html b/es/unraid-os/manual/changing-the-flash-device/index.html index 988495c06..ed277f015 100644 --- a/es/unraid-os/manual/changing-the-flash-device/index.html +++ b/es/unraid-os/manual/changing-the-flash-device/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a PC or Mac, you should use the <a href="https://unraid.net/download" target="_blank" rel="noopener noreferrer">USB Flash Creator tool</a> for the easiest and most streamlined experience.</p><p>Alternatively, if you are using a Linux system or if the USB Flash @@ -147,7 +147,7 @@ include/exclude then you will need to look at the contents of the individual data drives to make sure these are as you want them (and correct them if not).</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/changing-the-flash-device.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/additional-settings/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Additional Settings</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/category/getting-started/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Getting Started</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-replace-your-usb-flash-boot-device" class="table-of-contents__link toc-highlight">Why replace your USB Flash boot device?</a></li><li><a href="#what-if-i-cant-backup-my-device" class="table-of-contents__link toc-highlight">What if I can't backup my device?</a></li><li><a href="#changing-a-flash-device-before-purchasing" class="table-of-contents__link toc-highlight">Changing a Flash Device Before Purchasing</a></li><li><a href="#using-the-flash-creator" class="table-of-contents__link toc-highlight">Using the Flash Creator</a></li><li><a href="#manual-method" class="table-of-contents__link toc-highlight">Manual Method</a></li><li><a href="#notes-about-replacing-your-registration-key" class="table-of-contents__link toc-highlight">Notes About Replacing your Registration Key</a></li><li><a href="#warning-on-sandisk-brand-usbs" class="table-of-contents__link toc-highlight">Warning on Sandisk Brand USBs</a></li><li><a href="#what-to-do-if-you-have-no-backup-and-do-not-know-your-disk-assignments" class="table-of-contents__link toc-highlight">What to do if you have no backup and do not know your disk assignments</a><ul><li><a href="#option-1" class="table-of-contents__link toc-highlight">Option 1</a></li><li><a href="#option-2-if-you-have-the-unassigned-devices-plugin-installed" class="table-of-contents__link toc-highlight">Option 2 If you have the Unassigned Devices plugin installed</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/docker-management/index.html b/es/unraid-os/manual/docker-management/index.html index 1cb58c89b..d44ae2767 100644 --- a/es/unraid-os/manual/docker-management/index.html +++ b/es/unraid-os/manual/docker-management/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application with its own isolated operating Linux environment, isolating compatibility or coexistence conflicts with other applications. If you want more information on docker and its underlying technology than is @@ -246,8 +246,8 @@ useful for testing out alternate versions before upgrading.</li><li>Click the <strong>Advanced View</strong> toggle on the top right when viewing the Docker page or adding applications to see additional configuration options.</li><li>Learn more about Docker containers from our <a href="https://forums.unraid.net/forum/47-docker-containers/" target="_blank" rel="noopener noreferrer">helpful user -community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Shares</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/storage-management/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Storage Management</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/getting-started/index.html b/es/unraid-os/manual/getting-started/index.html index 3857e074a..5567d92d9 100644 --- a/es/unraid-os/manual/getting-started/index.html +++ b/es/unraid-os/manual/getting-started/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/manual-install-method/">Manual Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/manual-install-method/">Manual Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, boot the system, and configure your first array. The entire process should take less than 15 minutes.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Enlace directo al Prerequisites" title="Enlace directo al Prerequisites">​</a></h2><p>Before we begin:</p><ul><li>You should have your server assembled and connected via power and Ethernet.</li><li>You should have a monitor and keyboard attached for the initial @@ -113,7 +113,7 @@ field.</p><p>It is <strong>strongly</strong> recommended that you make use of this feature as the information available via that route is likely to be more extensive and up-to-date than any documentation.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="security-best-practices">Security Best Practices<a href="#security-best-practices" class="hash-link" aria-label="Enlace directo al Security Best Practices" title="Enlace directo al Security Best Practices">​</a></h3><p>Your Unraid server is likely to end up containing data that is valuable -to you so it can be a good idea to review the <a href="/es/unraid-os/manual/security/">Security Good +to you so it can be a good idea to review the <a href="/es/unraid-os/manual/security.md/">Security Good Practices</a> part of the documentation to ensure you are not doing something that may leave your system open to attack while leaving your valuable data at risk.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="advanced-bios-configuration-guide">Advanced BIOS Configuration Guide<a href="#advanced-bios-configuration-guide" class="hash-link" aria-label="Enlace directo al Advanced BIOS Configuration Guide" title="Enlace directo al Advanced BIOS Configuration Guide">​</a></h2><p><img loading="lazy" src="/es/assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg" width="300" height="187" class="img_ev3q"> @@ -207,7 +207,7 @@ can click for a 15 day extension. You can do this a total of two times before you must decide if you would like to purchase Unraid or not.</p><p><em>Note: You cannot change the USB flash device for Unraid Trials if you wish to continue where you left off.</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/category/getting-started/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/getting-started/manual-install-method/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Manual Method</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#quick-install-guide" class="table-of-contents__link toc-highlight">Quick Install Guide</a></li><li><a href="#initial-setup" class="table-of-contents__link toc-highlight">Initial Setup</a><ul><li><a href="#connecting-to-the-unraid-webgui" class="table-of-contents__link toc-highlight">Connecting to the Unraid webGui</a></li></ul></li><li><a href="#setting-a-root-password" class="table-of-contents__link toc-highlight">Setting a Root Password</a><ul><li><a href="#registering-and-installing-your-key" class="table-of-contents__link toc-highlight">Registering and Installing Your Key</a></li></ul></li><li><a href="#utilizing-unraid-connect" class="table-of-contents__link toc-highlight">Utilizing Unraid Connect</a></li><li><a href="#assigning-devices-to-the-array-and-pools" class="table-of-contents__link toc-highlight">Assigning Devices to the Array and Pool(s)</a></li><li><a href="#starting-the-array-and-formatting-your-devices" class="table-of-contents__link toc-highlight">Starting the Array and Formatting Your Devices</a></li><li><a href="#stopping-array-shutting-down-and-rebooting" class="table-of-contents__link toc-highlight">Stopping Array, Shutting Down, and Rebooting</a></li><li><a href="#important-considerations" class="table-of-contents__link toc-highlight">Important Considerations</a><ul><li><a href="#backing-up-the-flash-drive" class="table-of-contents__link toc-highlight">Backing Up the Flash Drive</a></li><li><a href="#using-the-built-in-help" class="table-of-contents__link toc-highlight">Using the built-in help</a></li><li><a href="#security-best-practices" class="table-of-contents__link toc-highlight">Security Best Practices</a></li></ul></li><li><a href="#advanced-bios-configuration-guide" class="table-of-contents__link toc-highlight">Advanced BIOS Configuration Guide</a></li><li><a href="#boot-mode-selector-syslinux" class="table-of-contents__link toc-highlight">Boot Mode Selector (Syslinux)</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a></li><li><a href="#faq" class="table-of-contents__link toc-highlight">F.A.Q</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/getting-started/manual-install-method/index.html b/es/unraid-os/manual/getting-started/manual-install-method/index.html index d76007353..164cb1b63 100644 --- a/es/unraid-os/manual/getting-started/manual-install-method/index.html +++ b/es/unraid-os/manual/getting-started/manual-install-method/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/getting-started/manual-install-method/">Manual Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Method</h1><p>Método manual</p><p>Si por alguna razón no se puede usar la herramienta USB Flash Creator o no se detecta su dispositivo USB flash, es posible formatear y preparar manualmente un dispositivo USB flash de arranque. dispositivo. Nota: este método solo funciona para dispositivos de 32 GB y más pequeños.</p><ol><li>Conecte el dispositivo flash USB a su Mac o PC.</li><li>Formatee el USB usando el sistema de archivos FAT (o FAT32). No debe ser ex-FAT. Si su USB tiene más de 32 GB, entonces necesita usar una herramienta de terceros (por ejemplo, Rufus) para formatearlo en FAT32, ya que Windows no ofrece esta opción en unidades de más de 32 GB.</li><li>Establezca la "etiqueta de volumen" (Volume Label) en UNRAID (distingue entre mayúsculas y minúsculas, use todo en mayúsculas).</li><li>Vaya a <a href="https://unraid.net/es/descargar" target="_blank" rel="noopener noreferrer">la página de descargas</a> para obtener el archivo zip de la versión que desea usar.</li><li>Elija una versión y descárguela en una ubicación temporal en su computadora/ordenador (por ejemplo, una carpeta de "descargas").</li><li>Extraer el contenido del archivo ZIP se acaba de descargar en su dispositivo flash USB.</li><li>Busque el dispositivo flash USB para ver el contenido recién extraído de su Mac o PC.</li><li>Ejecute el script de arranque apropiado para el sistema operativo que está utilizando.</li></ol><p><strong>Windows 7 o posterior</strong></p><ul><li>haga clic derecho en el archivo make_bootable y seleccione: Ejecutar como administrador</li><li><strong>Mac</strong><ul><li>haga doble clic en el archivo make_bootable_mac e ingrese su contraseña de administrador cuando se le solicite.</li></ul></li><li><strong>Linux</strong>:<ul><li>copie el archivo make_bootable_linux en el disco duro</li><li>desmontar (no expulsar) la unidad USB</li><li>ejecute el siguiente comando desde donde lo desempaquetó en su sistema Linux:</li></ul></li></ul><p>sudo bash ./make_bootable_linux</p><ul><li>NOTA: Durante el proceso de ejecución de este script, el dispositivo flash puede parecer a desaparecer y reaparecer en su estación de trabajo un par de veces - este comportamiento se espera.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/security/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Security</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/getting-started/manual-install-method/">Manual Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Method</h1><p>Método manual</p><p>Si por alguna razón no se puede usar la herramienta USB Flash Creator o no se detecta su dispositivo USB flash, es posible formatear y preparar manualmente un dispositivo USB flash de arranque. dispositivo. Nota: este método solo funciona para dispositivos de 32 GB y más pequeños.</p><ol><li>Conecte el dispositivo flash USB a su Mac o PC.</li><li>Formatee el USB usando el sistema de archivos FAT (o FAT32). No debe ser ex-FAT. Si su USB tiene más de 32 GB, entonces necesita usar una herramienta de terceros (por ejemplo, Rufus) para formatearlo en FAT32, ya que Windows no ofrece esta opción en unidades de más de 32 GB.</li><li>Establezca la "etiqueta de volumen" (Volume Label) en UNRAID (distingue entre mayúsculas y minúsculas, use todo en mayúsculas).</li><li>Vaya a <a href="https://unraid.net/es/descargar" target="_blank" rel="noopener noreferrer">la página de descargas</a> para obtener el archivo zip de la versión que desea usar.</li><li>Elija una versión y descárguela en una ubicación temporal en su computadora/ordenador (por ejemplo, una carpeta de "descargas").</li><li>Extraer el contenido del archivo ZIP se acaba de descargar en su dispositivo flash USB.</li><li>Busque el dispositivo flash USB para ver el contenido recién extraído de su Mac o PC.</li><li>Ejecute el script de arranque apropiado para el sistema operativo que está utilizando.</li></ol><p><strong>Windows 7 o posterior</strong></p><ul><li>haga clic derecho en el archivo make_bootable y seleccione: Ejecutar como administrador</li><li><strong>Mac</strong><ul><li>haga doble clic en el archivo make_bootable_mac e ingrese su contraseña de administrador cuando se le solicite.</li></ul></li><li><strong>Linux</strong>:<ul><li>copie el archivo make_bootable_linux en el disco duro</li><li>desmontar (no expulsar) la unidad USB</li><li>ejecute el siguiente comando desde donde lo desempaquetó en su sistema Linux:</li></ul></li></ul><p>sudo bash ./make_bootable_linux</p><ul><li>NOTA: Durante el proceso de ejecución de este script, el dispositivo flash puede parecer a desaparecer y reaparecer en su estación de trabajo un par de veces - este comportamiento se espera.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/tools/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Tools</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/multi-language/index.html b/es/unraid-os/manual/multi-language/index.html index 2cc5aab8c..051b8c4f3 100644 --- a/es/unraid-os/manual/multi-language/index.html +++ b/es/unraid-os/manual/multi-language/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/es/assets/js/runtime~main.2fc7ff6e.js" as="script"> -<link rel="preload" href="/es/assets/js/main.284febb9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/es/opensearch.xml"><link rel="stylesheet" href="/es/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/es/assets/js/runtime~main.d7bdb25b.js" as="script"> +<link rel="preload" href="/es/assets/js/main.62fd37dd.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Enlace directo al Introduction" title="Enlace directo al Introduction">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> +<div role="region" aria-label="Saltar al contenido principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Saltar al contenido principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Cerrar" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/es/"><div class="navbar__logo"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/es/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Español</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently dark mode)" aria-label="Switch between dark and light mode (currently dark mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Buscar"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Buscar</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Volver al principio" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/es/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/es/category/unraid-os/">Unraid OS</a><button aria-label="Toggle the collapsible sidebar category 'Unraid OS'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/release-notes/">Release Notes</a><button aria-label="Toggle the collapsible sidebar category 'Release Notes'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/faq/">FAQ</a><button aria-label="Toggle the collapsible sidebar category 'FAQ'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/guides/">Guides</a><button aria-label="Toggle the collapsible sidebar category 'Guides'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/es/category/manual/">Manual</a><button aria-label="Toggle the collapsible sidebar category 'Manual'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/shares/">Shares</a><button aria-label="Toggle the collapsible sidebar category 'Shares'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/unraid-os/manual/security/">Security</a><button aria-label="Toggle the collapsible sidebar category 'Security'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/es/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/getting-started/">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/es/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/es/category/zfs/">ZFS</a><button aria-label="Toggle the collapsible sidebar category 'ZFS'" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/unraid-connect/">Unraid Connect</a><button aria-label="Toggle the collapsible sidebar category 'Unraid Connect'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Toggle the collapsible sidebar category 'Legacy Documentation'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/es/category/contribute/">Contribute</a><button aria-label="Toggle the collapsible sidebar category 'Contribute'" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/es/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/es/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">En esta página</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Enlace directo al Introduction" title="Enlace directo al Introduction">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> introduced the mechanism to <a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">support multiple languages</a> in the Unraid webGUI.</p><p>You can now download, install, and use the Unraid OS in the following @@ -53,8 +53,8 @@ forums</a> to get help or help others in your mother tongue.</p><p>Please see the <a href="https://forums.unraid.net/forum/75-multi-language-section/" target="_blank" rel="noopener noreferrer">Multi-Language Section</a> to -take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/applications/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">Community Applications</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/es/assets/js/runtime~main.2fc7ff6e.js"></script> -<script src="/es/assets/js/main.284febb9.js"></script> +take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Editar esta página</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Página del documento"><a class="pagination-nav__link pagination-nav__link--prev" href="/es/unraid-os/manual/security/vpn/"><div class="pagination-nav__sublabel">Anterior</div><div class="pagination-nav__label">VPN</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/es/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Siguiente</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/es/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/es/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/es/assets/js/runtime~main.d7bdb25b.js"></script> +<script src="/es/assets/js/main.62fd37dd.js"></script> </body> </html> \ No newline at end of file diff --git a/es/unraid-os/manual/security/data-encryption/index.html b/es/unraid-os/manual/security/data-encryption/index.html new file mode 100644 index 000000000..ac3589481 --- /dev/null +++ b/es/unraid-os/manual/security/data-encryption/index.html @@ -0,0 +1,22 @@ +<!doctype html> +<html lang="es" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-unraid-os/manual/security/data-encryption"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.4.1"> +<title data-rh="true">Data Encryption | Unraid Docs + + + + + + + + + + +

    +

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly.

    The home page for LUKS can be found here

    Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives.


    To encrypt a drive (Note that this will erase any content already on the drive).

    1. Go to the Main tab.
    2. Stop the array.
    3. Select the drive.
    4. In File system type change the file system to the encrypted type that you want.
    5. Select Apply to commit the change.
    6. Select Done to return to the Main tab. The drive will now show as unmountable and the option to format unmountable drives will be present.
    7. Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.

    Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted.

    caution

    Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/security/flash-drive/index.html b/es/unraid-os/manual/security/flash-drive/index.html new file mode 100644 index 000000000..2c1559474 --- /dev/null +++ b/es/unraid-os/manual/security/flash-drive/index.html @@ -0,0 +1,22 @@ + + + + + +Flash Drive | Unraid Docs + + + + + + + + + + +
    +

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.

    Backups

    If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change.

    You can easily achieve this from the Unraid webGUI:

    1. Select the flash drive on the Main tab.
    2. In the Flash Device Settings section select the Flash Backup button.
    3. The system will now create a ZIP file that is a backup of the contents of the flash drive.
    4. When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason, use this backup as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the Main tab.

    • *Network visibility: You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location.

    There are a few ways to handle this:

    1. Copy the files to a location from which they can be executed.

      • The location /usr/local/bin is a good choice if you want the files on the default search path.
      • You can copy the files into position when booting by adding appropriate commands to the config/go file on the flash drive.
      • Give the files execute permission after copying them.
    2. For scripts, prefix the script name with the command that runs the script (e.g. bash path-to-script).

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/security/good-practices/index.html b/es/unraid-os/manual/security/good-practices/index.html new file mode 100644 index 000000000..223c6056d --- /dev/null +++ b/es/unraid-os/manual/security/good-practices/index.html @@ -0,0 +1,26 @@ + + + + + +Good Practices | Unraid Docs + + + + + + + + + + +
    +

    Good Practices

    We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.

    #1 Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the Users tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI.

    tip

    There is a plugin available in Community Apps called Dynamix Password Validator. This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in.

    You could also use this webpage to get a very quick assessment of the strength of any specific password.

    #2 Review port mappings on your router

    Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk.

    Here are just a few ports you should be extra careful with when forwarding:

    • Port 80: Used to access the webGUI without SSL - unless you've rebound access to another port on the Management Access settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you're doing. If you want to make the webGUI remotely accessible, install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.
    • Port 443: Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the Unraid Connect plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate. +Consider making life easier for yourself and utilize the Unraid Connect plugin to enable simple, safe, and secure remote access to your Unraid systems.
    • Port 445: Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a WireGuard VPN to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this.
    • Port 111/2049: Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS.
    • Port 22/23: Used by Telnet and SSH for console access. +Especially dangerous for users that don't have a root password set. +Similar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols.
    • Ports in the 57xx range: These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the Unraid Connect plugin. +This ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.
    tip

    Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.

    #3 Never put your server in your network's DMZ

    We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.

    Never, ever, do this.

    #4 Set security on your shares to private

    The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares.

    #5 Don't expose the flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents.

    #6 Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to Tools > Update OS to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the Settings > Notifications page.

    #7 Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet.

    A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used.

    An alternative for making the webGUI remotely accessible is to install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/security/index.html b/es/unraid-os/manual/security/index.html index 1bcac37d5..86ed0e48d 100644 --- a/es/unraid-os/manual/security/index.html +++ b/es/unraid-os/manual/security/index.html @@ -1,535 +1,22 @@ - + -Security | Unraid Docs +Security | Unraid Docs - - - + + +
    -

    Security

    This section covers various security-related aspects of Unraid

    Good Practices

    An Unraid server is likely to contain data that is sensitive or that a -user would hate to lose. Since most users will have their home network -connected to the internet then precautions should be taken to avoid an -Unraid server being compromised by malicious actors trying to access -them remotely.

    The following simple guidelines will help avoid many common pitfalls -that some user encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are -safe.

    There is also a forum -thread -that discusses this topic.

    Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by -default. This is to ensure you can quickly and easily access the -management console immediately after initial installation. However, this -doesn't mean you shouldn't set one. Doing this is simple. Just -navigate to the Users tab and click on root. Now set a password. From -then on, you will be required to authenticate anytime you attempt to -login to the webGui.

    In addition, there is a plugin available in Community Apps called -Dynamix Password Validator. This plugin will provide guidance on how -strong of a password you're creating based on complexity rules (how -many capital vs. lowercase letters, numbers, symbols, and overall -password length are used to judge this). Consider installing this for -extra guidance on password strength. Once installed it is available in -the settings for any user to give guidance on the strength of any -password you type in.

    You could also use this web -page to get a very quick -assessment of the strength of any specific password.

    Review port mappings on your router

    Forwarding ports to your server is required for specific services that -you want to be Internet-accessible such as Plex, FTP servers, game -servers, VoIP servers, etc. But forwarding the wrong ports can expose -your server to significant security risk. Here are just a few ports you -should be extra careful with when forwarding:

    • Port 80: Used to access the webGui without SSL (unless you've -rebound access to another port on the Management Access settings -page). Forwarding this port by default will allow you to access the -webGui remotely, but without SSL securing the connection, devices in -between your browser and the server could "sniff" the packets to -see what you're doing. If you want to make the webGui remotely -accessible, install the Unraid Connect plugin, which can provide a -secure remote access solution that utilizes SSL to ensure your -connection is fully encrypted.

    • Port 443: Used to access the webGui with SSL. This is only -better than port 80 if you have a root password set. If no root -password is set and you forward this port, unauthorized users can -connect to your webGui and have full access to your server. In -addition, if you forward this port without using the Unraid Connect -plugin, attempts to connect to the webGui through a browser will -present a security warning due to the lack of an SSL certificate. -Consider making life easier for yourself and utilize the Unraid Connect -plugin to enable simple, safe, and secure remote access to your -Unraid systems.

    • Port 445: Used for SMB (shares). If you forward this port to -your server, any public shares can be connected to by any user over -the internet. Generally speaking, it is never advisable to expose -SMB shares directly over the internet. If you need the ability to -access your shares remotely, we suggest utilizing a WireGuard VPN to -create a secure tunnel between your device and the server. In -addition, if the flash device itself is exported using SMB and this -port is forwarded, its contents can easily be deleted and your paid -key could easily be stolen. Just don't do this.

    • Port 111/2049: Used for NFS (shares). While NFS is disabled by -default, if you are making use of this protocol, just make sure you -aren't forwarding these ports through your router. Similar to SMB, -just utilize WireGuard to create a secure tunnel from any remote -devices that need to connect to the server over NFS.

    • Port 22/23: Used by Telnet and SSH for console access. -Especially dangerous for users that don't have a root password set. -Similar to SMB, we don't recommend forwarding these ports at all, -but rather, suggest users leverage a WireGuard VPN connection for -the purposes of connecting using either of these protocols.

    • Ports in the 57xx range: These ports are generally used by VMs -for VNC access. While you can forward these ports to enable VNC -access remotely for your VMs, the better and easier way to do this -is through installing the Unraid Connect plugin. -This ensures that those connections -are secure via SSL and does not require individual ports to be -forwarded for each VM.

    Generally speaking, you really shouldn't need to forward many ports to -your server. If you see a forwarding rule you don't understand, -consider removing it, see if anyone complains, and if so, you can always -put it back.

    Never ever ever put your server in the DMZ

    No matter how locked down you think you have your server, it is never -advisable to place it in the DMZ on your network. By doing so, you are -essentially forwarding every port on your public IP address to your -server directly, allowing all locally accessible services to be remotely -accessible as well. Regardless of how "locked down" you think you -actually have the server, placing it in the DMZ exposes it to -unnecessary risks. Never ever do this.

    Consider setting shares to private with users and passwords

    The convenience of password-less share access is pretty great. We know -that and its why we don't require you to set passwords for your shares. -However, there is a security risk posed to your data when you do this, -even if you don't forward any ports to your server and have a strong -root password. If another device on your network such as a PC, Mac, -phone, tablet, IoT device, etc. were to have its security breached, it -could be used to make a local connection to your server's shares. By -default, shares are set to be publicly readable/writeable, which means -those rogue devices can be used to steal, delete, or encrypt the data -within them. In addition, malicious users could also use this method to -put data on your server that you don't want. It is for these reasons -that if you are going to create public shares, we highly recommend -setting access to read-only. Only authorized users with a strong -password should be able to write data to your shares.

    Don't expose the Flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if -you need to make advanced changes to your system such as modifying the -go file in the config directory. However, the flash device itself -contains the files needed to boot Unraid as well as your configuration -data (disk assignments, shares, etc). Exposing this share publicly can -be extremely dangerous, so we advise against doing so unless you -absolutely have to, and when you do, it is advised to do so privately, -requiring a username and password to see and modify the contents.

    Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current -with the latest release(s) is vital to ensuring security. There are -constant security notices (CVEs) published for the various components -used in Unraid OS. We here at Lime Technology do our best to ensure all -vulnerabilities are addressed in a timely manner with software updates. -However, these updates are useless to you if you don't apply them in a -timely manner as well. Keeping your OS up-to-date is easy. Just navigate -to Tools -> Update OS to check for and apply any updates. You can -configure notifications to prompt you when a new update is available -from the Settings -> Notifications page.

    Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be -administered remotely but this should never be done by simply exposing -exposing the Unraid webGui to the internet.

    A frequent way to secure such a connection is to use VPN technology. -Unraid includes as standard the WireGuard VPN and an OpenVPN plugin and -Docker container is also available. In addition many routers have built -in VPN support which can be used.

    An alternative for making the webGui remotely accessible is to install -the Unraid Connect plugin, which can provide a secure remote access solution -that utilizes SSL to ensure your connection is fully encrypted.

    Securing webGui connections (SSL)

    Using wildcard SSL Certificates provisioned by Let's -Encrypt, Unraid OS 6.10 improves the security -of the SSL implementation for both local access and Unraid Connect Remote Access.

    A few details before we begin

    Some terms:

    • servername can be changed on the Settings -> Identification -page. It defaults to "tower".
    • localTLD can be changed on the Settings -> Management Access -page. It defaults to "local".
    • Use SSL/TLS can be changed on the Settings -> Management Access -page. It defaults to "No".
    • HTTP port can be changed on the Settings -> Management Access -page. It defaults to "80". If you change this, add :[HTTP port] to any of the http URLs in the scenarios below. (example: -http://tower.local:8080)
    • HTTPS port can be changed on the Settings -> Management Access -page. It defaults to "443". If you change this, add :[HTTPS port] to any of the https URLs in the scenarios below. (example: -https://tower.local:3443)
    • certificate refers to either a self-signed SSL Certificate, or a -SSL certificate issued by a Certificate Authority (Let's Encrypt)
    • lan-ip is your server's LAN IP address with dots changed to -dashes (example 192-168-100-1)
    • wan-ip is your internet-facing IP address with dots changed to -dashes (example 136-26-144-139)
    • hash is a random 40 character hex string (160 bits) uniquely -assigned to your server when a certificate is first issued

    Caveats of using a self-signed certificate: Note that browsers will -show a certificate error because they cannot verify the authenticity of -self-signed certificates. All traffic will be encrypted once users -acknowledge the browser warning.

    How would you like to access the Unraid webGui while on your LAN?

    Http only

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to No
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Traffic between the browser and the server will not be encrypted

    Https with Self-signed certificate

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • All traffic will be encrypted
    • Unraid will manage the certificate for you. See "Caveats of using a -self-signed certificate" above.

    Https with Myunraid.net certificate - with fallback URL if DNS is unavailable

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate)
    • Leave Use SSL/TLS set to either No or Yes
    • Press Provision
    • Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Your primary URLs when Use SSL/TLS set to Yes. Note that these -URLs use a self-signed certificate (See "Caveats of using a -self-signed certificate" above)
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • Your alternate URL will be -https://[lan-ip].[hash].myunraid.net (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net). This personal link -is shown in the Certificate subject field on the Management Access -page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted if using https.
    • Unraid will manage the certificates for you.
    • If at any point DNS resolution becomes unavailable, the alternate -URL may not resolve. In this case use the primary URL as a fallback.

    Https with Myunraid.net certificate - with no fallback URL

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate if you run the use_ssl command mentioned -below)
    • Press Provision
    • If DNS Rebinding is not an issue, the "Strict" option for Use -SSL/TLS will be available.
    • Set Use SSL/TLS to Strict (this was previously called "Auto", -but "Strict" is more descriptive)
    • Your URL will be https://[lan-ip].[hash].myunraid.net -(example: https://192-168-100-1.a1b2c3d4e5.myunraid.net) This -personal link is shown in the Certificate subject field on the -Management Access page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted
    • Unraid will manage the certificates for you.
    • Note: If at any point DNS resolution becomes unavailable (e.g., your -Internet goes down), use telnet, SSH or local keyboard/monitor to -login. Then:
      • type use_ssl no to access the webgui via -http://[servername].[localTLD] or http://[ipaddress]
      • type use_ssl yes to access the webgui via -https://[servername].[localTLD] or https://[ipaddress] -using a self-signed certificate (See -"Caveats of using a self-signed certificate" above)
      • Once DNS resolution is available again, change Use SSL/TLS -back to Strict

    Redirects

    When accessing http://[ipaddress] or -http://[servername].[localTLD] , the behavior will change -depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to -https://[lan-ip].[hash].myunraid.net However, this behavior -makes it more difficult to access your server when DNS is -unavailable (i.e. your Internet goes down). If that happens see the -note under HTTPS with Myunraid.net certificate - with no fallback -URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to -https://[ipaddress] or https://[servername].[localTLD] -as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the http url will load -directly.

    Note: for the redirects to work, you must start from http urls not https -urls.

    Unraid Connect Remote Access

    • Install the Unraid Connect plugin
    • Navigate to the Settings -> Management Access page
    • Click Provision if you haven't already
    • Regardless of the value of Use SSL/TLS, you will have the option -to access the server using -https://[lan-ip].[hash].myunraid.net:[wan-port] (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net).
    • Navigate to Settings -> Management Access -> Unraid Connect page
    • Set Allow Remote Access to yes
    • Set the WAN port you want to use. For added security we -recommend you choose a random port over 1000 rather than using the -default of 443. i.e. something like 13856, 48653, etc
    • Click Apply
    • Setup your router to port forward the WAN port you specified to -the LAN IP address and HTTPS port used by the server. There is a -note on the screen telling you the exact port and IP to use.
    • Press the Check button. If the port is forwarded correctly you -will see a message saying "Your Unraid Server is reachable from the -Internet"
    • To access your server using Remote Access, login to the Unraid Connect -Dashboard and click the Remote Access link. The URL will be -https://[wan-ip].[hash].myunraid.net:[wan-port] (example: -https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856).

    Custom Certificates

    Https with Custom certificate - with option to have Unraid Connect Remote Access

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • Set the LocalTLD to the domain name used in the "Subject" of -the certificate.
    • Your URL will be https://[servername].[localTLD] (example: -https://tower.mydomain.com). You are responsible for managing DNS -for this URL.
    • You are responsible for managing the certificate. Upload it to -/boot/config/ssl/certs/[servername]_unraid_bundle.pem
    • The certificate must be valid for [servername].[localTLD] -(example: tower.mydomain.com). For a wildcard cert it must be -*.[localTLD] (example: *.mydomain.com). This url can be -specified in either the "Subject" of the certificate or one of the -"Subject Alternative Name" fields (prior to 6.10.3, only the -"Subject" field was used). If you find that Unraid deletes your -certificate, it is because the server's url is not specified in the -certificate.
    • All traffic will be encrypted
    • (optional) If desired, see the Unraid Connect Remote Access section -above

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the -array. It does this using the Linux LUKS (Linux Unified Key System) -encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a -standard on-disk-format, it does not only facilitate compatibility among -distributions but also provides secure management of multiple user -passwords. In contrast to an existing solution, LUKS stores all -necessary setup information in the partition header, enabling the user -to transport or migrate their data seamlessly.

    The home page for LUKS can be found -here

    Because it is a Linux standard drives that are encrypted using LUKS can -be read on any standard Linux system even when removed from Unraid as -long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting -all drives being used by Unraid. The key for the encryption can be -either a pass phrase, or provided via a key file. When using a key file -it is a good idea to use something like an image as there is no chance -of that ever being guessed. You must make sure that you do not lose the -encryption key as without it you will not be able to access the data on -encrypted drives.

    To encrypt a drive (Note that this will erase any content already on the -drive).

    • Stop the array
    • Click on the drive on the Main tab
    • change the file system to the encrypted type that you want to use
    • click Apply to commit the change
    • click Done to return to the Main tab
    • the drive will now show as unmountable and the option to format -unmountable drives will be present. Check that the drive is the one -you are expecting to be encrypted and if it is correct go ahead and -format it.

    Once you have set up encryption then it will be necessary to provide the -encryption key when starting the array. Once this has been done and the -array successfully started then you can access the data without being -aware of the fact that any drive is encrypted.

    CAUTION: Encrypting data is good from a security perspective, but users -should be aware of the fact that it can complicate recovering from -certain types of hardware failure without data loss. On that basis only -use encryption if you feel you have a real need for it, and ideally make -sure you have a good system for backing up any important data.

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains -all the configuration information relating to an Unraid server. You -therefore want to consider the security of the information it contains -and how it is accessed.

    Backups

    If a flash drive ever fails for any reason then as long as you have a -backup getting the Unraid server back into normal operation is an easy -process. It is recommended that you make a backup whenever you make a -significant configuration change.

    You easily achieve this from the Unraid GUI by:

    1. Click on the flash drive on the Main tab in the GUI.
    2. In the Flash Device Settings section click on the Flash Backup -button.
    3. The system will now start creating a zip file that is a backup of -the contents of the flash drive
    4. When the zip file has been created your browser should prompt you to -provide the location where you want the backup saved to. It is -recommended that this is a location off the Unraid server so that it -is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason this -backup can be used as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control -access over the network as is the case for other shares on an Unraid -system. The difference is that you set this up by clicking on the -flash device on the Main tab in the GUI rather than doing it via -the Shares tab.

    • Network visibility: You can specify whether the flash drive -should even be accessible via the network, and if it is accessible -whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any -access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with -Unraid 6.8 files on the flash drive can no longer be given execute -permission.

    The implication of this is that if a user has their own custom scripts -(or programs) stored on the flash drive they can no longer be executed -from that location. There are a number of ways to handle this:

    • Copy the files to a location from which they can be executed
      • The location /usr/local/bin is a good choice if you want the -files on the default search path.
      • You can copy the files into position when booting by adding -appropriate commands to the config/go file on the flash drive.
      • Remember to give the files execute permission after copying -them.
    • For scripts precede the script name with the command that runs the -script (e.g. bash path-to-script)

    VPN

    Unraid servers are not hardened against attack via the network so -should NEVER be exposed directly to the internet.

    • One exception is the WireGuard VPN service introduced in Unraid 6.8 -explicitly to address secure access to/from the internet.
    • If running Docker containers are exposed to the internet then the -security of these needs to be assessed on a case-by-case basis.

    You may need to contact the developer of the container to determine -how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a -'sandboxed' environment so the level of access to the content of -your disks is constrained to what you allow in the path mapping -settings for the container.

    • If running VMs that are exposed to the internet then you need to -apply the same security to these that you would apply to a physical -PC attached to the local LAN.

    If you want to make secure connections between an Unraid server and the -Internet then you want to use a technology known as VPN (Virtual Private -Network). VPN works on a client/server model where you have a server -that accepts incoming connections and a client that initiates such -connections.

    In simplistic terms, the idea behind VPN connections is to set up an -encrypted 'tunnel' between the client and server ends so that no -malicious players can intercept or eavesdrop on your interactions. Such -tunnels are set up so that only authorized users are able to make such -connections. More information on VPN as a technology can be found in -this wiki -article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the -commonest use case and many users want to be able to safely access -their Unraid servers (and potentially their whole home LAN) when -away from home. When running in this mode the server end of the VPN -link will either be running on the user's router (if it supports -such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you -want applications running on Unraid to access the internet. This -could be to access generic internet content or to access another -server located remotely to the Unraid server. If in is generic -access to the internet then it is highly likely that the server end -of such connection will be via a commercial VPN provider. When -running in this mode Unraid will be acting as the client end of any -VPN link.

    There are a wide variety of VPN solutions available both free and -commercial.

    Router

    Many modern routers have a VPN server built-in as standard (typically -based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of -not needing any other component on your home LAN to be operational for -the VPN to function. Once setup it should allow you to access all -devices on your home LAN in a similar manner to when you are directly -connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow -connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN -then you can search Community Applications for a plugin or docker -container that meets your requirements. You may also find the -SpaceInvaderOne YouTube -video of use in setting it -up.

    It is expected that with the introduction of WireGuard support in -Unraid 6.8 that WireGuard will become the favored way of setting up a -VPN connection to an Unraid server.

    WireGuard

    Overview

    Unraid 6.8 introduces built-in support for WireGuard VPN connections. The -intention is to make it as easy as possible for Unraid users to set up -VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to -add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid -boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be -better than OpenVPN.

    More information about WireGuard can be found on the WireGuard web -site. It should be noted that WireGuard is -still labeled as ''experimental'' by its developers but many users are -already finding that it appears to be robust enough for real-world use. -A number of the commercial VPN services are working on adding WireGuard -support so they must deem it to be mature enough for this to make sense -to them.

    The initial Unraid implementation includes adding the WireGuard kernel -modules to the standard Unraid distribution and starting the WireGuard -services as part of the Unraid boot process, but does not yet have the -management of WireGuard built-in. At the moment the GUI part is offered -as a separate plugin, but it is intended that it will be integrated into -Unraid in the future. This approach allows for quick updates and -enhancements without dependency on Unraid version releases. The Unraid -WireGuard GUI plugin can be installed via Community Applications, and -when it is installed you will find that an entry called VPN Manager -is added to the GUI under Settings->Network Services

    Note that the Unraid WireGuard plugin is still evolving so in the event -of a discrepancy between what is described here and the following forum -threads then it is likely that the thread is correct and this wiki needs -updating to bring it inline. These threads are also the appropriate -place to ask questions regarding Unraid's WireGuard implementation.

    What can you do with WireGuard? Let's walk through each of the -connection types:

    • Remote access to server: Use your phone or computer to remotely -access your Unraid server, including:

      • Unraid administration via the webgui
      • Access dockers, VMs, and network shares as though you were -physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", -allowing you to access your entire LAN as well.

    • Server to server access: Allows two Unraid servers to connect to -each other.

    • LAN to LAN access: Builds on "Server to server access", -allowing two entire networks to communicate. May require additional -settings, TBD.

    • Server hub & spoke access: Builds on "Remote access to -server", except that all of the VPN clients can connect to each -other as well. Note that all traffic passes through the server.

    • LAN hub & spoke access: Builds on "Server hub & spoke access", -allowing you to access your entire LAN as well.

    • VPN tunneled access: Route traffic for specific Dockers and VMs -through a commercial WireGuard VPN provider (see this guide)

    • Remote tunneled access: Securely access the Internet from -untrusted networks by routing all of your traffic through the VPN -and out Unraid's Internet connection

    The following diagram attempts to show these different connection types -in a graphical format

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your -trusted devices can VPN into your home network to access Unraid and the -other systems on your network.

    Prerequisites
    • You must be running Unraid 6.8 with the Dynamix WireGuard plugin -installed via the Apps tab (Community Applications).

    • Be aware that WireGuard is technically classified as experimental. -It has not gone through a full security audit yet and has not -reached 1.0 status. But it is the first open-source VPN solution -that is extremely simple to install, fast, and designed from the -ground up to be secure.

    • Understand that giving someone VPN access to your LAN is just like -giving them physical access to your LAN, except they have it 24x7 -when you aren't around to supervise. Only give access to people and -devices that you trust, and make certain that the configuration -details (particularly the private keys) are not passed around -insecurely. Regardless of the "connection type" you choose, assume -that anyone who gets access to this configuration information will -be able to get full access to your network.

    • This guide works great for simple networks. But if you have Dockers -with custom IPs or VMs with strict networking requirements, please -see the "Complex Networks" section below.

    • Unraid will automatically configure your WireGuard clients to -connect to Unraid using your current public IP address, which will -work until that IP address changes. To future-proof the setup, you -can use Dynamic DNS instead. There are many ways to do this, -probably the easiest is described in this 2 minute video from -SpaceInvaderOne.

    • If your router has UPnP enabled, Unraid will be able to -automatically forward the port for you. If not, you will need to -know how to configure your router to forward a port.

    • You will need to install WireGuard on a client system. It is -available for many operating systems as mentioned at WireGuard -clients. Android or iOS make -good first client systems because you can get all the details via QR -code.

    Setting up the Unraid side of the VPN tunnel
    • First, go to Settings -> Network Settings -> Interface eth0. If -"Enable bridging" is "Yes", then WireGuard will work as -described below. If bridging is disabled, then none of the "Peer -type of connections" that involve the local LAN will work properly. -As a general rule, bridging should be enabled in Unraid.

    • If UPnP is enabled on your router and you want to use it in Unraid, -go to Settings -> Management Access and confirm "Use UPnP" is set -to Yes
    • On Unraid go to Settings -> VPN Manager

    • Give the VPN Tunnel a name, such as "MyHome VPN"
    • Press "Generate Keypair". This will generate a set of public and -private keys for Unraid. Take care not to inadvertently share the -private key with anyone (such as in a screenshot like this)
    • By default, the local endpoint will be configured with your current -public IP address. If you chose to setup DDNS earlier, change the IP -address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to -change this unless you already have WireGuard running elsewhere on -your network.
    • Hit Apply
    • If Unraid detects that your router supports UPnP, it will -automatically setup port forwarding for you:

    • If you see a note that says "configure your router for port -forwarding..." you will need to login to your router and setup the -port forward as directed by the note:

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports -should be set to the value Unraid provides. If your router -interface asks you to put in a range, use the same port for both -the starting and ending values. Be sure to specify that it is a -UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of -your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, -i.e. "how to port forward Asus RT-AC68U"
    • Note that after hitting Apply, the public and private keys are -removed from view. If you ever need to access them, click the -"key" icon on the right-hand side.

    • Similarly, you can access other advanced settings by pressing the -"down chevron" on the right-hand side. They are beyond the scope -of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to -Active to start WireGuard. You can optionally set the tunnel to -Autostart when Unraid boots.

    There have been cases where this step has been omitted and users -end up wondering why the WireGuard VPN link is not working!

    Defining a Peer (client)
    • Click "Add Peer"

    • Give it a name, such as "MyAndroid"
    • For the initial connection type, choose "Remote access to LAN". -This will give your device access to Unraid and other items on your -network.
    • Click "Generate Keypair" to generate public and private keys for -the client. The private key will be given to the client/peer, but -take care not to share it with anyone else (such as in a screenshot -like this)
    • For an additional layer of security, click "Generate Key" to -generate a preshared key. Again, this should only be shared with -this client/peer.
    • Click Apply.
    • Note: Technically, the peer should generate these keys and not -give the private key to Unraid. You are welcome to do that, but it -is less convenient as the config files Unraid generates will not be -complete and you will have to finish configuring the client -manually.
    Caution

    It can be a little risky to add a new client ("peer") to WireGuard if -you are already connected remotely using WireGuard as adding a new peer -sometimes toggles the WireGuard tunnel off which will render you -unable to reconnect. This is because a configuration change is made -effective by inactivating the tunnel with the current (old) -configuration and next activating it with the updated (new) -configuration. If there is any sort of configuration conflict at this -point the tunnel stays inactive, and you can no longer connect to the -Unraid server

    Configuring a Peer (client)
    • Click the "eye" icon to view the peer configuration. If the button -is not clickable, you need to apply or reset your unsaved changes -first.

    • If you are setting up a mobile device, choose the "Create from QR -code" option in the mobile app and take a picture of the QR code. -Give it a name and make the connection. The VPN tunnel starts almost -instantaneously, once it is up you can open a browser and connect to -Unraid or another system on your network. Be careful not to share -screenshots of the QR code with anyone, or they will be able to use -it to access your VPN.
    • If you are setting up another type of device, download the file and -transfer it to the remote computer via trusted email or dropbox, -etc. Then unzip it and load the configuration into the client. -Protect this file, anyone who has access to it will be able to -access your VPN.
    About DNS

    The Dynamix WireGuard plugin includes a "Peer DNS Server" option

    If you are having trouble with DNS resolution on the WireGuard client, -return to the VPN Manager page in Unraid and switch from Basic to -Advanced mode, add the IP address of your desired DNS server into the -"Peer DNS Server" field, then install the updated config file on the -client. You may want to use the IP address of the router on the LAN you -are connecting to, or you could use a globally available IP like 8.8.8.8

    This is required for "Remote tunneled access" mode if the client's -original DNS server is no longer accessible after all traffic is routed -through the tunnel.

    If you are using any of the split tunneling modes, adding a DNS server -may provide name resolution on the remote network, although you will -lose name resolution on the client's local network in the process. The -simplest solution is to add a hosts file on the client that provides -name resolution for both networks.

    Complex Networks

    The instructions above should work out of the box for simple networks. -With "Use NAT" defaulted to Yes, all network traffic on Unraid uses -Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Dockers with custom IPs or VMs with strict -networking requirements, things may not work right (I know, kind of -vague, but feel free to read the two WireGuard threads for examples)

    A partial solution is:

    • In the WireGuard config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the -WireGuard "Local tunnel network pool" through the IP address of -your Unraid system. For instance, for the default pool of -10.253.0.0/24 you should add this static route:
      • Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)
      • Gateway: <IP address of your Unraid system>
    • Note that this covers the entire class B 10.253.x.x network, so you -can add other WireGuard tunnels without having to modify your router -setup again.

    With these changes, your network should work normally. However, your -WireGuard clients still may not be able to access Dockers on custom IPs -or VMs. If you find a solution to this, please ask questions in the -forum threads mentioned earlier.

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be -invisible! There aren't really any error messages if things aren't -working, it either works or it doesn't. It cannot be detected by a port -scanner.

    If you can't connect, it will mainly be an exercise in double-checking -your work:

    • Confirm that the tunnel is active (!)
    • Confirm that your DDNS is pointed at your current public IP address, -and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router -to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your -clients, you will need to set the clients up again so they have the -latest config.
    • Be sure you save your changes before you press "View Peer Config", -otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    - For your first client, setup a phone using its data connection (not -wifi). This eliminates issues related to the client network, and the QR -code is the easiest way to transfer settings. Once you have it working -from your phone, move on to other clients.

    • Disable any energy-saving features on the client, phones in particular -may not use VPNs properly when in low power mode. Also, you may need to -disable any "Data Saver" features on the phone so that VPN is not -throttled. See this post. -- If your "Peer type of connection" includes one of the LAN options but -you can only access Unraid, go to Settings -> Network Settings and see -whether "Enable bridging" is yes.  If bridging is disabled, you will not -be able to access your LAN over WireGuard.
    • If you are connecting from another network over the Internet, be -sure that the networks on both sides use different subnets. You -can't connect two networks that both use 192.168.1.0/24, for -instance.
    • If you can connect from some locations but not others, keep in mind -that the "broken" remote locations may have a firewall that blocks -UDP traffic. Hopefully, WireGuard will support TCP in the future, -but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm -that the "Local tunnel network pool" is not already in use on your -network or on one of the networks you are connecting to. If there is -a conflict you will need to change it to a different private network -(10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | -192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webgui for some reason and you need -to prevent a WireGuard tunnel from automatically starting, delete -this file from your flash drive and reboot:

    /boot/config/wireguard/autostart

    • Note that if you have Dockers with custom IPs or VMs with strict -networking requirements, you will likely have issues. Please see the -"Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection -from an Unraid server to a commercial VPN provider. If you are trying to -access your Unraid network from a remote location, see the section on -making inbound connections. There is a forum -thread -discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. A few are listed -below but this is not intended to be an exhaustive list. No endorsement -is implied, you need to research and determine which one meets your -needs.

    Note that with the current state of WireGuard, VPN providers cannot -guarantee the same amount of privacy as they can with OpenVPN. See -here for more detail. -Typically the objections are not around security, but around the fact -that it is harder for them to guarantee that they cannot track you.

    Configuring VPN tunneled access
    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" -button and select the file on your hard drive. This will create a -new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. -Click Apply.
    • Note: You do not need to forward any ports through your router for -this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN -tunnel.
      • In the future it may be possible to restrict it so that only -specific Dockers use the VPN tunnel. Until then, you may need to -disable the tunnel in order to check for plugin updates or -perform other Unraid administrative tasks.
      • Note that currently, Unraid will ignore any DNS server that is -specified in the downloaded config file. Unraid's DNS should be -set to something that will work whether the tunnel is up or -down, such as 8.8.8.8 and 8.8.4.4
    Testing the tunnel
    • Using Community Applications, install a browser such as the -jlesage/Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should -see that your IP address is in the country you selected when you -signed up with the provider

    Support

    WireGuard is a new feature in Unraid so the forum is the place to -ask questions and get the most up-to-date information on using -WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - +

    Security

    An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.

    The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are safe.

    There is also a forum thread that discusses this topic.

    + + \ No newline at end of file diff --git a/es/unraid-os/manual/security/secure-webgui-ssl/index.html b/es/unraid-os/manual/security/secure-webgui-ssl/index.html new file mode 100644 index 000000000..89e9dc0c7 --- /dev/null +++ b/es/unraid-os/manual/security/secure-webgui-ssl/index.html @@ -0,0 +1,22 @@ + + + + + +Securing webGUI connections (SSL) | Unraid Docs + + + + + + + + + + +
    +

    Securing webGUI connections (SSL)

    As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.

    SSL parameters

    When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server.

    ParameterDescription
    servernameCan be changed in Settings > Identification. The default value is tower.
    localTLDCan be changed in Settings > Management Access. Default value is local.
    Use SSL/TLSCan be changed in Settings > Management Access. Default value is No.
    HTTP portCan be changed in Settings > Management Access. Default value is 80. If you change this, add :[HTTP port] to any of the HTTP URLs in the scenarios below. (example: http://tower.local:8080)
    HTTPS portCan be changed in Settings > Management Access page. It defaults to "443". If you change this, add :[HTTPS port] to any of the HTTPS URLs in the scenarios below. (example: https://tower.local:3443)
    certificateRefers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)
    lan-ipThis is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)
    wan-ipThis is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)
    hashThis is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued

    How to access the Unraid server webGUI on your LAN

    HTTP-only

    With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to No.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution.
    4. Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    5. Select Apply.

    HTTPS with self-signed certificate

    With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to Yes.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution
    4. Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    5. Select Apply.
    info

    When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.


    HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable

    You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down.

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate).
    3. Leave Use SSL/TLS set to either No or Yes.
    4. Press Provision.
    5. Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    6. Your primary URLs when Use SSL/TLS set to Yes. Note that these URLs use a self-signed certificate.
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    7. Your alternate URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the Unraid Connect plugin it will also be shown on the Connect dashboard.

    HTTPS with Myunraid.net certificate and with no fallback URL

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the use_ssl command mentioned below).
    3. Press Provision.
    4. If DNS Rebinding is not an issue, the Strict option for Use SSL/TLS will be available.
    5. Set Use SSL/TLS to Strict (or Auto in earlier versions of Unraid).
    6. Your URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the optional Unraid Connect plugin it will also be shown on the Connect dashboard.
    caution

    If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:

    • Type use_ssl no to access the webGUI via http://[servername].[localTLD] or http://[ipaddress].
    • Type use_ssl yes to access the webGUI via https://[servername].[localTLD] or https://[ipaddress] using a self-signed certificate (See HTTPS with a self-signed certificate above).
    • Once DNS resolution is available again, change Use SSL/TLS back to Strict.

    Redirects

    When you access http://[ipaddress] or http://[servername].[localTLD], the behavior will change depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to https://[lan-ip].[hash].myunraid.net However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under HTTPS with Myunraid.net certificate - with no fallback URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to https://[ipaddress] or https://[servername].[localTLD] as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the HTTP URL will load directly.
    tip

    For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.


    Unraid Connect remote access

    Looking for setup instructions for Unraid Connect remote access? See our dedicated page.


    Custom certificates

    HTTPS with custom certificate - with option to have Unraid Connect Remote Access

    1. Navigate to the Settings > Management Access page.
    2. Set Use SSL/TLS to Yes.
    3. Set the LocalTLD to the domain name used in the "Subject" of the certificate.
    4. Your URL will be https://[servername].[localTLD] (example: https://tower.mydomain.com). You are responsible for managing DNS for this URL.
    5. You are responsible for managing the certificate. Upload it to /boot/config/ssl/certs/[servername]_unraid_bundle.pem.
    6. The certificate must be valid for [servername].[localTLD] (example: tower.mydomain.com). For a wildcard cert it must be *.[localTLD] (example: *.mydomain.com). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server's URL is not specified in the certificate.
    7. As an option, use Unraid Connect Remote Access.
    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/security/vpn/index.html b/es/unraid-os/manual/security/vpn/index.html new file mode 100644 index 000000000..52d6a5c23 --- /dev/null +++ b/es/unraid-os/manual/security/vpn/index.html @@ -0,0 +1,27 @@ + + + + + +VPN | Unraid Docs + + + + + + + + + + +
    +

    VPN

    caution

    Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.

    If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections.

    In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in this wiki article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.

    There are a wide variety of VPN solutions available both free and commercial.

    Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN.

    Router

    Many modern routers have a VPN server built-in as standard (typically based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the SpaceInvaderOne YouTube video of use in setting it up.

    WireGuard

    Overview

    Wireguard logo

    Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN.
    • The interface is available under Settings > VPN Manager.

    More information about WireGuard can be found on the WireGuard website.

    What can you do with WireGuard? Let's walk through each of the connection types:

    • Remote access to server: Use your phone or computer to remotely access your Unraid server, including:
      • Unraid administration via the webGUI
      • Access Docker containers, VMs, and network shares as though you were physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", allowing you to access your entire LAN as well.
    • Server to server access: Allows two Unraid servers to connect to each other.
    • LAN to LAN access: Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.
    • Server hub & spoke access: Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.
    • LAN hub & spoke access: Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.
    • VPN tunneled access: Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider.
    • Remote tunneled access: Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.

    The following diagram attempts to show these different connection types in a graphical format

    Connection Types

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network.

    Implementation considerations

    • Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren't around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.
    • This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the Complex Networks section.
    • Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this 2 minute video from SpaceInvaderOne.
    • If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port.
    • You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at WireGuard clients. Android or iOS make good first client systems because you can get all the details via QR code.

    Setting up the Unraid side of the VPN tunnel

    • If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -> Management Access and confirm "Use UPnP" is set to Yes
    • On Unraid go to Settings > VPN Manager

    Initial setup screen

    • Give the VPN Tunnel a name, for example MyHome VPN.
    • Select Generate Keypair. This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this).
    • By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network.
    • Select Apply.
    • If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:

    UPnP available

    • If you see a note that says "configure your router for port forwarding..." you will need to login to your router and setup the port forward as directed by the note:

    UPnP not available

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".
    • Note that after Apply, the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.

    Key icon

    • Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.

    Activate switch

    Defining a Peer (client)

    1. Select Add Peer. +Add Peer
    2. Give it a name, such as MyAndroid.
    3. For the initial connection type, choose Remote access to LAN. This will give your device access to Unraid and other items on your network.
    4. Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)
    5. For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.
    6. Click Apply.
    info

    Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.

    caution

    It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.

    Configuring a Peer (client)

    • Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.

    Peer area - Eye icon

    Peer details popup

    • If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.
    • If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.

    About DNS

    Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net.

    Short names such as "tower" probably won't work, nor any DNS entries managed by the router.

    To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don't forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8

    This is particularly important for "Remote tunneled access" mode if the client's original DNS server is no longer accessible after all traffic is routed through the tunnel.

    Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection.

    Complex Networks

    The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:

    • In the WireGuard tunnel config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:
      • Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)
      • Gateway / Next Hop: IP address of your Unraid system
      • Distance: 1 (your router may not have this option)
      • If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"
    • Navigate to Settings > Docker Settings and set Host access to custom networks to Enabled

    Configurations to avoid

    There are some configurations you'll want to avoid, here is how a few key settings interact:

    • With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (this is the "simple network" setup assumed by the guide above)
    • With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this config)
    • With "Use NAT" = No and no static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this, if "Use NAT" = No, you really need to add a static route in your router)
    • With "Use NAT" = No and "Host access to custom networks" = disabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (You've come this far, just set "Host access to custom networks" to enabled you're set)
    • With "Use NAT" = No and "Host access to custom networks" = enabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - accessible!
      • (woohoo! the recommended setup for complex networks)

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner.

    If you can't connect, it will mainly be an exercise in double-checking your work:

    • Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.
    • Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config.
    • Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    • For your first client, setup a phone using its data connection (not wifi). This eliminates issues related to the client network, and the QR code is the easiest way to transfer settings. Once you have it working from your phone, move on to other clients.
    • If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection.
    • Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.
    • If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance.
    • If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.
    • If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | 192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot: +/boot/config/wireguard/autostart
    • Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on +making inbound connections. There is a forum thread discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs.

    Note that any provider that requires a custom WireGuard client will not work with Unraid.

    Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see here for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you.

    Configuring “VPN tunneled access for Docker”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • The “Peer type of access” will default to “VPN tunneled access for docker”. There are no settings to change, except perhaps to give it a local name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers
    • Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a "DNS" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.
    Testing the Docker tunnel
    info

    The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.

    Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel before the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.

    • Using Community Applications, install a Firefox Docker container
    • When setting up the container, set the “Network Type” to “Custom: wg2” (or whatever the name of the tunnel was in the previous step)
    • Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.: +--dns=8.8.8.8 +(if you don't set this, the container may leak your ISP's DNS server)
    • The rest of the defaults should be fine, apply the changes and start the container
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider
    • Also visit https://www.dnsleaktest.com/ and run a test, confirm that it only finds IPs related to the DNS provider you specified.
    • Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.

    Configuring “VPN tunneled access for system”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN tunnel.
      • You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks.
      • Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled.
      • Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4
    Testing the System tunnel
    • Using Community Applications, install a Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider

    Support

    The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/shares/create-a-share/index.html b/es/unraid-os/manual/shares/create-a-share/index.html new file mode 100644 index 000000000..a823b95d9 --- /dev/null +++ b/es/unraid-os/manual/shares/create-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Create a new share | Unraid Docs + + + + + + + + + + +
    +

    Create a new share

    When you create a new share, plan ahead.

    1. On the Shares tab select Add Share.

    2. Enter a name for your share in Share name

      Share names

      The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so media, Media, and MEDIA would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be.

    3. (Optional) Enter a description for the share in the Comments field. This is visible when viewed over the network.

    4. Set a Minimum free space value, in kilobytes, if you plan to use the setting, otherwise leave it empty.

    5. Select the Primary storage for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.

    6. Select the Allocation method: high-water, fill-up, or most-free, depending on your use case. You can read about the differences here.

    7. Select the Split level method for your data. You can find more information split level, here.

    8. In Included disks choose which disks will be available to the share. By default, all disks will be included.

    9. In Excluded disks choose which disks will not be available to the share. Note that if you configure Included disks there is no need to configure Excluded disks.

    10. Select a Secondary storage if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to None.

    11. (Optional) If you configure a primary and secondary storage, then Mover action option becomes active. This sets the direction of file transfers between Primary and Secondary storage.

    12. Select Add share to complete the creation.

    info

    Note that, by default, a new share will not be shared over the network. You must configure network access after the share is created.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/shares/delete-a-share/index.html b/es/unraid-os/manual/shares/delete-a-share/index.html new file mode 100644 index 000000000..bf5ff0f9a --- /dev/null +++ b/es/unraid-os/manual/shares/delete-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Delete a share | Unraid Docs + + + + + + + + + + +
    +

    Delete a share

    To delete a share on your Unraid server the share must contain no data.

    Delete an empty share

    1. Go to Shares.
    2. Select the share you want to delete.
    3. Select the Delete checkbox. The Apply button switches to a Delete button.
    4. Select the Delete button.
    5. The system confirms the share has been deleted. Select Done.

    Delete a share that contains data

    1. Go to Apps.
    2. Install a file management plugin from Community, such as Dynamix File Manager.
    3. Go to Shares.
    4. Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive.
    5. If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion.
    6. Delete the data or move it to another share on the server.
    7. Return to Shares.
    8. Select the share you want to delete. This will open the share settings. If no data is left in the share, a Delete checkbox is available.
    9. Select the Delete checkbox. The Apply button switches to a Delete button.
    10. Select the Delete button.
    11. The system confirms the share has been deleted.
    12. Select Done to return to Shares
    tip

    Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/shares/disk-shares/index.html b/es/unraid-os/manual/shares/disk-shares/index.html new file mode 100644 index 000000000..1cd1eb9cd --- /dev/null +++ b/es/unraid-os/manual/shares/disk-shares/index.html @@ -0,0 +1,22 @@ + + + + + +Disk shares | Unraid Docs + + + + + + + + + + +
    +

    Disk shares

    tip

    Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.

    Overview

    Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a Disk Shares section on the Shares tab. If you create a disk share, you should modify the user access permissions to restrict network user access.

    When viewed at the Linux level, the physical devices or pools will appear directly under /mnt with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled.

    Examples of such names are:

    • /mnt/diskX: - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be diskX.
    • /mnt/pool-name: - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be pool-name.
    caution

    The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the Main tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at /boot.

    Due to the nature of the Unraid boot device, we recommend you maintain your shares in Private mode, with read/write access given to trusted users.

    Disk share constraints

    If you have both disk shares and user shares enabled in Global Share Settings, then there is an important restriction that you must observe to avoid potential data loss.

    You must never copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, cp /mnt/user/share/file /mnt/disk1/share/file.

    At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost.

    There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an Unassigned Disk.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/shares/index.html b/es/unraid-os/manual/shares/index.html index 3bb3405a2..40b13712f 100644 --- a/es/unraid-os/manual/shares/index.html +++ b/es/unraid-os/manual/shares/index.html @@ -1,495 +1,22 @@ - + -Shares | Unraid Docs +Shares | Unraid Docs - - - + + +
    -

    Shares

    Once you have assigned some devices to Unraid and started the array, you -can create shares to simplify how you store data across multiple disks -in the array. Unraid will automatically create a handful of shares for -you that it needs to support common plugins, containers, and virtual -machines, but you can also create your own shares for storing other -types of data. Unraid supports 2 types of share:

    • User Shares
    • Disk Shares

    You can control which of these types of shares are to be used under -Settings->Global Share Settings. The default on Unraid is to have User -Shares enabled but Disk Shares disabled.

    It is sometimes important to realize that these are two different views -of the same underlying file system. Every file/folder that appears -under a User Share will also appear under the Disk Share for the -physical drive that is storing the file/folder.

    User Shares

    User Shares can be enabled/disabled via Settings->Global Share -Settings.

    From the Shares tab, you can either create a new share or edit -an existing share. Click the Help icon in the top-right of the -Unraid webGui when configuring shares for more information on the -settings available._

    User Shares are implemented by using Linux Fuse file system support. -What they do is provide an aggregated view of all top level folders of -the same name across the cache and the array drives. The name of this -top level folder is used as the share name. From a user perspective this -gives a view that can span multiple drives when viewed at the network -level. Note that no individual file will span multiple drives - it is -just the directory level that is given a unified view.

    When viewed at the Linux level then User Shares will appear under the -path /mnt/user. This includes the files on the main array and also -any for the share on any pool. It is important to note that a User Share -is just a logical view imposed on top of the underlying physical file -system so you can see the same files if you look at the physical level -(as described below for Disk Shares).

    • Current releases of Unraid also include the mount point -/mnt/user0 that shows the files in User Shares OMITTING any -files for a share that are on any pool. This is just a different -view of the files on your server. However This mount point is now -deprecated and may stop being available in a future Unraid release.

    Normally one creates User Shares using the Shares tab. However if you -manually create a top level folder on any drive the system will -automatically consider this to be a user Share and give it default -settings.

    Which physical drive in the main array is used to store a physical file -is controlled by a number of settings for the share:

    • Allocation method: This has various options:

      • Most Free: This option means that new files should go to the -disk with the most free space. It has the downside that one is -continually switching drives which keeps the drive involved spun -up.

      • Fill Up: This option means simply fill up drives in disk -order until the free space falls below the Minimum Free Space -setting, and when that happens move onto the next disk. Many -users like this setting because their content is static in -nature to they find this a simple way to manage their storage.

      • High Water: (default) This option attempts to provide a -compromise between continually switching drives as is caused by -the Most Free setting and filling up disks in a sensible -manner, but not fill each drive to capacity before using the -next one. The aim is to allow related files do be kept together -on the same drive and to let unused drives be spun down.

        • It works with switch points based by continually halving the -size of the largest drive in the array.
        • Many people find this confusing (particularly in an array with -drives of varying size). so as an example if you had an array -consisting of drives of 8TB, 3Tb and 2TB
          • The largest drive is 8TB so the switch points are 4TB, 2TB, -1Tb etc.
          • The 4TB switch point is active so The 8TB Drive one would be -filled to 4TB free space left.
          • The 2TB switch point becomes active so the 8TB and 3TB -drives each gets used in disk order until it they have 2TB -free space
          • The 1TB switch point becomes active so each drive now gets -used in disk order until it only has 1TB free space.
          • etc
    • Included or excluded drives: These settings allow you to -control which array drives can hold files for the share. Never set -both values, set only the one that is most convenient for you. If no -drives are specified under these settings then all drives allowed -under Settings >> Global Share settings are allowed.

    • Split level: This setting controls how files should be grouped.

    Important: in the event of there being contentions between the -Minimum free space, Split Level and the Allocation -method settings in deciding which would be an appropriate drive to -use the Split level setting always wins. This means that you can -get an out-of-space error even though there is plenty of space on -other array drives that the share can logically use.

    Changing any of these settings for a share only affects where any new -files are put. Any files already present in the share are left where -they are located when a setting is changed. It takes Manual action to -move existing files.

    Important: The Linux file systems used by Unraid are case sensitive -while the SMB share system is not. As an example this means that a -folder at the Linux level a folder called 'media' is different to one -called 'Media'. However at the network level case is ignored so for -example 'media', Media', 'MEDIA' would all be the same share. -However to take this example further you would only get the content of -one of the underlying 'media' or 'Media' folders to appear at the -network share level - and it can be non-obvious which one this would be.

    The following sections proved more detail on how these settings work:

    Allocation method

    When a new User share is created, or when any object (file or directory) -is created within a User share, the system must determine which data -disk the User share or object will be created on. In general, a new User -share, or object within a User share, will be created on the data disk -with the most free space. However there are a set of share configuration -parameters available to fine tune disk allocation.

    The basic allocation strategy for a share is defined by the Allocation -method configuration parameter. You may select one of three allocation -methods for the system to use.

    High Water

    The high water allocation method attempts to step fill each disk so at -the end of each step there is an equal free space left on each disk. The -idea is to progressively fill each disk but not constantly go back and -forth between disks each time new data is written to the array. Most -times, only a single disk will be needed when writing a series of files -to the array so the array will only spin-up the needed disk. The high -water level is initially set equal to one-half of the size of the -largest disk. A new high water level is again set to one-half of the -previous high level once all the disks have less free space than the -current high water level.

    The above example shows what will occur when there is a mix of 4 disks -varying is size from 500gig to 2T in size.

    First Pass - The high water level is set to one-half of the size of the -2T drive or 1T. Each disk will be filled until it has <1T of free space -remaining. This means no data is stored on disk1 or disk2 since both -already have <1T of free space. 500gig of data will be stored on disk3 -followed by 1T of data being stored on disk4.

    Second Pass - The high water level is reset to one-half of the previous -level or 500gig. Each disk will be filled until it has <500gig of free -space remaining. This means no data is stored on disk1 since it already -has <500gig of free space. 500gig of data will be stored on disk2 and -then 500gig of data will be stored on disk3 and finally 500gig of data -will be stored on disk4.

    Third Pass - The high water level is again reset to one-half of the -previous level or 250gig. Each disk will be filled until it has <250gig -of free space remaining. 250gig of data will be stored on disk1 and then -250gig of data will be stored on disk2 and then 250gig of data will be -stored on disk3 and finally 250gig of data will be stored on disk4. An -interesting note is that the 500gig disk does not get used at all until -the third pass. Don't be concerned if the smaller sized disks don't -immediately get used with this method.

    This pattern will continue with progressively smaller high water levels -until the disks are full.

    Most Free

    The most free allocation method simply picks the disk with the most free -space and writes the data to that disk. Each time a file is written -Unraid will check the free space on the disks and pick the one with the -most free space.

    Fill-Up

    The fill-up allocation method simply attempts to fill each disk in order -from the lowest numbered disk to the highest numbered disk. The fill-up -allocation method must be used in conjunction with the minimum free -space setting. Otherwise, Unraid will begin to give disk full errors and -not allow any more transfers once the first disk gets close to being -full.

    Min. Free Space

    The minimum free space setting is used with the allocation method and -split level. The Minimum Free space setting doesn't control how much -space is kept free, but instead it controls how much space must be free -for a drive to be chosen for a new file. The minimum free space setting -therefore tells Unraid to stop putting new content onto the disk when -the free space falls below the level you set (as long as the Split Level -setting indicates it can be split to a new disk). This must be used with -the fill-up allocation method or disk full errors will occur when there -is not enough space to fit a file you are trying to write to the array.

    First a brief explanation of how Unraid will typically receive a file. -Unraid typically receives data in this manner. First, Unraid receives -the request to store a file, named for example "file.eg". At this -time, Unraid has no idea how big "file.eg" is so Unraid will pick a -spot to place "file.eg" and begin to store the file data as the data -is transferred over the network. Now, this is important because Unraid -may pick a storage disk that does not have enough space to store the -complete "file.eg". Unraid doesn't know there is not enough space -when it first places the file so Unraid will only find out the disk -doesn't have enough space when the disk is full. At this point, the -transfer will fail with a disk full error.

    So, Unraid will write to a different disk if the minimum free space is -set to a value larger than the biggest file size you will ever transfer. -The recommended setting is 2 times the largest file size you will ever -transfer. For example, if the largest file you have is 8gig in size then -set the minimum free space to 16gig. This allows you to transfer files -that may vary in size somewhat and not accidentally transfer one too -large. The minimum free space is set in kilo-bytes.

    Here are some examples of the minimum free space setting;


    Free SpaceValue
    500 meg500000
    20 gig20000000
    40 gig40000000

    Note that unRAID will still place files on the disk if the split level -does not allow the files to be placed on another disk with more free -space.

    Also note that Unraid will typically not move a file onto a new disk if -you're over-writing or updating it. For example, a backup file that -grows in size over time could end up filling a disk and causing a disk -full error.

    IMPORTANT: There is also a Minimum Free Space setting for cache pools. -This is used to determine when a new file for a User Share with the Use -Cache setting having a value of Yes or Prefer should be written to the -cache or instead bypass the cache and go directly to the array. This -needs to be set if you want to avoid filling a cache pool which can -cause problems. As for this value when used with a User Share it -should be larger than the largest file you intend to write, and some -people like to make it significantly larger. You get to this setting by -clicking on a pool on the Main tab.

    Split level

    The split level setting tells Unraid how many folder levels are allowed -to be created on multiple disks. The split level can be used to ensure -that the contents of a folder are kept on the same disk. The split level -numbering starts with the user share being the top level and given the -number 1.

    IMPORTANT: in the event of there being contention between the -various settings for a share over which array drive to select for a file -the Split Level setting always takes precedence. This means the -Allocation Method and Minimum Free Space settings end up being -over-ridden. This can mean Unraid chooses a drive which does not have -enough space for the file so that an out-of-space error subsequently -occurs for the file.

    The Split level setting is one that many users find confusing to here -is a more detailed description of how it works.

    Here is an example showing a possible directory structure for a user -share called "Media".

    Note: I (the original author of this section) consider combining -media types into a single large share a poor way to store media. I use a -share for each media type. Movies is a share and TV shows is a share. I -combined the movies and TV shows to show the pitfalls in the split -levels when doing this as explained after the figure.

    Here is an explanation of the different split levels, referenced to the -folder structure above;

    1. Level 1
      • This is what you have if in the GUI you select the -"Automatically split only the top level directory as required" -option.
      • The top level Media share can be created on every disk.
      • Every other folder under the Media share must remain on a single -disk.
      • This setting does not allow the SD Movies, HD Movies, Kids -Movies or TV Shows folders to spread to multiple disks.
      • This setting is too low for all the media.
    2. Level 2
      • this is what you have if in the GUI you select the -"Automatically split only the top two directory levels as -required" option.
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder must remain on a single -disk.
      • This setting may work well. It will keep each movie and each TV -series together on a single disk.
      • This setting may give issues because it keeps each TV series on -a single disk. So, a disk may fill as new TV seasons are added -to a TV show which is on a disk which is close to full.
    3. Level 3
      • This is what you have if in the GUI you select "Automatically -split only the top three directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder must remain on a single disk.
      • This setting will allow the contents stored in each Movie Folder -to be spread out onto multiple disks.
      • This setting is too high for the different movie types.
    4. Level 4
      • This is what you have if in the GUI you select "Automatically -split only the top four directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder can be created on every disk.
      • This setting is too high because it will allow the contents of -every folder to be spread out onto multiple disks. The split -level is not being used to keep similar content together.

    The only valid split level for the above example is 2. This causes a -split level limitation which forces each complete TV series to a single -disk. This can force a new TV season to be placed on a disk which is -almost full and result in out of space errors once new episodes -completely fill the disk. The split level can't be increased to 3 -because each individual movie would not be contained to a single disk.

    The first way to fix this split level mismatch issue is to create -separate shares for the movies and the TV shows. This way, the movies -can be set to use a split level of 2 and the TV shows can use a split -level of 3.

    For Movies use a split level = 2. This allows the "SD Movies", "HD -Movies" and "Kids Movies" folders to be placed on every disk and it -keeps each individual movie folder on a single disk. This way, any -single movie folder and the contents of the movie folder will remain on -a single disk.

    For TV_Shows use a split level of either 1 or 2. A split level of 1 will -keep each TV series on a single disk and split level of 2 will keep each -season on a single disk. The split level of 2 means that the complete TV -series can be stored on multiple disks, however each individual season -of that TV series will be on a single disk.

    The second way to fix the issue is to add another folder level to the -movies, starting first with a Movies folder in the Media share and then -placing the different movie types below this.

    This user share structure must use split level = 3. SD Movies, HD -Movies, Kids Movies and each TV series can exist on multiple disks. This -structure means each TV season can be on a different disk. This has the -opposite issue compared to the first example. You can not use split -level 2 to force each complete TV series to remain on a single disk -without messing up the ability of the movies to split to every disk.

    Some things to keep in mind.

    • The above examples are to demonstrate the use of the split level. It -is not necessary to store your media sorted in the same format as -the above example illustrates. You may want to use a Movies share -and then just place a "Movie Name" folder for each movie directly -into the share without sorting the movies by type.

    • It is completely valid to force each complete TV series to stay on a -single disk. Just understand that a continuing TV series will keep -filling the disk where it is first placed. This may require manual -intervention to shift some TV series from an almost full disk to an -empty disk. Using the Most Free allocation method can help eliminate -the issue since a completely new TV series would be placed on the -disk with the most free space.

    • The above TV example applies to any similar share. It could apply to -a Pictures share where you store the pictures in folders based on -the year (2010, 2011, 2012 etc) or it could apply to a Music share -where you store the music in a folder for each artist. In these -cases, a split level of 1 would keep a whole year of pictures on a -single disk or it would keep all the music by an artist on a single -disk.

    Disable Split Level

    It is also possible to disable the split level by setting a high split -level. A file copy or move will fail if a folder is locked to a full -disk and an attempt is made to add more files into that folder. Setting -a high split level will ensure each file will get written to the server -as long as a disk has space for it.

    Split Level = 1 Example

    The following example demonstrates how the share behaves when the split -level is set to 1. The Share name is New_Movies. Each movie stored in -this share has its own folder. Inside the movie folder is the movie file -as well as some metadata files used by MediaBrowser.

    The above Windows Explorer screen shot shows the file structure of the -New_Movies share on the left and the contents of the A History of -Violence movie folder on the right. The levels for this share are -labeled on the example. This is what split level = 1 means:

    • A New_Movies folder can be created on each disk allowed by the -include and exclude disk settings. A new New_Movies folder will be -created on the next disk in line when the allocation method calls -for Unraid to begin filling the next disk. Note that the New_Movies -folder will only be created on the next disk in line when it is -necessary and not when the share is created.

    • The A History of Violence folder can only -exist on one disk. Once it is created on the disk, all of the -contents will remain on the same disk. Any changes or additions to -this folder will remain on the same disk. For example, a new file -called movie.nfo for the XBMC metadata might be created in this -folder in the future. The movie.nfo file will be created in the -existing A History of Violence folder. A duplicate A History of -Violence folder will not be created on another disk to store this new -file.

    You will notice that the movie folders (500) Days of Summer (2009) and -2 Fast 2 Furious (2003) both appear in the New_Movies share. The next -screen shot will show how each of these files is stored on a separate -disk.

    The above screen shot shows side by side Window Explorer views of the -file structure stored on disk1 and disk2. On the left is disk1 and on -the right is disk2. The left Explorer window shows the contents of -disk1. The New_Movies share is a folder stored at the top level or the -root of disk1 with the individual movie directories stored in this -directory. The right Explorer window shows the contents of disk2. The -New_Movies share is a folder stored at the top level or the root of -disk2 with the individual movie folders stored in this directory. As -files were being moved into the New_Movies share, Unraid created the -New_Movies folder on both disk1 and disk2 to store these files.

    The windows side by side can be used to examine the contents of the -New_Movies share on a disk by disk basis. You will notice that the movie -folder (500) Days of Summer (2009) is stored on disk1 and the movie -folder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted, -Unraid combines the movies stored on disk1 and disk2 into one network -share called New_Movies and both movies appear in the New_Movies network -share.

    Take note that a share called Movies is also visible on disk2.

    Split Level 0

    This is what you have if in the GUI you select "Manual: do not -Automatically split directories".

    Split level 0 is a special case. Split level 0 requires you to create -the desired top level or parent folder structure. Unraid will -unconditionally create an object on the disk that contains the parent -folders. Unraid will choose which disk to use according to the -allocation method if the parent folders exist on multiple disks.

    If you set the Split level to 0, then all directories/files created -under that share will be on the same disk where the directory within -that share share was originally created. In other words, use level 0 to -not allow the share to split automatically across disks

    NOTE: If you create the same folder structure on multiple disks then -Unraid will apply the other share settings to decide which disk to use.

    Example

    The server has 4 disks. A user share called Media is desired. Different -types of media will be stored in this share. The desired structure is;

    • disk1 - will hold the DVD movies.
    • disk2 - will hold the BluRay movies.
    • disk3 - will hold the BluRay movies.
    • disk4 - will hold the TV series.

    The desired structure is illustrated below.

    On the left side is how the user share will appear and on the right side -is the folder structure on each disk. The user will go to each disk and -create the folders shown in red to create the storage as listed above. -Then, the Media folder as well as the DVD Movies, BluRay Movies and TV -Shows folders become the parent folders for everything stored in the -Media share. The media will be sorted by disk as follows;

    • Movies placed in the DVD Movies folder will go to disk1.
    • Movies placed in the BluRay Movies folder will go to disk2 or disk3. -The disk is selected by the allocation method.
    • TV shows placed in the TV Shows folder will go to disk4.

    Say one day that disk1 is full and disk5 is added to the server to hold -new DVD Movies. The same folders on disk1 must be created on the new -disk5. In other words, the folder Media and sub-folder DVD Movies must -be created on disk5. Then, Unraid can use either disk1 or disk5 to store -DVD Movies.

    Split By Character

    Specify a character in the split level box to use this method. Then, -Unraid will not allow any folder name containing the character to split. -For example, set the split level to an opening square bracket ( [ ) -instead of a number. Then, create each movie folder with the year -encased in square brackets after the title in this manner - Iron Man 2 -[2010]. Unraid will see the opening square bracket ( [ ) and it will -not split this folder or any content stored inside this folder.

    This type of split level can allow different levels of sub-folders to be -specified as not splitting simply by inserting the character into the -folder name which should not split. This can overcome the limitation of -having a fixed split level for a share.

    Included and Excluded disk(s)

    The included disk(s) and excluded disk(s) parameters control which disks -are allowed to be used by each user share. These parameters can be used -separately or together to define the group of disks allowed for writing -files to each user share. The disks are entered by disk number with a -comma separating each disk, for example "disk2,disk5".

    Unraid will first check the included disks(s) set and then the Excluded -disk(s) set when deciding which disk to place a file on. Then, Unraid -will use the split level and allocation method to pick a disk which is -allowed to hold the file.

    Note: The Include/Exclude settings at the individual share level -only control which disks new files can be written to. Files on other -disks that are in a folder corresponding to the share name will still -show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are -candidates for allocation to that share. All disks may be used by the -user share when the Included disk(s) parameter is left blank. Specify -the disks to include here. For example, set the included disk(s) to -"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and -disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are -excluded from use by the user share. No disks are excluded from use by -the user share when the excluded disk(s) parameter is left blank. -Specify the disks to exclude here. For example, set the excluded disk(s) -to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If you have Docker or VMs enabled then a number of default shares are -set up to support their use. It is not mandated that you use these -shares (and the system will let you remove them if you do not want to -use them for their standard purpose) but it is recommended as it tends -to make it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata: this is the default location for storing working files -associated with docker containers. Typically there will be a -sub-folder for each docker container.
    • system: this is the default location for storing the docker -application binaries, and VM XML templates
    • domains: this is the default location for storing virtual disk -images (vdisks) that are used by VMs.
    • isos: this is the default location for storing CD iso images for -use with VMs.

    Unraid 6.12

    The Unraid 6.12 release has introduced some new terminology to make it -clearer to new users where files are initially placed and where they -will end up. The same functionality is present in earlier releases, but -has often been misunderstood by new users.

    Primary Storage

    This is the location to which new files will be written.

    If Primary storage is below the Minimum Free Space setting then new -files and folders will be created in Secondary storage, if configured

    For the Primary storage drop-down:

    • this option is mandatory. ie, Primary storage must be selected
    • any named pool can be selected
    • "Array" can be selected (meaning the Unraid array)

    Secondary Storage

    This is the location where files will be moved to if appropriate.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this -share i.e Secondary storage is optional
    • if Primary storage is a pool name, then the only options are -"none" and "Array"
    • if Primary storage is "Array", then only "none" appears as an -option

    Unraid 6.11 and earlier

    The following settings are only found in Unraid 6.11 and earlier. They -achieve the same functionality as the settings available in 6.12 but are -presented differently.

    Use Cache (and Mover Behavior with User Shares)

    Note: Starting with Unraid 6.9.0 multiple pools can exist and they -can have any name the user chooses. Any of these pools can act act as a -cache in the way Unraid uses the term. The word cache therefore is -referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called mover that is used in -conjunction with User Shares. It's behavior is controlled by the "Use -Cache for new files" setting under each User Share. The way these -different settings operate is as follows

    • Yes: Write new files to the cache as long as the free space on -the cache is above the Minimum free space value. If the free space -is below that then by-pass the cache and write the files directly to -the main array.

      When mover runs it will attempt to move files to the main array as -long as they are not currently open. Which array drive will get the -file is controlled by the combination of the Allocation method, -Split level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive -will get the file is controlled by the combination of the -Allocation method, Split level, and Minimum Free Space setting -for the share.

      When mover runs it will take no action on files for this share -even if there are files on the cache that logically belong to this -share.

    • Only: Write new files directly to the cache. If the free space -on the cache is below the Minimum free space setting for the cache -then the write will fail with an out-of-space error.

      When mover runs it will take no action on files for this share -even if there are files on the main array that logically belong to -this share.

    • Prefer: Write new files to the cache if the free space on the -cache is above the Minimum free space setting for the share, and -if the free space falls below that value then write the files to the -main array instead.

      When mover runs it will attempt to move any files for this share -that are on the main array back to the cache as long as the free -space on the cache is above the Minimum free space setting for the -cache

      It is the default setting for the appdata and System Shares that -are used to support the Docker and VM sub-systems. In typical use -you want the files/folders belonging to these shares to reside on -the cache as you get much better performance from Docker containers -and VMs if their files are not on the main array (due to the cost of -maintaining parity on the main array significantly slowing down -write operations).

      This setting works for a share even if you do not have (yet) a -physical cache drive(s) as then files will simply be written -directly to the array. If at a later date you add a cache drive -mover will now automatically try and move the files in any share set -to Prefer to the pool defined as the cache for the share to improve -performance. This is why it is the default for shares that are -typically located on the cache rather than Only as it caters for -those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where one wants -the files for a particular share initially written to a pool acting as a -cache to maximise write speed, but later you want it to be moved to the -main array for long term storage. Most of the time all that is required -is to set the Use Cache setting for the share to Yes and the default -behaviour handles the rest with no further user interaction.

    Sometimes for one reason or another users find that the files seem to be -'stuck' on a pool. The way to proceed in such a case to get the files -belonging to a share from a pool onto the main array is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved).
    • Change the Use Cache setting for the share to Yes
    • Manually run mover from the Main tab to get it to move Yes -type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use if you disabled them earlier.
    • (optional) change the Use Cache setting to Only to say files -for this share can never be written to the array.
    Moving Files from the Array to a Pool (cache)

    One typically wants files associated with running Docker containers or -VMs on a pool to maximise performance. It is not unusual for one reason -or another to find that one has files on the main array which you really -want to be on a pool. In particular this is likely to happen for the -appdata or system shares

    The way to proceed to get the files belonging to a share from the main -array onto a pool is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved)
    • Change the Use Cache setting for the share to Prefer
    • Manually run mover from the Main tab to get it to move -Prefer type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use.
    • (optional) change the Use Cache setting to No to say files for -this share can never be cached on a pool.

    Disk Shares

    These are shares that relate to individual array drives or pools within -the Unraid system and that are visible over the network. By default if -User Shares are enabled then Disk Shares are not enabled (see the -IMPORTANT section below for the reason why this is the case). If you -want the Disk Shares to be enabled then this is done under -Settings->Global Share Settings. The Disk Shares will then appear in -the Unraid GUI under a Disk Shares section on the Shares tab. You will -want to modify the user permissions to restrict network user access if -desired, just like User Shares.

    When viewed at the Linux level the physical devices or pools will appear -directly under /mnt with a name corresponding to the array drive or -pool. (This happens regardless of whether Disk Shares are enabled) . -Examples of such names are:

    /mnt/diskX: these are array drives where X corresponds to the disk -number that shows in the Unraid GUI. The corresponding Disk Share at the -network level would be diskX

    /mnt/pool-name: These are pools. A single pool can actually consist of -multiple drives but Unraid treats them as if they were one drive. The -commonest example of a pool-name is 'cache' but it can be any name -defined by the user. The corresponding Disk Share at the network level -would be pool-name.

    The Unraid flash device that is used to boot Unraid and store all user -settings is also a physical device, but is not normally considered to be -a Disk Share. If you want it visible on the network then you can click -on it in the Main tab and set it to appear at the network level as the -'flash' share. At the Linux level it is mounted at /boot

    IMPORTANT -If you have both Disk Shares and User Shares enabled then there -is an important restriction that you must observe if you want to -avoid potential data loss. What you must NEVER do is copy -between a User Share and a Disk Share in the same copy -operation where the folder name on the Disk Share corresponds to the -User Share name. This is because at the base system level Linux does -not understand User Shares and therefore that a file on a Disk -Share and a User Share can be different views of the same -file. If you mix the share types in the same copy command you can -end up trying to copy the file to itself which results in the file -being truncated to zero length and its content thus being lost.

    There is no problem if the copy is between shares of the same type, -or copying to/from a disk mounted as an Unassigned Device.

    There is another quirk of the interaction between Linux and the Unraid -User Share system that users can encounter if they are working at the -Disk Share level. The Linux command for Move is implemented by first -trying a rename on the file (which is fast) and only if that fails does -it do a copy then delete operation. This can mean that under some -circumstances when working locally on the server (e.g. from the command -line when you try to move files from one user share to another, Linux -will often simply rename the files so they have a different path on the -same disk, in violation of any user share settings such as included -disks. The workaround for this is to instead explicitly copy from source -to destination so that new files get created following the user share -settings, then deleting from the source.

    Network access

    You can control what protocols should be supported for accessing the -Unraid server across the network. Click on Settings->Network Services -to see the various options available.. These options are:

    • SMB: This the standard protocol used by Windows systems. It is -widely implemented on other systems.
    • NFS: Network File System. This is a protocol widely -used on Unix compatible systems.
    • AFP: Apple File Protocol. This is the protocol that -has historically been used on Apple Mac systems. It is now a -deprecated option as the latest versions of MacOS now use SMB as the -transferred protocol for accessing files and folders over the -network.
    • FTP: File Transfer Protocol.

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the visibility of the share on the -network for each of the protocols you have enabled. The setting is -labelled Export and has the following options:

    • Yes: With this setting the share will be visible across the -network.
    • Yes (Hidden): With this setting the share can be accessed across -the network but will not be listed when browsing the shares on the -server. Users can still access the share as long as they know the -name and the user is prepared to enter in manually.
    • No: With this option selected then it is not possible to access -the share across the network.

    Access Permissions

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the access rights of the share on the -network for each of the protocols you have enabled. The setting is -labelled Security and has the following options:

    • Public: All users have both read and write access to the -contents of the share
    • Secure: All users including guests have read access, you select -which of your users have write access
    • Private: You select which of your users have access and for each -user whether that user has read/write or read-only access.

    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares that many -users fall foul of:

    • This is the fact that Windows only allows a single username to -be used to connect to a specific server at any given time. All -attempts to then connect to a different share on the same server -that are not public shares put up a Username/Password prompt and -this fails as though you have entered an incorrect password for this -username. If you have any shares on the server set to Private or -Secure access it can therefore be important that you connect to -such a share first before any shares set for Public access which -may connect as a guest user and make subsequent attempts to connect -with a specific user fail.
    • A workaround that can help with avoiding this issue is the fact that -if you access a server both by it's network name and via it's IP -address then Windows will treat it a two separate servers as far as -authentication is concerned.
    - - +

    Shares

    tip

    Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.

    One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives.

    There are two types of shares in Unraid:

    It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder.

    When you first initialize your array, Unraid automatically creates a handful of user shares. These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data.

    You manage shares from the Shares tab in Unraid. You enable or disable shares in Settings > Global Share Settings, with user shares being enabled by default.

    + + \ No newline at end of file diff --git a/es/unraid-os/manual/shares/network-access/index.html b/es/unraid-os/manual/shares/network-access/index.html new file mode 100644 index 000000000..d2aedee53 --- /dev/null +++ b/es/unraid-os/manual/shares/network-access/index.html @@ -0,0 +1,22 @@ + + + + + +Network access | Unraid Docs + + + + + + + + + + +
    +

    Network access

    Communication protocols

    For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:

    • SMB, or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X.
    • NFS, or Network File System, is a widely-used protocol on Unix-compatible systems.
    • FTP, or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.
    info

    As of Unraid 6.9, AFP support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in Settings > SMB set the Enhanced macOS interoperability parameter to Yes.

    Protocol selection

    Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases.

    For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer.

    Access permissions at share level

    Each protocol can be configured at the share level. On the Shares tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled Export and has the following options:

    • Yes - The share will be visible across the network.
    • Yes (Hidden) - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually.
    • No - This will disable network access through that protocol, for that share.

    Share security

    Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available.

    For example, you may configure a movies share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials.

    When you select an existing share on the Shares tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols you have enabled.

    The Security setting has the following options:

    • Public - The share is unsecured and all users have both read and write access to the contents of the share.
    • Secure - The share is secured and all users, including guests, have read access. You can select which of your users have write access.
    • Private - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.
    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails.

    If you have any shares on the server set to Private or Secure access, it is important that you connect to that share first, before any shares set for Public access.

    As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/shares/user-shares/index.html b/es/unraid-os/manual/shares/user-shares/index.html new file mode 100644 index 000000000..5e6aff565 --- /dev/null +++ b/es/unraid-os/manual/shares/user-shares/index.html @@ -0,0 +1,27 @@ + + + + + +User shares | Unraid Docs + + + + + + + + + + +
    +

    User shares

    tip

    Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.

    Overview

    User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view.

    You manage User Shares from the Shares tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes.

    When viewed at the Linux level, user shares appear under the path /mnt/user. This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for Disk Shares.

    Note that current releases of Unraid also include the mount point /mnt/user0 that shows the files in User Shares omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release.

    The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the allocation method, included or excluded disks, and the split level.

    If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action.

    caution

    There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation.

    This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.

    Share settings

    tip

    When you configure the settings for the share, select the Help icon in the top-right of the Unraid webGUI for detailed information on the individual settings.

    Minimum free space

    The Minimum free space setting is used with the allocation method and split level. This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk).

    note

    This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.

    When Unraid receives a request to store a file, say for example file.eg, it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer.

    We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large.

    The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter 50GB. Note that new user shares will have a default 10% minimum free space assignment.

    Unraid will still place files on the disk if the split level does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error.

    caution

    There is also a Minimum Free Space setting for cache pools. This is used to determine if a new file for a user share, with the Use Cache setting of Yes or Prefer, should be written to the +cache or, instead, bypass the cache and go directly to the array.

    This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.

    Primary and Secondary storage (Unraid 6.12)

    The Primary storage parameter defines the location - Cache, Array, or any named pool - to which new files will be written for the selected share. The Secondary storage parameter sets the location where files will be moved to if there is not enough room in primary storage.

    When primary storage is below the Minimum Free Space value, new files and folders are created in secondary storage.

    note

    If you select an array or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.

    Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users.

    For the Primary storage drop-down:

    • This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of Cache
      • any named pool can be selected.
      • Array can be selected.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this share. Note that secondary storage is optional.
      • if Primary storage is a pool name, then the only options are None and Array.
      • if Primary storage is Array, then only None appears as an option.

    Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)

    The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently.

    INFO

    Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called Mover that is used in conjunction with user shares. It's behavior is controlled by the Use Cache for new files setting under each user share. The way these settings operate is as follows:

    • Yes: Write new files to the cache as long as the free space on the cache is above the Minimum free space value. If the free space is below that then bypass the cache and write the files directly to the main array.

      When Mover runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the Allocation Method, Split Level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive will get the file is controlled by the combination of the Allocation method, Split level, and Minimum Free Space setting for the share.

      When Mover runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.

    • Only: Write new files directly to the cache. If the free space on the cache is below the Minimum free space setting for the cache then the write will fail with an out-of-space error.

      When Mover runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.

    • Prefer: Write new files to the cache if the free space on the cache is above the Minimum free space setting for the share, and if the free space falls below that value then write the files to the main array instead.

      When Mover runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the Minimum free space setting for the cache

      It is the default setting for the appdata and system shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations.

      This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, Mover will automatically try and move the files in any share set to Prefer to the pool defined as the cache for the share. This is why Prefer is the default for shares that are located on the cache rather than Only as it caters to those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage.

    Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Cache -> Array.
    3. Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the pool (cache) to the array.
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Moving Files from the Array to a Pool (cache)

    You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the appdata or default system shares.

    The way to proceed to get the files belonging to a share from the main array onto a pool is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Array -> Cache.
    3. Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the array to the pool (cache).
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Allocation method

    When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user +share, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation.

    The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: High-water, Most-free, or Fill-up.

    High-water method

    The High-water setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level.

    Example

    If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass.

    • While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left.
    • When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space
    • Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.

    This pattern continues with progressively smaller high-water levels until the disks are full.

    Fill-up method

    The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free +space setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full.

    Most-free method

    The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the +most free space.

    Split level

    The Split level setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level +numbering starts with the user share being the top level and given the number 1.

    Automatically split any directory as required

    When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured Allocation method. If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory.

    Automatically split only the top level directory as required

    When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory.

    Automatically split only the top "N" level directories as required

    Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.

    Manual - do not automatically split directories

    When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists.

    info

    In the event of there being conflicts between the Minimum free space, Split Level and the Allocation method settings in deciding which would be an appropriate drive to use, the Split level setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.

    Included or excluded disks

    These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under Settings > Global Share settings are allowed.

    Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file.

    info

    The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If Docker or VMs are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container.
    • system - This is the default location for storing the docker application binaries, and VM XML templates
    • domains - This is the default location for storing virtual disk images (vdisks) that are used by VMs.
    • isos - This is the default location for storing CD ISO images for use with VMs.
    info

    We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the isos share that can be shared over the network so you can place new ISOs to use in virtual machines.

    + + + + \ No newline at end of file diff --git a/es/unraid-os/manual/storage-management/index.html b/es/unraid-os/manual/storage-management/index.html index 6322eb9f4..52e30a090 100644 --- a/es/unraid-os/manual/storage-management/index.html +++ b/es/unraid-os/manual/storage-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Storage Management

    To assign devices to +

    Storage Management

    To assign devices to the array and/or cache, first login to the server's webGui. Click on the Main tab and select the devices to assign to slots for parity, data, and cache disks. Assigning devices to Unraid is easy! Just @@ -920,7 +920,7 @@ parity system is file system agnostic as it works at the physical sector level and is not even aware of the file system that is in use on any particular drive.

    In addition drives can be -encrypted. A point to +encrypted. A point to note about using encryption is that if you get any sort of file system corruption then encryption can make it harder (and sometimes impossible to recover data on the corrupted file system.

    If using a cache pool (i.e multiple drives) then the supported types are @@ -1412,8 +1412,8 @@ using the BTRFS file system.

    BTRFS supports a variety of RAID profiles and these will perform more like a traditional RAID system giving much higher throughput than the main Unraid array.

    Recovery after drive failure tends to be harder and more prone to lead -to data loss which is one disadvantage of using pools for everything.

    - - +to data loss which is one disadvantage of using pools for everything.

    + + \ No newline at end of file diff --git a/es/unraid-os/manual/tools/index.html b/es/unraid-os/manual/tools/index.html index 24d934c69..b34f8c1bd 100644 --- a/es/unraid-os/manual/tools/index.html +++ b/es/unraid-os/manual/tools/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools +

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools to help with managing an Unraid server on a day-to-day basis. The list of tools available is often extended by 3rd party supplied plugins.

    Unraid Standard Tools

    This section covers tools that are supplied as standard with an Unraid installation. They are grouped into a number of sections for ease of @@ -68,8 +68,8 @@ application's appdata config files without utilizing the command prompt)

    Docker Safe New Perms

    This is part of the Fix Common Problems plugin.

    It differs from the standard Unraid New Permissions tool in that it will never change permissions on the appdata folder/share that is normally -used to store working files for docker containers.

    About

    Update Assistant

    - - +used to store working files for docker containers.

    About

    Update Assistant

    + + \ No newline at end of file diff --git a/es/unraid-os/manual/troubleshooting/index.html b/es/unraid-os/manual/troubleshooting/index.html index 5ae9cc784..126a32f80 100644 --- a/es/unraid-os/manual/troubleshooting/index.html +++ b/es/unraid-os/manual/troubleshooting/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This +

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This section is intended to help with resolving issues that are most commonly encountered.

    There are some important general guidelines that it is recommended that a user follows that will help with any troubleshooting that may be @@ -134,7 +134,7 @@ do so to provide the logs captured by the syslog server as these are not included in the standard system diagnostics.

    Docker Containers

    The standard system diagnostics do not contain much that will help with diagnosing issues with specific docker containers.

    MORE DETAIL NEEDED

    VMs

    The standard system diagnostics do not contain much that will help with -diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting +diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting Started section of the documentation.

    If for any reason you decide that you need to redo the flash drive then it is a good idea to make sure you first backup the current flash drive @@ -600,7 +600,7 @@ User Share will never appear to be on the same mount point so a copy + delete is done automatically.

  • Make sure the mount points for source and target appear to be different at the Linux level.
  • Move between physical drives rather than at the User Share level.
  • - - + + \ No newline at end of file diff --git a/es/unraid-os/manual/upgrade-instructions/index.html b/es/unraid-os/manual/upgrade-instructions/index.html index 4d4a40a23..f0c8b9e5f 100644 --- a/es/unraid-os/manual/upgrade-instructions/index.html +++ b/es/unraid-os/manual/upgrade-instructions/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your +

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your USB flash device. You can do this by copying the entire contents of the "flash" share to a separate computer.

    From version 6.4 or higher

    1. Boot your server up and login to the web interface
    2. Click the Tools tab
    3. Click "Update OS" under the About section
    4. Click "Check for Updates" to see if a new release is available
    5. Click "Update" to apply the update
    6. Once the upgrade is complete, reboot your server for it to take effect

    Note: You can optionally install releases from the "Next" branch as @@ -100,7 +100,7 @@ earlier.

    From version 5.x or earlier

    Please see this forum post for information on upgrading.

    Manual Upgrade or Downgrade

    This is useful if you don't have access to the Unraid webgui for some reason.

    Manual upgrade using a network share or by putting the flash drive in another system

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Unzip that file locally
    • Access the 'flash' share on the server, or physically put the flash drive in the local computer
    • If the previous directory does not exist on the flash drive, create it
    • Move (not copy) bz* and changes.txt from the root of the flash drive to the previous directory, overwriting files as needed
    • Copy bz* and changes.txt from the unzipped file to the root of the flash drive
    • Reboot the server

    Manual upgrade from the Unraid command line

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Login to the Unraid server using SSH, telnet, or a local keyboard/mouse
    • Type these commands one line at a time and press enter. If there are errors along the way, stop and ask for help:
    cd /tmp
    rm -f unraid.zip
    rm -rf unraid_install
    wget -O unraid.zip <paste the URL from above>
    [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP the file was not downloaded"
    unzip -d unraid_install unraid.zip
    [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP the file was not extracted properly"
    [[ ! -d /boot/previous ]] && mkdir /boot/previous
    mv /boot/bz* /boot/previous
    mv /boot/changes.txt /boot/previous
    cp unraid_install/bz* /boot
    cp unraid_install/changes.txt /boot
    sync -f /boot
    sleep 5
    reboot
    - - + + \ No newline at end of file diff --git a/es/unraid-os/manual/users/index.html b/es/unraid-os/manual/users/index.html index 55a6d5d1f..03434cdfb 100644 --- a/es/unraid-os/manual/users/index.html +++ b/es/unraid-os/manual/users/index.html @@ -9,16 +9,16 @@ - - - + + +
    -

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does +

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does not support the standard set of user facilities available on most Linux systems. Instead the users defined in Unraid can be divided into:

    • Admin user:
    • Share permissions Users:
    • Other Users:

    Admin User (root)

    Share permissions Users

    Other Users

    - - + + \ No newline at end of file diff --git a/es/unraid-os/manual/vm-management/index.html b/es/unraid-os/manual/vm-management/index.html index bad5a897a..585d488ce 100644 --- a/es/unraid-os/manual/vm-management/index.html +++ b/es/unraid-os/manual/vm-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running +

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running Linux-based applications such as media servers, backup software, and file sharing solutions, virtual machines add support for non-Linux workloads and the ability to utilize devices that the host cannot (think @@ -382,7 +382,7 @@ file to install the QEMU guest agent.

  • Shut down your VM.
  • Step 6: Remove the temporary vdisk and start the VM

    1. Click to edit the VM using the form-based editor (the pencil symbol)
    2. Remove the secondary vdisk
    3. Ensure the primary vdisk is pointing to your original vdisk file (it may be pointing to the secondary vdisk, and if so, update it to point to your actual vdisk)
    4. When completed, click Update
    5. Start your VM
    6. Verify your device manager shows no warnings
    7. DONE!
    - - + + \ No newline at end of file diff --git a/es/unraid-os/manual/vm-support/index.html b/es/unraid-os/manual/vm-support/index.html index a05bd0e5d..37ce3b295 100644 --- a/es/unraid-os/manual/vm-support/index.html +++ b/es/unraid-os/manual/vm-support/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    VM Support

    Overview

    Unraid 6 currently supports the virtualization of nearly any 64-bit +

    - - + + \ No newline at end of file diff --git a/es/unraid-os/manual/what-is-unraid/index.html b/es/unraid-os/manual/what-is-unraid/index.html index 4fdcdc3a5..a476d2e1d 100644 --- a/es/unraid-os/manual/what-is-unraid/index.html +++ b/es/unraid-os/manual/what-is-unraid/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you +

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you with the ultimate control over your hardware. In addition to performing the duties of a robust NAS (network-attached storage), Unraid is also capable of acting as an application server and virtual machine host. @@ -208,8 +208,8 @@ transfer files from the cache to the array.

  • Docker Containers. Manage application controls from a single pane of glass. Add applications with minimal effort using community-provided templates.
  • Virtual Machines. Choose between pre-created virtual machine -images or create your own custom VM from scratch.
  • - - +images or create your own custom VM from scratch.
    + + \ No newline at end of file diff --git a/es/unraid-os/manual/zfs/placeholder/index.html b/es/unraid-os/manual/zfs/placeholder/index.html index 17d038c75..d945df4c0 100644 --- a/es/unraid-os/manual/zfs/placeholder/index.html +++ b/es/unraid-os/manual/zfs/placeholder/index.html @@ -9,14 +9,14 @@ - - - + + + - - +
    + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.10.0/index.html b/es/unraid-os/release-notes/6.10.0/index.html index 445fb3131..99b83f26d 100644 --- a/es/unraid-os/release-notes/6.10.0/index.html +++ b/es/unraid-os/release-notes/6.10.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -80,7 +80,7 @@ daemon, we recommend setting up either a static DHCP lease, or assigning a static IP address for your server.  Finally, we have set up nginx such that the URL's:

    • http://<server-name>.<local-tld>/

    or

    • https://<server-name>.<local-tld>/

    will redirect to https://[lan-ip].[hash].myunraid.net

    More information including use cases may be found in Documentation -here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been +here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been compiled with OpenGL support, and ARM emulation (experimental).

    Windows 11 Support

    To support Windows 11 which requires TPM and Secure boot, we have added TPM emulation; and, added a "Windows 11" VM template which automatically selects TPM-aware OVMF bios.  Also, here are @@ -175,7 +175,7 @@ component called wsdd2 in an effort to eliminate instances where the wsd daemon would start consuming 100% of a CPU core.

  • Fixed issue where you couldn't create a docker image on a share name that contains a space.
  • Fixed issue where 'mover' would not move to a pool name that -contains a space.
  • Fixed issue in User Share +contains a space.
  • Fixed issue in User Share file system where permissions were not being honored.
  • Fixed jumbo frames not working.
  • sysctl: handle net.netfilter.nf_conntrack_count max exceeded (increase setting to 131072) - hattip to Community Member @DieFalse
  • Fixed bug found by @thohell where md_sync_limit was not being honored to limit stripe_head cache usage when other I/O is active. @@ -259,7 +259,7 @@ shares
  • webgui: jQuery: version 3.6.0
  • webgui: present CA-signed certificate subject as a link
  • webgui: privatize host in diagnostics
  • webgui: refactor UpdateDNS.php: anonymize verbose output by default, other improvements
  • webgui: remove 'My Servers' skeleton page
  • webgui: require sign in to provision cert
  • webgui: support simultaneous LAN SSL with self-signed cert and DNS-based SSL with Lets Encrypt cert
  • webgui: various Multi-language corrections
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.10.1/index.html b/es/unraid-os/release-notes/6.10.1/index.html index ee5ca56d4..090c4fea2 100644 --- a/es/unraid-os/release-notes/6.10.1/index.html +++ b/es/unraid-os/release-notes/6.10.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ introduced a regression where only partition 1 was considered, leaving those users unable to complete the boot sequence.

    This is fixed in 6.10.1 - and this is the only functional change in 6.10.1 vs. 6.10.0.

    Change Log vs. Unraid OS 6.10.0

    Management

    • startup: fix regression: support USB flash boot from other than partition 1
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.10.2/index.html b/es/unraid-os/release-notes/6.10.2/index.html index 838b00cd0..36975765a 100644 --- a/es/unraid-os/release-notes/6.10.2/index.html +++ b/es/unraid-os/release-notes/6.10.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -50,7 +50,7 @@ 'Auto' to 'Strict'
  • webgui: Fixed: smGlue not included when selecting a controller
  • webgui: Fixed: allow share names with embedded ampersand
  • webgui: add LXC terminal support (for LXC Plugin)
  • webgui: Docker Web UI to use Docker label for icons as fallback
  • webgui: VM Manager: support libvirt networks (make libvirt networks accessible via gui)
  • webgui: fix issue where 'root' login works with password from another username which includes string 'root'
  • webgui: Update OS page spelling corrction: warninging -> warning
  • webgui: helptext review: minor corrections
  • - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.10.3/index.html b/es/unraid-os/release-notes/6.10.3/index.html index f921cca9c..238d9160c 100644 --- a/es/unraid-os/release-notes/6.10.3/index.html +++ b/es/unraid-os/release-notes/6.10.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -20,7 +20,7 @@ reports of data corruption involved platforms which also (coincidentally) used 'tg3' network driver. If you created a blank 'config/modprobe.d/tg3.conf' file you may remove it.

    Plugin authors: A plugin file may include an <ALERT> tag which displays a markdown formatted message when a new version is available. Use this to give instructions or warnings to users before the upgrade is done.

    Brought back color-coding in logging windows.

    Bug fixes

    Fix issue detecting Mellanox NIC.

    Misc. webGUI bug fixes

    Change Log vs. Unraid OS 6.10.2

    Base distro

    • no changes

    Linux kernel

    • version 5.15.46-Unraid
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough

    Management

    • startup: improve network device detection
    • webgui: Added color coding in log files
    • webgui: In case of flash corruption try the test again
    • webgui: Improved syslog reading
    • webgui: Added log size setting when viewing syslog
    • webgui: Plugin manager: add ALERT message function
    • webgui: Add INFO icon to banner
    • webgui: Added translations to PageMap page
    • webgui: Fix: non-correcting parity check actually correcting if non-English language pack installed
    • webgui: Updated azure/gray themes
      • Better support for Firefox
      • Move utilization and notification indicators to the right
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.11.0/index.html b/es/unraid-os/release-notes/6.11.0/index.html index fba3d0eab..7088bc853 100644 --- a/es/unraid-os/release-notes/6.11.0/index.html +++ b/es/unraid-os/release-notes/6.11.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -25,7 +25,7 @@ "btrfs fi" commands will attempt to read btrfs metadata from this device which fails because there really is not a btrfs filesystem there.

  • Fixed bug in mover that prevented files from being moved from unRAID array to a cache pool (mode Prefer) if the share name contains a space.

  • Change Log vs. Unraid OS 6.10.3

    Management

    • Add sha256 checks of un-zipped files in unRAIDServer.plg.
    • bash: in /etc/profile omit "." (current directory) from PATH
    • docker: do not call 'docker stop' if there are no running containers
    • emhttpd: improve standby (spinning) support
    • mover: fixed issue preventing moving filed from array to cache if share name contains a space
    • rc.nginx: enable OCSP stapling on certs which include an OCSP responder URL
    • rc.nginx: compress 'woff' font files and instruct browser to cache
    • rc.wireguard: add better troubleshooting for WireGuard autostart
    • rc.S: support early load of plugin driver modules
    • SMB: fixed 'fruit' settings for the USB Flash boot device
    • SMB: remove NTLMv1 support since removed from Linux kernel
    • SMB: (temporarily) move vfs_fruit settings into separate /etc/samba/smb-fruit.conf file
    • SMB: (temporarily) get rid of Samba 'idmap_hash is deprecated' nag lines
    • startup: Prevent installing downgraded versions of packages which might exist in /boot/extra
    • upc: version v1.3.0
    • webgui: Plugin system update
      • Detach frontend and backend operation
      • Use nchan as communication channel
      • Allow window to be closed while backend continues
      • Use SWAL as window manager
      • Added multi remove ability on Plugins page
      • Added update all plugins with details
    • webgui: docker: use docker label as primary source for WebUI
      • This makes the 'net.unraid.docker.webui' docker label the primary source when parsing the web UI address. If the docker label is missing, the template value will be used instead.
    • webgui: Update Credits.page
    • webgui: VM manager: Fix VM log can not open when VM name has an embedded '#'
    • webgui: Management Access page: add details for self-signed certs
    • webgui: Parity check: fix regression error
    • webgui: Remove session creation in scripts
    • webgui: Update ssh key regex
      • Add support for ed25519/sk-ed25519
      • Remove support for ecdsa (insecure)
      • Use proper regex to check for valid key types
    • webgui: misc. style updates
    • webgui: Management access: HTTP port setting should always be enabled
    • webgui: Fix: preserve vnc port settings
    • webgui: Fix regression error in plugin system
    • webgui: Fix issue installing registration keys
    • webgui: Highlight case selection when custom image is selected
    • webgui: fix(upc): v1.4.2 apiVersion check regression
    • webgui: Update Disk Capabilities pages for NVME drives
    • webgui: chore(upc): v1.6.0
    • webgui: Plugin system and docker update
    • webgui: System info - style update
    • webgui: Plugins: keep header buttons in same position
    • webgui: Prevent overflow in container size for low resolutions
    • webgui: VM Manager: Add boot order to GUI and CD hot plug function
    • webgui: Docker Manager: add ability to specify shell with container label.
    • webgui: fix: Discord notification agent url
    • webgui: Suppress info icon in banner message when no info is available
    • webgui: Add Spindown message and use -n for identity if scsi drive.
    • webgui: Fix SAS Selftest
    • webgui: Fix plugin multi updates
    • webgui: UPS display enhancements:
      • Add icon for each category
      • Add translation in UPS section on dashboard
      • Add Output voltage / frequency value
      • Add coloring depending on settings
      • Normalize units
      • Make updates near real-time
      • Added UPS model field
    • webgui: JQuery: version 3.6.1
    • webgui: JQueryUI: version 1.13.2
    • webgui: improved 'cache busting' on font file urls
    • webgui: Fixed: text color in docker popup window sometimes wrong
    • webgui: Fixed: show read errors during Read Check
    • webgui: VM Manager: Add USB Startup policy; add Missing USB support
    • webgui: Docker: fixed javascript error when no containers exist
    • webgui: added 3rd party system diagnostics
      • added diagnostics for third party plugin packages
      • added diagnostics for /dev/dri devices
      • added diagnostics for /dev/dvb devices
      • added diagnostics for nvidia devices

    Linux kernel

    • version 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166)
    • md/unraid: version 2.9.24
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough
    • CONFIG_VIRTIO_IOMMU: Virtio IOMMU driver
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_FIREWIRE: FireWire driver stack
    • CONFIG_FIREWIRE_OHCI: OHCI-1394 controllers
    • CONFIG_FIREWIRE_SBP2: Storage devices (SBP-2 protocol)
    • CONFIG_FIREWIRE_NET: IP networking over 1394
    • CONFIG_INPUT_UINPUT: User level driver support
    • CONFIG_INPUT_JOYDEV: Joystick interface
    • CONFIG_INPUT_JOYSTICK: Joysticks/Gamepads
    • CONFIG_JOYSTICK_XPAD: X-Box gamepad support
    • CONFIG_JOYSTICK_XPAD_FF: X-Box gamepad rumble support
    • CONFIG_JOYSTICK_XPAD_LEDS: LED Support for Xbox360 controller 'BigX' LED
    • CONFIG_MLX5_TLS: Mellanox Technologies TLS Connect-X support
    • CONFIG_MLX5_ESWITCH: Mellanox Technologies MLX5 SRIOV E-Switch suppor
    • CONFIG_MLX5_CLS_ACT: MLX5 TC classifier action support
    • CONFIG_MLX5_TC_SAMPLE: MLX5 TC sample offload support
    • CONFIG_MLXSW_SPECTRUM: Mellanox Technologies Spectrum family support
    • CONFIG_NET_SWITCHDEV: Switch (and switch-ish) device support
    • CONFIG_TLS: Transport Layer Security support
    • CONFIG_TLS_DEVICE: Transport Layer Security HW offload
    • CONFIG_TLS_TOE: Transport Layer Security TCP stack bypass
    • CONFIG_VMD: Intel Volume Management Device Driver
    • added additional sensor drivers:
      • CONFIG_AMD_SFH_HID: AMD Sensor Fusion Hub
      • CONFIG_SENSORS_AQUACOMPUTER_D5NEXT: Aquacomputer D5 Next watercooling pump
      • CONFIG_SENSORS_MAX6620: Maxim MAX6620 fan controller
      • CONFIG_SENSORS_NZXT_SMART2: NZXT RGB & Fan Controller/Smart Device v2
      • CONFIG_SENSORS_SBRMI: Emulated SB-RMI sensor
      • CONFIG_SENSORS_SHT4x: Sensiron humidity and temperature sensors. SHT4x and compat.
      • CONFIG_SENSORS_SY7636A: Silergy SY7636A
      • CONFIG_SENSORS_INA238: Texas Instruments INA238
      • CONFIG_SENSORS_TMP464: Texas Instruments TMP464 and compatible
      • CONFIG_SENSORS_ASUS_WMI: ASUS WMI X370/X470/B450/X399
      • CONFIG_SENSORS_ASUS_WMI_EC: ASUS WMI B550/X570
      • CONFIG_SENSORS_ASUS_EC: ASUS EC Sensors
    • patch: add reference to missing firmware in drivers/bluetooth/btrtl.c
      • rtl8723d_fw.bin
      • rtl8761b_fw.bin
      • rtl8761bu_fw.bin
      • rtl8821c_fw.bin
      • rtl8822cs_fw.bin
      • rtl8822cu_fw.bin
    • CONFIG_BPF_UNPRIV_DEFAULT_OFF: Disable unprivileged BPF by default
    • patch: quirk for Team Group MP33 M.2 2280 1TB NVMe (globally duplicate IDs for nsid)
    • turn on all IPv6 kernel options:
      • CONFIGINET6*
      • CONFIGIPV6*
    • CONFIG_RC_CORE: Remote Controller support
    • CONFIG_SFC_SIENA: Solarflare SFC9000 support
    • CONFIG_SFC_SIENA_MCDI_LOGGING: Solarflare SFC9000-family MCDI logging support
    • CONFIG_SFC_SIENA_MCDI_MON: Solarflare SFC9000-family hwmon support
    • CONFIG_SFC_SIENA_SRIOV: Solarflare SFC9000-family SR-IOV support
    • CONFIG_ZRAM: Compressed RAM block device support
    • CONFIG_ZRAM_DEF_COMP_LZ4: Default ram compressor (lz4)
    • turn on all EDAC kernel options
      • CONFIG_EDAC: EDAC (Error Detection And Correction) reporting
      • CONFIGEDAC*

    Base distro

    • aaa_base: version 15.1
    • aaa_glibc-solibs: version 2.36
    • aaa_libraries: version 15.1
    • at: version 3.2.3
    • bind: version 9.18.6
    • btrfs-progs: version 5.19.1
    • ca-certificates: version 20220622
    • cifs-utils: version 7.0
    • coreutils: version 9.1
    • cracklib: version 2.9.8
    • cryptsetup: version 2.5.0
    • curl: version 7.85.0
    • cyrus-sasl: version 2.1.28
    • dbus: version 1.14.0
    • dhcpcd: version 9.4.1
    • dmidecode: version 3.4
    • docker: version 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030)
    • etc: version 15.1
    • ethtool: version 5.19
    • eudev: version 3.2.11
    • file: version 5.43
    • findutils: version 4.9.0
    • firefox: version 105.0.r20220922151854-x86_64 (AppImage)
    • fuse3: version 3.12.0
    • gawk: version 5.2.0
    • gdbm: version 1.23
    • git: version 2.37.3
    • glib2: version 2.72.3
    • glibc: version 2.36
    • glibc-zoneinfo: version 2022c
    • gnutls: version 3.7.7
    • gptfdisk: version 1.0.9
    • grep: version 3.8
    • gzip: version 1.12
    • hdparm: version 9.65
    • htop: version 3.2.1
    • icu4c: version 71.1
    • inotify-tools: version 3.22.6.0
    • iperf3: version 3.11
    • iproute2: version 5.19.0
    • iptables: version 1.8.8
    • jemalloc: version 5.3.0
    • json-c: version 0.16_20220414
    • json-glib: version 1.6.6
    • kmod: version 30
    • krb5: version 1.20
    • libaio: version 0.3.113
    • libarchive: version 3.6.1
    • libcap-ng: version 0.8.3
    • libcgroup: version 3.0.0
    • libdrm: version 2.4.113
    • libepoxy: version 1.5.10
    • libffi: version 3.4.2
    • libgcrypt: version 1.10.1
    • libgpg-error: version 1.45
    • libidn: version 1.41
    • libjpeg-turbo: version 2.1.4
    • libmnl: version 1.0.5
    • libnetfilter_conntrack: version 1.0.9
    • libnfnetlink: version 1.0.2
    • libnftnl: version 1.2.3
    • libnl3: version 3.7.0
    • libpng: version 1.6.38
    • libssh: version 0.10.4
    • libtasn1: version 4.19.0
    • libtirpc: version 1.3.3
    • liburcu: version 0.13.1
    • libusb: version 1.0.26
    • libwebp: version 1.2.4
    • libxml2: version 2.9.14
    • libxslt: version 1.1.36
    • libzip: version 1.9.2
    • logrotate: version 3.20.1
    • lsof: version 4.95.0
    • lzip: version 1.23
    • mc: version 4.8.28
    • mcelog: version 189
    • nano: version 6.4
    • nfs-utils: version 2.6.2
    • nghttp2: version 1.49.0
    • nginx: version 1.22.0
    • ntfs-3g: version 2022.5.17
    • ntp: version 4.2.8p15
    • oniguruma: version 6.9.8
    • openssh: version 9.0p1
    • openssl: version 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274)
    • openssl-solibs: version 1.1.1q (CVE-2022-1292)
    • p11-kit: version 0.24.1
    • pciutils: version 3.8.0
    • pcre2: version 10.40
    • perl: version 5.36.0
    • php: version 7.4.30 (CVE-2022-31625 CVE-2022-31626)
    • pkgtools: version 15.1
    • rpcbind: version 1.2.6
    • rsync: version 3.2.6
    • samba: version 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742)
    • sqlite: version 3.39.3
    • sudo: version 1.9.11p3
    • sysfsutils: version 2.1.1
    • sysstat: version 12.6.0
    • sysvinit-scripts: version 15.1
    • talloc: version 2.3.4
    • tar: version 1.34
    • tevent: version 0.13.0
    • tree: version 2.0.2
    • util-linux: version 2.38.1
    • wayland: version 1.21.0
    • wget: version 1.21.3
    • xfsprogs: version 5.18.0
    • xz: version 5.2.6
    • zlib: version 1.2.12

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.11.1/index.html b/es/unraid-os/release-notes/6.11.1/index.html index 1368f043a..25f8c4701 100644 --- a/es/unraid-os/release-notes/6.11.1/index.html +++ b/es/unraid-os/release-notes/6.11.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ at system boot up. Users are advised to regenerate the WG configs. This can be done, e.g., by clicking in a field to change a value and then change it back in order to get the Apply button to light up. Then click Apply.

  • Fixed issue where empty popup windows gets displayed with certain browsers and devices.

  • Restored "NTLMv1 authenication" for incoming SMB connections.

  • Change Log vs. Unraid OS 6.11.0

    Base distro

    • acpid: version 2.0.34
    • bash: version 5.2.000
    • bind: version 9.18.7
    • ca-certificates: version 20220922
    • dbus: version 1.14.2
    • dnsmasq: version 2.87
    • docker: version 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109)
    • git: version 2.38.0
    • glib2: version 2.72.4
    • glibc-zoneinfo: version 2022d
    • gnutls: version 3.7.8
    • harfbuzz: version 5.2.0
    • intel-microcode: version 20220809
    • libXtst: version 1.2.4
    • libXxf86vm: version 1.1.5
    • libffi: version 3.4.3
    • libvirt: version 8.7.0
    • libvirt-php: version 0.5.6
    • lsof: version 4.96.3
    • nghttp2: version 1.50.0
    • pango: version 1.50.11
    • qemu: version 7.1.0 (built adding ppc, riscv32/64 support, replace arm with aarch64)
    • sqlite: version 3.39.4
    • xterm: version 373
    • xz: version 5.2.7

    Linux kernel

    • version 5.19.14
    • CONFIG_DRM_MGAG200: Matrox G200
    • CONFIG_X86_SGX: Software Guard eXtensions (SGX)
    • CONFIG_X86_SGX_KVM: Software Guard eXtensions (SGX) Virtualization
    • CONFIG_CRYPTO_ZSTD: Zstd compression algorithm
    • md/unraid: version 2.9.25
    • patch: silence EDID "block all zeros" and "has corrupt header" notices
    • patch: add NVMe quirks for non-compliant devices reported by users

    Management

    • webgui: VM Manager: Update GUI Options
      • Include 9P and Virtiofs
      • Remove 9P option for Windows.
      • Update XML if virtiofs and Windows in addition to Linux.
      • Update VM Share GUI Options
    • webgui: Fixed: wrong feedback display on VM page
    • webgui: Dashboard: store graph data in file instead of cookie
    • webgui: Ask user to provide diagnostics before downgrading the OS
    • webgui: Spice html client in addition to VNC
    • webgui: improve handling of windows-style config files
    • webgui: WireGuard: add explicit interface name in routing
    • webgui: SWAL: intercept "esc" button to stop nchan upon window closing
    • webgui: nchan: delayed command execution
      • This prevents an empty popup window in certain browsers and devices

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.11.2/index.html b/es/unraid-os/release-notes/6.11.2/index.html index 2f417c319..7d7e59169 100644 --- a/es/unraid-os/release-notes/6.11.2/index.html +++ b/es/unraid-os/release-notes/6.11.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ show text for guest not running or guest agent is not installed.
  • Fix unable to change HyperV settings.
  • Add 'start with console' option.
  • OVMF for QEMU: version edk2-stable202208
  • WireGuard

    Changes:

    • Fixed problem setting up tunnels if using default network.cfg settings.
    • Fix typo setting up routes.

    Plugin manager

    Changes:

    • If plugin files cannot be read from CDN URL, fall back to non-CDN URL.
    • Enforce plugin files must end in '.plg'.
    • Fix post hook failing when plugin download fails.
    • Adjust the wget parameters to keep it from indefinitely hanging.

    Scheduler

    For scheduled Parity Checks, change default mode to Non-correcting. In case there are disk issues during a parity check it would be safer to have the default be non-correct. If sync errors are detected then the user can analyze the log and act accordingly.

    Misc. webGUI

    Changes:

    • DashStats: The inbound networkstats is out of place when numeric value is xxx.x.
    • Docker: Add/clarify Help to Docker Custom Network settings.
    • Docker: Fix display aberration on orphan images
    • SMART attributes: clarify message: "Can not read attributes" to "Attributes not available"
    • ShareEdit/ShareList: show pool not defined when share pool is not a defined pool

    Linux kernel

    • version 5.19.17
    • patch: additional NVMe BOGUS_NID quirks for non-compliant devices reported by users
    • sound support:
      • CONFIG_SOUND: Sound card support
      • CONFIG_SND: Advanced Linux Sound Architecture
      • CONFIG_SND_OSSEMUL: Enable OSS Emulation
      • CONFIG_SND_PCM_OSS: OSS PCM (digital audio) API
      • CONFIG_SND_HRTIMER: HR-timer backend support
      • CONFIG_SND_SUPPORT_OLD_API: Support old ALSA API
      • CONFIG_SND_PROC_FS: Sound Proc FS Support
    • CONFIG_IPV6: The IPv6 protocol (change from module to built-in)

    Base Distro

    Package updates including CVE mitigations:

    • bash: version 5.2.002
    • bind: version 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795)
    • btrfs-progs: version 6.0
    • curl: version 7.86.0
    • dbus: version 1.14.4
    • freeglut: version 3.4.0
    • git: version 2.38.1 (CVE-2022-39253 CVE-2022-39260)
    • glibc-zoneinfo: version 2022e
    • harfbuzz: version 5.3.1
    • icu4c: version 72.1
    • iproute2: version 6.0.0
    • kernel-firmware: version 20221017_48407ff
    • less: version 608
    • libXmu: version 1.1.4
    • libXrender: version 0.9.11
    • libedit: version 20221009_3.1
    • libffi: version 3.4.4
    • libgpg-error: version 1.46
    • libpciaccess: version 0.17
    • libunistring: version 1.1
    • libxkbfile: version 1.1.1
    • libxshmfence: version 1.3.1
    • lsof: version 4.96.4
    • nginx: version 1.22.1
    • openssh: version 9.1p1
    • php: version 7.4.32
    • pixman: version 0.42.0
    • rsync: version 3.2.7
    • samba: version 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592)
    • sudo: version 1.9.12
    • tree: version 2.0.4
    • xkeyboard-config: version 2.37
    • xterm: version 375
    • zlib: version 1.2.13 (CVE-2022-37434)

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.11.3/index.html b/es/unraid-os/release-notes/6.11.3/index.html index 737f2ba21..6f94e378a 100644 --- a/es/unraid-os/release-notes/6.11.3/index.html +++ b/es/unraid-os/release-notes/6.11.3/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.3

    Version 6.11.3 2022-11-08

    This release is focused on bug fixes and minor improvements. In particular, we need to revert a base library due to a bug which prevents formatting devices >2TB in size.

    Management

    • Reverted 'libpopt.so.0.0.1' to workaround 'sgdisk' bug used to format devices larger than 2TB.
    • Fixed issue where description setting for 'root' user was not preserved across reboots.
    • Fix issue that sometimes information window opens empty.

    VM Manager

    • Set correct values when edit for USB Boot and correct Share Selection.
    • Add Nic boot order.

    Base Distro

    • gptfdisk: version 1.0.8 (revert from version 1.0.9)
    • libXext: version 1.3.5
    • libXinerama: version 1.1.5
    • libdrm: version 2.4.114
    • libedit: version 20221030_3.1
    • mcelog: version 190
    • ntfs-3g: version 2022.10.3
    • openssl: version 1.1.1s
    • openssl-solibs: version 1.1.1s
    • pixman: version 0.42.2
    • sessreg: version 1.1.3
    • sudo: version 1.9.12p1
    • xsetroot: version 1.1.3
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.11.4/index.html b/es/unraid-os/release-notes/6.11.4/index.html index 976c801d4..cbb8b16f1 100644 --- a/es/unraid-os/release-notes/6.11.4/index.html +++ b/es/unraid-os/release-notes/6.11.4/index.html @@ -9,16 +9,16 @@ - - - + + +

    6.11.4

    Version 6.11.4 2022-11-18

    This release is focused on bug fixes and minor improvements.

    Diagnostics

    • Fix share information in Diagnostics.

    Docker

    • docker: version 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715)
    • Fix: "please wait" message after removing orphan image.
    • Set IPVLAN as default for new installations.

    Samba

    • samba: version 4.17.3 (CVE-2022-42898)
    • Set the default "max open files" to the value of 'ulimit -n' which is currently set to 40960.

    VM Manager

    • Allow Network PCI devices to have boot order.
    • Change to use libvirt_domain_interface_addresses which has been available for a long time but was not documented in the API manual. Using this function stops tainted warnings being written to the log, ex: "Domain id=4 is tainted: custom-ga-command".
    • Fix for VM Rename.

    Misc

    • Fixed issue which prevented array Autostart with a Trial key.
    • Fixed encoding issue when passwords contain multi-byte UTF-8 characters.
    • Parity History: add day of week to date.
    • Shares: Fix: do not allow creation of hidden share names.
    • Main page: reinitialize disk transfer statistics upon opening new broswer session.
    • Management Access page: improved messaging for SSL
    • Firefox: version 107.0.r20221110173214 (AppImage)
    • When all browser sessions close, stop unnecessary background processes.

    Base Distro

    • bash: version 5.2.009
    • btrfs-progs: version 6.0.1
    • gdk-pixbuf2: version 2.42.10
    • glibc-zoneinfo: version 2022f
    • intel-microcode: version 20221108
    • libX11: version 1.8.2
    • libnftnl: version 1.2.4
    • nghttp2: version 1.51.0
    • php: version 7.4.33 (CVE-2022-31630 CVE-2022-37454)
    • sed: version 4.9
    • sysstat: version 12.7.1
    • xkbevd: version 1.1.5
    • xkill: version 1.0.6
    • xlsatoms: version 1.1.4
    • xlsclients: version 1.1.5
    • xz: version 5.2.8
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.11.5/index.html b/es/unraid-os/release-notes/6.11.5/index.html index aa2c386ca..595a2b891 100644 --- a/es/unraid-os/release-notes/6.11.5/index.html +++ b/es/unraid-os/release-notes/6.11.5/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.5

    Version 6.11.5 2022-11-20

    This release reverts a change which modified the wrong file. This resulted in not being able to select 'macvlan' custom docker network type. New installations only will now have 'ipvlan' selected by default.

    Docker

    • fix: Set IPVLAN as default only for new installations.
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.12.0/index.html b/es/unraid-os/release-notes/6.12.0/index.html index c2bd26c30..2fef0bbbd 100644 --- a/es/unraid-os/release-notes/6.12.0/index.html +++ b/es/unraid-os/release-notes/6.12.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -79,7 +79,7 @@ still mounted - not good.

    To get around this, you must first create a temp directory on the flash device and then 'mv' (or drag) all the existing bz files into this temp directory. Now you can copy the new bz files to the root of the flash device and reboot.

    Linux kernel

    • version 6.1.33
    • md/unraid: version 2.9.27
    • CONFIG_FS_DAX: File system based Direct Access (DAX) support
    • CONFIG_VIRTIO_FS: Virtio Filesystem
    • CONFIG_ZONE_DEVICE: Device memory (pmem, HMM, etc...) hotplug support
    • CONFIG_USBIP_HOST: Host driver
    • CONFIG_INTEL_MEI: Intel Management Engine Interface
    • CONFIG_INTEL_MEI_ME: ME Enabled Intel Chipsets
    • CONFIG_INTEL_MEI_GSC: Intel MEI GSC embedded device
    • CONFIG_INTEL_MEI_PXP: Intel PXP services of ME Interface
    • CONFIG_INTEL_MEI_HDCP: Intel HDCP2.2 services of ME Interface
    • CONFIG_INTEL_PMC_CORE: Intel PMC Core driver
    • CONFIG_DRM_I915_PXP: Enable Intel PXP support
    • CONFIG_SCSI_FC_ATTRS: FiberChannel Transport Attributes
    • CONFIG_FUSION_SPI: Fusion MPT ScsiHost drivers for SPI
    • CONFIG_FUSION_FC: Fusion MPT ScsiHost drivers for FC
    • CONFIG_FUSION_CTL: Fusion MPT misc device (ioctl) driver
    • CONFIG_FUSION_LOGGING: Fusion MPT logging facility
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_LRU_GEN: Multi-Gen LRU
    • CONFIG_SERIAL_8250_NR_UARTS=32: Maximum number of 8250/16550 serial ports
    • CONFIG_SERIAL_8250_RUNTIME_UARTS=4: Number of 8250/16550 serial ports to register at runtime
    • CONFIG_FANOTIFY: Filesystem wide access notification

    Base Distro updates

    • aaa_glibc-solibs: version 2.37
    • adwaita-icon-theme: version 43
    • at-spi2-core: version 2.46.0
    • bash: version 5.2.015
    • bash_completion: version 2.11
    • bind: version 9.18.12
    • btrfs-progs: version 6.2.1
    • ca-certificates: version 20221205
    • cryptsetup: version 2.6.1
    • curl: version 7.88.1
    • dbus: version 1.14.6
    • diffutils: version 3.9
    • dnsmasq: version 2.89
    • docker: version 23.0.6
    • e2fsprogs: version 1.47.0
    • encodings: version 1.0.7
    • file: version 5.44
    • firefox: version 111.0 (AppImage)
    • freetype: version 2.13.0
    • fuse3: version 3.12.0
    • gawk: version 5.2.1
    • git: version 2.39.2
    • glib2: version 2.74.6
    • glibc: version 2.37
    • glibc-zoneinfo: version 2022g
    • gnutls: version 3.7.9
    • gptfdisk: version 1.0.9
    • gtk+3: version 3.24.37
    • harfbuzz: version 7.1.0
    • htop: version 3.2.2
    • iproute2: version 6.2.0
    • iptables: version 1.8.9
    • iputils: version 20221126
    • kernel-firmware: 20230531_fc90c59
    • less: version 612
    • libICE: version 1.1.1
    • libSM: version 1.2.4
    • libX11: version 1.8.4
    • libXau: version 1.0.11
    • libXcomposite: version 0.4.6
    • libXdamage: version 1.1.6
    • libXdmcp: version 1.1.4
    • libXpm: version 3.5.15
    • libXrandr: version 1.5.3
    • libXres: version 1.2.2
    • libXxf86dga: version 1.1.6
    • libarchive: version 3.6.2
    • libdrm: version 2.4.115
    • libfontenc: version 1.1.7
    • libglvnd: version 1.6.0
    • libjpeg-turbo: version 2.1.5.1
    • libpcap: version 1.10.3
    • libpng: version 1.6.39
    • libpsl: version 0.21.2
    • liburcu: version 0.14.0
    • libwebp: version 1.3.0
    • libxkbcommon: version 1.5.0
    • libxkbfile: version 1.1.2
    • libxshmfence: version 1.3.2
    • lmdb: version 0.9.30
    • logrotate: version 3.21.0
    • lsof: version 4.98.0
    • lz4: version 1.9.4
    • lzlib: version 1.13
    • mc: version 4.8.29
    • mcelog: version 191
    • mpfr: version 4.2.0
    • nano: version 7.2
    • ncurses: version 6.4
    • nginx: version 1.23.3
    • nghttp2: version 1.52.0
    • openssh: version 9.2p1
    • openssl: version 1.1.1t
    • openssl-solibs: version 1.1.1t
    • openzfs: version 2.1.12
    • pango: version 1.50.14
    • pciutils: version 3.9.0
    • pcre2: version 10.42
    • php: version 8.2.4
    • php-libvirt: version 0.5.7
    • php-markdown: version 2.0.0
    • samba: version 4.17.7
    • sqlite: version 3.41.0
    • sudo: version 1.9.13p2
    • sysstat: version 12.7.2
    • tdb: version 1.4.8
    • tevent: version 0.14.1
    • traceroute: version 2.1.2
    • transset: version 1.0.3
    • tree: version 2.1.0
    • usbutils: version 015
    • xcb-util: version 0.4.1
    • xdriinfo: version 1.0.7
    • xf86-video-vesa: version 2.6.0
    • xfsprogs: version 6.1.1
    • xhost: version 1.0.9
    • xinit: version 1.4.2
    • xkbcomp: version 1.4.6
    • xkeyboard-config: version 2.38
    • xorg-server: version 21.1.7
    • xprop: version 1.2.6
    • xrandr: version 1.5.2
    • xset: version 1.2.5
    • xterm: version 379
    • xz: version 5.4.1
    • zstd: version 1.5.4
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.12.1/index.html b/es/unraid-os/release-notes/6.12.1/index.html index 960071899..f04a599b8 100644 --- a/es/unraid-os/release-notes/6.12.1/index.html +++ b/es/unraid-os/release-notes/6.12.1/index.html @@ -9,14 +9,14 @@ - - - + + +

    Version 6.12.1 2023-06-20

    Changes vs. 6.12.0

    Bug fixes

    • emhttpd: remove "unraid" from reserved names list
    • emhttpd: properly handle "ERROR" strings in 'btrfs filesystem show' command output
    • emhttpd: prevent cmdStart if already Started
    • network: Revised service reload functionality: ensures the services are only reloaded once
    • network: rc.library: read IP addresses directly from interfaces instead of file
    • network: NTP: fix listening interfaces
    • network: NTP: exclude WG tunnels and user defined interfaces
    • network: NTP: add interface name in config
    • network: SSH: add interface name in config
    • webgui: fix PHP8 warning in UPS Settings page
    • webgui: Dashboard: show ZFS percentage based on c_max value
    • webgui: Dashboard: suppress coloring of ZFS utilization bar
    • webgui: Dashboard: other misc fixes

    Linux kernel

    • version 6.1.34

    Base Distro

    • ttyd: version 1.7.3 (fixes issue of invisible underbar characters with certain FireFox versions)

    Security updates

    • ca-certificates: version 20230506
    • curl: version 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319)
    • git: version 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007)
    • ntp: version 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555)
    • openssl: version 1.1.1u (CVE-2023-2650)
    • openssh: version 9.3p1
    • php: version 8.2.7
    • libX11: version 1.8.6 (CVE-2023-3138)
    • libssh: version 0.10.5 (CVE-2023-1667 CVE-2023-2283)
    • zstd: version 1.5.5
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.12.2/index.html b/es/unraid-os/release-notes/6.12.2/index.html index 9c433c0b5..96d835eba 100644 --- a/es/unraid-os/release-notes/6.12.2/index.html +++ b/es/unraid-os/release-notes/6.12.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ is automatically applied to all 'config/wireguard/*.conf' files when you update via Update OS page. For manual update or if you downgrade, it is necessary to make a "dummy change" in a setting on the Settings/VPN Manager page and then click Apply.

    Bug fixes and improvements

    • email notifications: add line in /etc/php.ini: 'mail.mixed_lf_and_crlf=On' to workaround change in PHP8 CRLF handling
    • emhttpd: Fix regression: emulated ZFS volumes not recognized
    • emhttpd: Fix regression: format fails if diskFsType==auto and defaultFsType specifies encryption
    • emhtptd: Fix regression: mount fails if diskFsType==auto
    • htop: remove predefined /root/.config/htop/htoprc file
    • network: RC services update:
      • NFS - fix service reload
      • RPC - fix service reload
      • NGINX - remove HTTPS port in FQDN redirect when default 443
      • All services - register IPv4 Link local assignment (169.254.xxx.xxx)
      • All services - make lock file programmable
      • WireGuard: delayed service update to avoid race condition
      • rc.library: do not allow duplicates in bind list
    • webgui: Dashboard updates:
      • Re-introduce show/hide tile content
      • Add new icon function to show/hide all content at once
      • Reduce gap between columns
      • description -> model
      • ZFS: fix percentage value to max 100%
      • Use prototype function: This makes it easier for 3rd party developers to automatically hide dynamic content
      • Handle duplicate IP assignments and give warning
      • change header MEMORY to SYSTEM
    • webgui: OS Update: add checkbox to confirm reading release notes before upgrading
    • webgui: diagnostics: include list of duplicate assignments
    • webgui: NFS: for Security/Private increase Rule field from 256 to 512 characters.

    Linux kernel

    • version 6.1.36

    Base Distro

    • bind: version -9.16.42 (CVE-2023-2911)
    • docker: 20.10.24 (revert from v23.0.6)
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.12.3/index.html b/es/unraid-os/release-notes/6.12.3/index.html index 3b3728da5..65b33b651 100644 --- a/es/unraid-os/release-notes/6.12.3/index.html +++ b/es/unraid-os/release-notes/6.12.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -19,7 +19,7 @@ an issue where the webGUI will not load in certain instances.

    Note: If you have code in your 'go' script to disable IPv6, remove that and disable it via the 'Settings/Network Settings' page instead. Manually disabling IPv6 will cause conflicts.

    Docker

    This release resolves an issue where Docker does not properly stop when the array Stops, which can result in an unclean shutdown.

    If Docker containers have issues starting after a while, and you are running Plex, go to your Plex Docker container settings, switch to advanced view, and add this to the Extra Params: --no-healthcheck

    Bug fixes and improvements

    • rc.docker:
      • revised docker daemon running check
      • rc.docker: change route metric of main interface as needed to avoid conflict with shim interface with shim interface
    • rc.library:
      • code optimization for ipv6 max/min
      • support ipv4 mapped addresses
    • rc.nginx: explicit ipv4/ipv6 selection on lo interface
    • shfs: correct share size calculation when ZFS is one of the volumes
    • webgui:
      • VM settings page: fixed typo
      • Share Edit page: make minimum free space settings always available
      • Wireguard: fix typo in Ipv6 mask
      • Routing table: fix display of metric value when zero

    Linux kernel

    • version 6.1.38
    • Added support to monitor and also limit power on Intel Core (2nd Gen+) CPU models:
      • CONFIG_POWERCAP: Generic powercap sysfs driver
      • CONFIG_INTEL_RAPL: Intel RAPL Support via MSR Interface
      • CONFIG_IDLE_INJECT: Idle injection framework

    Base Distro

    • firefox: version 115.0.r20230710165010 (AppImage)
    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.9.0/index.html b/es/unraid-os/release-notes/6.9.0/index.html index b2a6eef42..ba0f7ca90 100644 --- a/es/unraid-os/release-notes/6.9.0/index.html +++ b/es/unraid-os/release-notes/6.9.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -284,7 +284,7 @@ can override at boot
  • mount all btrfs volumes using 'space_cache=v2' option
  • mount loopbacks with 'noatime' option; enable 'direct-io'
  • mount_image: suppport bind-mount
  • non-rotational device partitions aligned on 1MiB boundary by default
  • plugin: support sha256 file validation
  • rsyslog: fix broken "Mirror syslog to flash"
  • samba: disable aio by default
  • shfs: move: preserve ioctl_iflags when moving between same file system types
  • shfs: move: support spares files
  • smart-one.cfg keeps SMART info per-ID instead of per-slot; disk warning/critical config moved to disk/pool cfg
  • smb: fixed Ad join issue
  • smb: remove setting 'aio' options in smb.conf, use samba defaults
  • ssh: add /root/.ssh symlink to /boot/config/ssh/root directory
  • ssh: allow only root user, require passwords, disable non-root tunneling
  • ssh: require passwords, disable non-root tunneling
  • startup: setup an overlayfs for /lib/modules and /lib/firmware
  • syslog: configure to also listen on localhost udp port 514
  • web terminal: inhibit warning pop-up when closing window
  • wireguard support: rc.wireguard: add iptables rules
  • webGUI: Fix dockerupdate.php warnings
  • webGUI: Update statuscheck
  • webgui: Add 'Portuguese (pt)' key map option for libvirt
  • webgui: Add customizable timeout when stopping containers
  • webgui: Add log viewer for vfio-pci
  • webgui: Add notification agent for Discord
  • webgui: Add pools information to diagnostics
  • webgui: Add raid1c3 and raid1c4 btrfs pool balance options.
  • webgui: Add update dialog to docker context menu
  • webgui: Added "safe mode" one-shot safemode reboot option
  • webgui: Added btrfs info for all pools in diagnostics
  • webgui: Added new display setting: show normalized or raw device identifiers
  • webgui: Added new setting "Enable user share assignment" to cache pool
  • webgui: Added support for private docker registries with basic auth or no auth, and improvements for token based authentication
  • webgui: Allow different image types to upload with 512K max
  • webgui: Allow duplicate containers different icons
  • webgui: Allow markdown within container descriptions
  • webgui: Change Icon for Motherboard Info from cog (settings) to info
  • webgui: Changed: Consistency between dashboard and docker on accessing logs
  • webgui: Dashboard: fix stats of missing interface
  • webgui: Dashboard: style adjustment for server icon
  • webgui: Detect invalid session and logout current tab
  • webgui: Diagnostics: Remove SHA256 Hashes
  • webgui: Disallow "?" in share names
  • webgui: Display settings: colors should be 3 or 6 character hex digits
  • webgui: Do not show CA profiles in Add Container list
  • webgui: Docker: allow BTRFS or XFS vdisk, or folder location
  • webgui: Docker: more intuitive handling of images
  • webgui: Fix ' appearing
  • webgui: Fix Azure / Gray Switch Language being cut-off
  • webgui: Fix Banner Warnings Not Dismissing without reload of page
  • webgui: Fix Started VMs not appearing in dashboard
  • webgui: Fix crash when reading very large log files (limiting output to 1000 lines).
  • webgui: Fix dismiss all notification
  • webgui: Fix not able to change parity check schedule if no cache pool present
  • webgui: Fix notifications continually reappearing
  • webgui: Fix unable to use top right icons if notifications present
  • webgui: Fix wrong docker run URL reference
  • webgui: Fix: Dashboard / Docker scrolling on iPad devices
  • webgui: Fix: properly set samesite cookie (fix login issue with Safari)
  • webgui: For raid6 btrfs pool data profile use raid1c3 metadata profile.
  • webgui: Icon buttons re-arrangement
  • webgui: Main page: hide Move button when user shares are not enabled
  • webgui: Multi-language: Fixed regression error: missing indicator for required fields
  • webgui: Multilanguage: Fix unable to delete / edit users
  • webgui: Network settings: show first DNSv6 server
  • webgui: Network: allow metric value of zero to set no default gateway
  • webgui: Network: fix privacy extensions not set
  • webgui: New Perms: Support multi-cache pools
  • webgui: Notifications: Fix gap on white / black
  • webgui: Permit file system configuration when array Started for Unmountable volumes.
  • webgui: Prevent "Add" reverting to English when adding a new user with an invalid username
  • webgui: Prevent bonded nics from being bound to vfio-pci too
  • webgui: Remove WG from Dashboard if no tunnels defined
  • webgui: Show message when too many files for browsing
  • webgui: Support links on notifications
  • webgui: Suppress Autofan link on Dashboard if plugin not installed
  • webgui: Suppress WG on Dashboard if no tunnels defined
  • webgui: Switch Diagnostics to web socket
  • webgui: SysDevs - warn if leave page without saving
  • webgui: SysDevs overhaul with vfio-pci.cfg binding
  • webgui: Tabbed case select window
  • webgui: Task Plugins: Providing Ability to define Display_Name
  • webgui: Update Feedback.php
  • webgui: Update jGrowl to version 1.4.7
  • webgui: Update noVNC to v1.2.0
  • webgui: Updated case icons
  • webgui: Use update image dialog for update entry in docker context menu
  • webgui: VM Manager: add 'virtio-win-0.1.189-1' to VirtIO-ISOs list
  • webgui: VM manager: Fix: Changing from VM VNC graphics to GPU passthrough
  • webgui: VM manager: add virtio-win-0.1.190-1
  • webgui: VM manager: new setting "Network Model"
  • webgui: VMs: Fixed: Adding NICs or VirtFS mounts to a VM is limited
  • webgui: VMs: Fixed: rare cases vdisk defaults to Auto when it should be Manual
  • webgui: VMs: change default network model to virtio-net
  • webgui: VMs: more intuitive handling of image selection
  • webgui: avoid php syntax error if autov() source file does not exist
  • webgui: better handling of multiple nics with vfio-pci
  • webgui: correct login form wrong default case icon displayed
  • webgui: do not try to display SMART info that causes spin-up for devices that are spun-down
  • webgui: dockerMan: Allow readmore in advanced view
  • webgui: dockerMan: Only allow name compatible with docker
  • webgui: dockerMan: Selectable start upon install
  • webgui: fix: jGrowl covering buttons
  • webgui: fix: login prompt when switching between servers
  • webgui: other misc. improvements
  • webgui: pools not enabled for user shares should not be selectable for cache
  • webgui: sanitize input on tail_log
  • webgui: set 'mid-tower' default case icon
  • webgui: support spin-up/down and temperature monitoring of unassigned devices
  • webgui: turn off username autocomplete in login form
  • webgui: vm manager: Preserve VNC port settings
  • webgui: vnc: add browser cache busting
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.9.1/index.html b/es/unraid-os/release-notes/6.9.1/index.html index 8d7c379f4..0a041e778 100644 --- a/es/unraid-os/release-notes/6.9.1/index.html +++ b/es/unraid-os/release-notes/6.9.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -35,7 +35,7 @@ spindown/spinup logic
  • rc.local: ensure required directories exist on USB flash boot device
  • rc.local: for Docker containers: grant access to graphics device nodes /dev/dri/*
  • rc.nginx: add Cache-Control:nocache header to novnc
  • webgui: Increase syslog buffer from 1000 to 3000 lines
  • webgui: SysDevs fix display aberration
  • webgui: Diagnostics: include modprobe.d files
  • webgui: Diagnostics: include go as go.txt
  • webgui: Update share security helptext
  • webgui: Deprecate donation links in templates in lieu of links in CA profiles
  • webgui: Protect GUI from invalid .page files
  • webgui: Suppress ipv6 multicast entries in route table display
  • webgui: synchronize helptext.txt with lang-en_US repo
  • webgui: user management - disable password autocomplete
  • webgui: Dashboard: Fix color for utilization of disk
  • - - + + \ No newline at end of file diff --git a/es/unraid-os/release-notes/6.9.2/index.html b/es/unraid-os/release-notes/6.9.2/index.html index 65e878462..83d910fb7 100644 --- a/es/unraid-os/release-notes/6.9.2/index.html +++ b/es/unraid-os/release-notes/6.9.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -26,7 +26,7 @@ @ich777 to facilitate installing the correct driver.

    Change Log vs. Unraid OS 6.9.1

    Base distro

    • docker: version 20.10.5
    • fuse3: version 3.10.2
    • nginx: version 1.19.9
    • samba: verson 4.12.14 (CVE-2020-27840 CVE-2020-27840)

    Linux kernel

    • version 5.10.28
    • include all CONFIGNF* modules
    • oot: realtek r8125: version 9.005.01

    Management

    • emhttpd: detect out-of-band device spin-up
    • shfs: add 'copy_file_range()' support
    • shfs: fix 'mknod' creating a fifo
    • webgui: login: implement max 3 failed login attempts per 15 minute interval
    • webgui: Fix links on notifications not being present if in summary display
    • webgui: Plugins: Move incompatible plugins to ../plugins-error
    • webgui: Fix missing CSRF when deleting pool
    • webgui: Fix .sweet-alert color
    • webgui: Translations adjustments
    • webgui: Diagnostics: Prevent double clicks on download button
    • webgui: Fix default usage thresholds not sending notification
    • webgui: Fix CSS span.select background-color
    • webgui: Make diagnostics messages left aligned
    • webgui: Fixed javascript error in DeviceInfo.page preventing settings to be saved
    • webgui: Update DeviceInfo.page
    • webgui: Prevent autofilling of passwords on containers
    • webgui: Docker: Do not allow CPU pinning if no template present
    • webgui: Fix .sweet-alert .sa-icon color, * in the CSS
    - - + + \ No newline at end of file diff --git a/fr/404.html b/fr/404.html index 685c21cce..b0b888c38 100644 --- a/fr/404.html +++ b/fr/404.html @@ -9,14 +9,14 @@ - - - + + +

    Page introuvable

    Nous n'avons pas trouvé ce que vous recherchez.

    Veuillez contacter le propriétaire du site qui vous a lié à l'URL d'origine et leur faire savoir que leur lien est cassé.

    - - + + \ No newline at end of file diff --git a/fr/assets/css/styles.2c43762e.css b/fr/assets/css/styles.2c43762e.css new file mode 100644 index 000000000..3b34bd753 --- /dev/null +++ b/fr/assets/css/styles.2c43762e.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/fr/assets/css/styles.5dd3a1e0.css b/fr/assets/css/styles.5dd3a1e0.css deleted file mode 100644 index 60ad42e6b..000000000 --- a/fr/assets/css/styles.5dd3a1e0.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/fr/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG b/fr/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG deleted file mode 100644 index 1875d64774735d7928639130ffdb74e1b546e80a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56760 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 BeH8!z diff --git a/fr/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG b/fr/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG deleted file mode 100644 index 46e8f061547b2597e889a6e93c7b53c83131142c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64484 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 Xl=8V3LhS66yrnuSj!K_qzmNPc=6Yr+ diff --git a/fr/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG b/fr/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG deleted file mode 100644 index 22b13894a1c0223da21ccd9a40c85835b674ea54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332398 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�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
    i*b2M zc}indR191tO5dPsjd>Kks}U=-D0Sgq%0V$54jV~e15*xxm3uR6SFCG zUTd8Gmdzwq%CtEaeI5b~WnI4GWmlFAwpx19t2aF6lzLT1#@OyyU?x)?8Z8ItB6yiq z4T?SO?@z0~Me*<$BsjHAe{GEJQ7$>Jb95{gWBb_gek>;_ppUF<4n87yf6i zxB>6l^KnDhC061wOQcz}V8h>hfEQar5%6M5gvsN965@yU|Jw4pwgZ9G!${~scK$ykUs*bD@m?FU z{J#cQs~rbQMExtcT8&1wDVQt#`RUXwo4YE;Q(C2v9Pf_nRU_@OE`Ds6!^+WASQkMl zuGu^EN1M<&0Ni&CsFZ5BAr+(1SF78M665_bMmD_0(&4S=O7pk|yv8pCyKn<>9+Z`e zgdFoIg*&JfO^gqH8#Fey&IjtCYoP$R!d`6jNqb;3ThxPHPyUGa*Y1@izo*!CfH^{- z(q)AmJuP^#(aLtyKWcd`9V$H)dg@@h`@oDOg3*h=eXKg3Mi@A(I8ElhtF( z;^3opZ)Ts(cn63!E{m&uLLnQ(74OZW;nhDG??DHrC~4`j6lm3ZbT z55_mpC|ug;Zne%PkFc0gCsXNkKBQ$%S$nx

    @*jLk6h0=HMX!%-3|&0%?UNUV?d+ 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 KF$YM$zWxtUg1t@v diff --git a/fr/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG b/fr/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG deleted file mode 100644 index ce4de45d151efdf9c78b9b7420c362d7933ebead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24060 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 YJwDvhFBSj$k$}G!A^7jm|1|Ue0Z^AhUjP6A diff --git a/fr/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG b/fr/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG deleted file mode 100644 index 4f89d1eba8cb401075f9420d73c697b6a30d90ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25238 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 WNM=-^!>@V^#1?|F#WM!pv~*d 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.d(t,{Zo:()=>p,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=c(a),u=r,k=m["".concat(s,".").concat(u)]||m[u]||d[u]||i;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=a(7462),r=(a(7294),a(4137));const i={sidebar_position:2},l="Securing webGUI connections (SSL)",o={unversionedId:"unraid-os/manual/security/secure-webgui-ssl",id:"unraid-os/manual/security/secure-webgui-ssl",title:"Securing webGUI connections (SSL)",description:"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.",source:"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/secure-webgui-ssl",permalink:"/fr/unraid-os/manual/security/secure-webgui-ssl",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/secure-webgui-ssl.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"Good Practices",permalink:"/fr/unraid-os/manual/security/good-practices"},next:{title:"Data Encryption",permalink:"/fr/unraid-os/manual/security/data-encryption"}},s={},c=[{value:"SSL parameters",id:"ssl-parameters",level:2},{value:"How to access the Unraid server webGUI on your LAN",id:"how-to-access-the-unraid-server-webgui-on-your-lan",level:2},{value:"HTTP-only",id:"http-only",level:3},{value:"HTTPS with self-signed certificate",id:"https-with-self-signed-certificate",level:3},{value:"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable",level:3},{value:"HTTPS with Myunraid.net certificate and with no fallback URL",id:"https-with-myunraidnet-certificate-and-with-no-fallback-url",level:3},{value:"Redirects",id:"redirects",level:2},{value:"Unraid Connect remote access",id:"unraid-connect-remote-access",level:2},{value:"Custom certificates",id:"custom-certificates",level:2},{value:"HTTPS with custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:3}],p={toc:c},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"securing-webgui-connections-ssl"},"Securing webGUI connections (SSL)"),(0,r.kt)("p",null,"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/remote-access"},"Unraid Connect Remote Access")," using wildcard SSL Certificates provisioned by ",(0,r.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's Encrypt"),"."),(0,r.kt)("h2",{id:"ssl-parameters"},"SSL parameters"),(0,r.kt)("p",null,"When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Parameter"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"servername")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Identification")),". The default value is ",(0,r.kt)("em",{parentName:"td"},"tower"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"localTLD")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"local"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"Use SSL/TLS")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"No"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTP port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"80"),". If you change this, add ",(0,r.kt)("inlineCode",{parentName:"td"},":[HTTP port]")," to any of the HTTP URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"http://tower.local:8080"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTPS port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),' page. It defaults to "443". If you change this, add ',(0,r.kt)("inlineCode",{parentName:"td"},":[HTTPS port]")," to any of the HTTPS URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"https://tower.local:3443"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"certificate")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Refers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"lan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"wan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"hash")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued")))),(0,r.kt)("h2",{id:"how-to-access-the-unraid-server-webgui-on-your-lan"},"How to access the Unraid server webGUI on your LAN"),(0,r.kt)("h3",{id:"http-only"},"HTTP-only"),(0,r.kt)("p",null,"With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"No"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution."),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-self-signed-certificate"},"HTTPS with self-signed certificate"),(0,r.kt)("p",null,"With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution"),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("admonition",{type:"important"},(0,r.kt)("p",{parentName:"admonition"},"When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable"},"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable"),(0,r.kt)("p",null,"You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate)."),(0,r.kt)("li",{parentName:"ol"},"Leave ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either ",(0,r.kt)("em",{parentName:"li"},"No")," or ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"No"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),". Note that these URLs use a self-signed certificate.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your alternate URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate and with no fallback URL"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned below)."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"If DNS Rebinding is not an issue, the ",(0,r.kt)("em",{parentName:"li"},"Strict")," option for ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," will be available."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Strict")," (or ",(0,r.kt)("em",{parentName:"li"},"Auto")," in earlier versions of Unraid)."),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the optional ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]"),"."),(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," using a self-signed certificate (See ",(0,r.kt)("a",{parentName:"li",href:"#https-with-self-signed-certificate"},"HTTPS with a self-signed certificate")," above)."),(0,r.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," back to ",(0,r.kt)("em",{parentName:"li"},"Strict"),"."))),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"redirects"},"Redirects"),(0,r.kt)("p",null,"When you access ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]"),", the behavior will change depending on the value of the ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Strict"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under ",(0,r.kt)("a",{parentName:"li",href:"#https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate - with no fallback URL")," above."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," as that will likely work even if your Internet goes down."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"No"),", then the HTTP URL will load directly.")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"unraid-connect-remote-access"},"Unraid Connect remote access"),(0,r.kt)("p",null,"Looking for setup instructions for Unraid Connect remote access? See our ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/remote-access"},"dedicated page"),"."),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"custom-certificates"},"Custom certificates"),(0,r.kt)("h3",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"HTTPS with custom certificate - with option to have Unraid Connect Remote Access"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Navigate to the ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access"))," page."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of the certificate.'),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS for this URL."),(0,r.kt)("li",{parentName:"ol"},"You are responsible for managing the certificate. Upload it to ",(0,r.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem"),"."),(0,r.kt)("li",{parentName:"ol"},"The certificate must be valid for ",(0,r.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be ",(0,r.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server\'s URL is not specified in the certificate.'),(0,r.kt)("li",{parentName:"ol"},"As an option, use ",(0,r.kt)("a",{parentName:"li",href:"#unraid-connect-remote-access"},"Unraid Connect Remote Access"),".")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/104dd0b4.384ecc12.js b/fr/assets/js/104dd0b4.384ecc12.js deleted file mode 100644 index 45d28c139..000000000 --- a/fr/assets/js/104dd0b4.384ecc12.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/fr/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/fr/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/fr/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"getting-started.md"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/fr/assets/js/104dd0b4.50f572e9.js b/fr/assets/js/104dd0b4.50f572e9.js new file mode 100644 index 000000000..cb391fe21 --- /dev/null +++ b/fr/assets/js/104dd0b4.50f572e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/fr/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/fr/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/fr/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/getting-started/"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/fr/assets/js/10869db1.dae8600a.js b/fr/assets/js/10869db1.dae8600a.js new file mode 100644 index 000000000..2341d565d --- /dev/null +++ b/fr/assets/js/10869db1.dae8600a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3563],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>f});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(a),d=n,f=p["".concat(l,".").concat(d)]||p[d]||h[d]||i;return a?r.createElement(f,o(o({ref:t},u),{},{components:a})):r.createElement(f,o({ref:t},u))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,o[1]=s;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=a(7462),n=(a(7294),a(4137));const i={sidebar_position:4},o="Flash Drive",s={unversionedId:"unraid-os/manual/security/flash-drive",id:"unraid-os/manual/security/flash-drive",title:"Flash Drive",description:"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.",source:"@site/docs/unraid-os/manual/security/flash-drive.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/flash-drive",permalink:"/fr/unraid-os/manual/security/flash-drive",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/flash-drive.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Data Encryption",permalink:"/fr/unraid-os/manual/security/data-encryption"},next:{title:"VPN",permalink:"/fr/unraid-os/manual/security/vpn"}},l={},c=[{value:"Backups",id:"backups",level:2},{value:"Network Access",id:"network-access",level:2},{value:"Permissions",id:"permissions",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"flash-drive"},"Flash Drive"),(0,n.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed."),(0,n.kt)("h2",{id:"backups"},"Backups"),(0,n.kt)("p",null,"If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change."),(0,n.kt)("p",null,"You can easily achieve this from the Unraid webGUI:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Select the flash drive on the ",(0,n.kt)("strong",{parentName:"li"},"Main")," tab."),(0,n.kt)("li",{parentName:"ol"},"In the ",(0,n.kt)("strong",{parentName:"li"},"Flash Device Settings")," section select the ",(0,n.kt)("strong",{parentName:"li"},"Flash Backup")," button."),(0,n.kt)("li",{parentName:"ol"},"The system will now create a ZIP file that is a backup of the contents of the flash drive."),(0,n.kt)("li",{parentName:"ol"},"When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.")),(0,n.kt)("p",null,"If you later need to recreate your flash drive for any reason, use this backup as input to the ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Limetech USB Creator tool"),"."),(0,n.kt)("h2",{id:"network-access"},"Network Access"),(0,n.kt)("p",null,"The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"*Network visibility"),": You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any access permissions that you want applied.")),(0,n.kt)("h2",{id:"permissions"},"Permissions"),(0,n.kt)("p",null,"As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location."),(0,n.kt)("p",null,"There are a few ways to handle this:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Copy the files to a location from which they can be executed."),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"The location ",(0,n.kt)("inlineCode",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the files on the default search path."),(0,n.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding appropriate commands to the ",(0,n.kt)("inlineCode",{parentName:"li"},"config/go")," file on the flash drive."),(0,n.kt)("li",{parentName:"ul"},"Give the files execute permission after copying them."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"For scripts, prefix the script name with the command that runs the script (e.g. ",(0,n.kt)("em",{parentName:"p"},"bash path-to-script"),")."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/es/assets/js/14eb3368.3f60616a.js b/fr/assets/js/14eb3368.64ec88ed.js similarity index 98% rename from es/assets/js/14eb3368.3f60616a.js rename to fr/assets/js/14eb3368.64ec88ed.js index 5de541b9c..25852f8f9 100644 --- a/es/assets/js/14eb3368.3f60616a.js +++ b/fr/assets/js/14eb3368.64ec88ed.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(3734),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(3734),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(8259),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(8259),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file diff --git a/assets/js/17896441.5d44835b.js b/fr/assets/js/17896441.63195e72.js similarity index 99% rename from assets/js/17896441.5d44835b.js rename to fr/assets/js/17896441.63195e72.js index 4bf4e5f5e..0317e0a68 100644 --- a/assets/js/17896441.5d44835b.js +++ b/fr/assets/js/17896441.63195e72.js @@ -1 +1 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(3734),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?["'])(?.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i<r;i++)l[i]=n[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},3899:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(8259),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(P(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function z(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,S.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?<quote>["'])(?<title>.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/fr/assets/js/18ade0c5.1e8e6a61.js b/fr/assets/js/18ade0c5.1e8e6a61.js deleted file mode 100644 index e1220e982..000000000 --- a/fr/assets/js/18ade0c5.1e8e6a61.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/fr/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/fr/unraid-os/manual/getting-started/"},next:{title:"Security",permalink:"/fr/unraid-os/manual/security"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/18ade0c5.d177a698.js b/fr/assets/js/18ade0c5.d177a698.js new file mode 100644 index 000000000..1db7b78af --- /dev/null +++ b/fr/assets/js/18ade0c5.d177a698.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/fr/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/fr/unraid-os/manual/getting-started/"},next:{title:"Tools",permalink:"/fr/unraid-os/manual/tools"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/1942e1e1.5de57aa5.js b/fr/assets/js/1942e1e1.66f2d29f.js similarity index 64% rename from fr/assets/js/1942e1e1.5de57aa5.js rename to fr/assets/js/1942e1e1.66f2d29f.js index 7c4ffcc08..6c1982424 100644 --- a/fr/assets/js/1942e1e1.5de57aa5.js +++ b/fr/assets/js/1942e1e1.66f2d29f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var d=2;d<o;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const o={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/fr/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/fr/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/fr/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,r.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,r.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,r.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,r.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,r.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,r.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,r.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,r.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,r.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,r.kt)("h2",{id:"date--time"},"Date & Time"),(0,r.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,r.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,r.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,r.kt)("h2",{id:"docker"},"Docker"),(0,r.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,r.kt)("h2",{id:"identification"},"Identification"),(0,r.kt)("p",null,"Unraid automatically uses the hostname of ",(0,r.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,r.kt)("h2",{id:"network-settings"},"Network Settings"),(0,r.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,r.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,r.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,r.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,r.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,r.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,r.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,r.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-management"},"VM Management")," and ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,r.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,r.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,r.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,r.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,r.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,r.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,r.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,r.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,r.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,r.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,r.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,r.kt)("h2",{id:"syslog"},"Syslog"),(0,r.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,r.kt)("h2",{id:"wireguard"},"WireGuard"),(0,r.kt)("p",null,"WireGuard VPN Server"),(0,r.kt)("p",null,"Users can set up a VPN connection using\n",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/security#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,r.kt)("h2",{id:"confirmations"},"Confirmations"),(0,r.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,r.kt)("h2",{id:"display-settings"},"Display Settings"),(0,r.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,r.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,r.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,r.kt)("h2",{id:"scheduler"},"Scheduler"),(0,r.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,r.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,r.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,r.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,r.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,r.kt)("strong",{parentName:"p"},"monthly")," or ",(0,r.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,r.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,r.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,r.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,r.kt)("h4",{id:"notes"},"Notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,r.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,r.kt)("h3",{id:"mover"},"Mover"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,r.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,r.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,r.kt)("h4",{id:"notes-1"},"Notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,r.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,r.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,r.kt)("strong",{parentName:"li"},"Docker")," or ",(0,r.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,r.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,r.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,r.kt)("h3",{id:"other"},"Other"),(0,r.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,r.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,r.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,r.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var d=2;d<o;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const o={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/fr/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/fr/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/fr/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,r.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,r.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,r.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,r.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,r.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,r.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,r.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,r.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,r.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,r.kt)("h2",{id:"date--time"},"Date & Time"),(0,r.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,r.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,r.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,r.kt)("h2",{id:"docker"},"Docker"),(0,r.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,r.kt)("h2",{id:"identification"},"Identification"),(0,r.kt)("p",null,"Unraid automatically uses the hostname of ",(0,r.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,r.kt)("h2",{id:"network-settings"},"Network Settings"),(0,r.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,r.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,r.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,r.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,r.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,r.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,r.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,r.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-management"},"VM Management")," and ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,r.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,r.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,r.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,r.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,r.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,r.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,r.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,r.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,r.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,r.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,r.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,r.kt)("h2",{id:"syslog"},"Syslog"),(0,r.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,r.kt)("h2",{id:"wireguard"},"WireGuard"),(0,r.kt)("p",null,"WireGuard VPN Server"),(0,r.kt)("p",null,"Users can set up a VPN connection using\n",(0,r.kt)("a",{parentName:"p",href:"security.md#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,r.kt)("h2",{id:"confirmations"},"Confirmations"),(0,r.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,r.kt)("h2",{id:"display-settings"},"Display Settings"),(0,r.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,r.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,r.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,r.kt)("h2",{id:"scheduler"},"Scheduler"),(0,r.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,r.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,r.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,r.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,r.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,r.kt)("strong",{parentName:"p"},"monthly")," or ",(0,r.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,r.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,r.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,r.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,r.kt)("h4",{id:"notes"},"Notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,r.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,r.kt)("h3",{id:"mover"},"Mover"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,r.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,r.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,r.kt)("h4",{id:"notes-1"},"Notes"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,r.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,r.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,r.kt)("strong",{parentName:"li"},"Docker")," or ",(0,r.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,r.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,r.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,r.kt)("h3",{id:"other"},"Other"),(0,r.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,r.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,r.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,r.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.010a8141.js b/fr/assets/js/1be78505.fe92450b.js similarity index 99% rename from assets/js/1be78505.010a8141.js rename to fr/assets/js/1be78505.fe92450b.js index 2b4555c18..758818503 100644 --- a/assets/js/1be78505.010a8141.js +++ b/fr/assets/js/1be78505.fe92450b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(3734),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(8259),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/fr/assets/js/1c36a847.3d007acd.js b/fr/assets/js/1c36a847.3d007acd.js new file mode 100644 index 000000000..bd67fda9d --- /dev/null +++ b/fr/assets/js/1c36a847.3d007acd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5289],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=o,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},7732:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={sidebar_position:5},i="VPN",s={unversionedId:"unraid-os/manual/security/vpn",id:"unraid-os/manual/security/vpn",title:"VPN",description:"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.",source:"@site/docs/unraid-os/manual/security/vpn.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/vpn",permalink:"/fr/unraid-os/manual/security/vpn",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/vpn.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Flash Drive",permalink:"/fr/unraid-os/manual/security/flash-drive"},next:{title:"Multi-Language Support",permalink:"/fr/unraid-os/manual/multi-language"}},l={},u=[{value:"Router",id:"router",level:2},{value:"OpenVPN",id:"openvpn",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Overview",id:"overview",level:3},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:3},{value:"Implementation considerations",id:"implementation-considerations",level:4},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:4},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:4},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:4},{value:"About DNS",id:"about-dns",level:4},{value:"Complex Networks",id:"complex-networks",level:4},{value:"Configurations to avoid",id:"configurations-to-avoid",level:4},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:4},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:3},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:4},{value:"Configuring \u201cVPN tunneled access for Docker\u201d",id:"configuring-vpn-tunneled-access-for-docker",level:4},{value:"Testing the Docker tunnel",id:"testing-the-docker-tunnel",level:5},{value:"Configuring \u201cVPN tunneled access for system\u201d",id:"configuring-vpn-tunneled-access-for-system",level:4},{value:"Testing the System tunnel",id:"testing-the-system-tunnel",level:5},{value:"Support",id:"support",level:3}],c={toc:u},d="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"vpn"},"VPN"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.")),(0,o.kt)("p",null,"If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections."),(0,o.kt)("p",null,"In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki article")),(0,o.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.")),(0,o.kt)("p",null,"There are a wide variety of VPN solutions available both free and commercial."),(0,o.kt)("p",null,"Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet."),(0,o.kt)("p",null,"There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN."),(0,o.kt)("h2",{id:"router"},"Router"),(0,o.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically based on OpenVPN)."),(0,o.kt)("p",null,"Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN."),(0,o.kt)("h2",{id:"openvpn"},"OpenVPN"),(0,o.kt)("p",null,"This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet."),(0,o.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube video")," of use in setting it up."),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("h3",{id:"overview"},"Overview"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Wireguard logo",src:n(2602).Z,width:"128",height:"128"})),(0,o.kt)("p",null,"Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers."),(0,o.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid boot process."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,o.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN."),(0,o.kt)("li",{parentName:"ul"},"The interface is available under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")),".")),(0,o.kt)("p",null,"More information about WireGuard can be found on the ",(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard website"),"."),(0,o.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the connection types:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to server"),": Use your phone or computer to remotely access your Unraid server, including:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Unraid administration via the webGUI"),(0,o.kt)("li",{parentName:"ul"},"Access Docker containers, VMs, and network shares as though you were physically connected to the network"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to LAN"),': Builds on "Remote access to server", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server to server access"),": Allows two Unraid servers to connect to each other."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN to LAN access"),': Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server hub & spoke access"),': Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"VPN tunneled access"),": Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote tunneled access"),": Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.")),(0,o.kt)("p",null,"The following diagram attempts to show these different connection types in a graphical format"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Connection Types",src:n(1998).Z,width:"1000",height:"655"})),(0,o.kt)("h3",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,o.kt)("p",null,"This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network."),(0,o.kt)("h4",{id:"implementation-considerations"},"Implementation considerations"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren\'t around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.'),(0,o.kt)("li",{parentName:"ul"},"This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the ",(0,o.kt)("a",{parentName:"li",href:"#complex-networks"},"Complex Networks")," section."),(0,o.kt)("li",{parentName:"ul"},"Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this ",(0,o.kt)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from SpaceInvaderOne"),"."),(0,o.kt)("li",{parentName:"ul"},"If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port."),(0,o.kt)("li",{parentName:"ul"},"You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at ",(0,o.kt)("a",{parentName:"li",href:"https://www.wireguard.com/install/"},"WireGuard clients"),". Android or iOS make good first client systems because you can get all the details via QR code.")),(0,o.kt)("h4",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -",">",' Management Access and confirm "Use UPnP" is set to Yes'),(0,o.kt)("li",{parentName:"ul"},"On Unraid go to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Initial setup screen",src:n(5372).Z,width:"969",height:"314"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Give the ",(0,o.kt)("strong",{parentName:"li"},"VPN Tunnel")," a name, for example ",(0,o.kt)("em",{parentName:"li"},"MyHome VPN"),"."),(0,o.kt)("li",{parentName:"ul"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Generate Keypair"),". This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this)."),(0,o.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address."),(0,o.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network."),(0,o.kt)("li",{parentName:"ul"},"Select Apply."),(0,o.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP available",src:n(7098).Z,width:"1000",height:"61"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port forwarding',".",'.." you will need to login to your router and setup the port forward as directed by the note:')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP not available",src:n(4546).Z,width:"1000",height:"65"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port."),(0,o.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of your Unraid system shown in the note."),(0,o.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".'))),(0,o.kt)("li",{parentName:"ul"},"Note that after ",(0,o.kt)("strong",{parentName:"li"},"Apply"),', the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Key icon",src:n(6423).Z,width:"128",height:"128"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.'),(0,o.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Activate switch",src:n(711).Z,width:"562",height:"44"})),(0,o.kt)("h4",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Add Peer"),".\n",(0,o.kt)("img",{alt:"Add Peer",src:n(8169).Z,width:"866",height:"284"})),(0,o.kt)("li",{parentName:"ol"},"Give it a name, such as ",(0,o.kt)("em",{parentName:"li"},"MyAndroid"),"."),(0,o.kt)("li",{parentName:"ol"},"For the initial connection type, choose ",(0,o.kt)("em",{parentName:"li"},"Remote access to LAN"),". This will give your device access to Unraid and other items on your network."),(0,o.kt)("li",{parentName:"ol"},'Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)'),(0,o.kt)("li",{parentName:"ol"},'For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.'),(0,o.kt)("li",{parentName:"ol"},"Click Apply.")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.")),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},'It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.')),(0,o.kt)("h4",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer area - Eye icon",src:n(3939).Z,width:"912",height:"108"})),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer details popup",src:n(1967).Z,width:"580",height:"694"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.'),(0,o.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.")),(0,o.kt)("h4",{id:"about-dns"},"About DNS"),(0,o.kt)("p",null,"Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net."),(0,o.kt)("p",null,'Short names such as "tower" probably won\'t work, nor any DNS entries managed by the router.'),(0,o.kt)("p",null,'To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don\'t forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8'),(0,o.kt)("p",null,'This is particularly important for "Remote tunneled access" mode if the client\'s original DNS server is no longer accessible after all traffic is routed through the tunnel.'),(0,o.kt)("p",null,"Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection."),(0,o.kt)("h4",{id:"complex-networks"},"Complex Networks"),(0,o.kt)("p",null,'The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid\'s IP, and that works fine if you have a simple setup.'),(0,o.kt)("p",null,"However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'In the WireGuard tunnel config, set "Use NAT" to No'),(0,o.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)"),(0,o.kt)("li",{parentName:"ul"},"Gateway / Next Hop: IP address of your Unraid system"),(0,o.kt)("li",{parentName:"ul"},"Distance: 1 (your router may not have this option)"),(0,o.kt)("li",{parentName:"ul"},'If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"'))),(0,o.kt)("li",{parentName:"ul"},"Navigate to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > Docker Settings"))," and set ",(0,o.kt)("strong",{parentName:"li"},"Host access to custom networks")," to ",(0,o.kt)("strong",{parentName:"li"},"Enabled"))),(0,o.kt)("h4",{id:"configurations-to-avoid"},"Configurations to avoid"),(0,o.kt)("p",null,"There are some configurations you'll want to avoid, here is how a few key settings interact:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(this is the "simple network" setup assumed by the guide above)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(avoid this config)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and no static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(avoid this, if "Use NAT" = No, you really need to add a static route in your router)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = disabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(You've come this far, just set \"Host access to custom networks\" to enabled you're set)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = enabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - accessible!"),(0,o.kt)("li",{parentName:"ul"},"(woohoo! the recommended setup for complex networks)")))),(0,o.kt)("h4",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,o.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner."),(0,o.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking your work:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.'),(0,o.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config."),(0,o.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.')),(0,o.kt)("p",null,"A few other ideas:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not wifi). This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR code\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working from\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,o.kt)("li",{parentName:"ul"},"If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection."),(0,o.kt)("li",{parentName:"ul"},'Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.'),(0,o.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance."),(0,o.kt)("li",{parentName:"ul"},'If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.'),(0,o.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.'),(0,o.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|"," 192.168.0.0 to 192.168.255.255)"),(0,o.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot:\n",(0,o.kt)("inlineCode",{parentName:"li"},"/boot/config/wireguard/autostart")),(0,o.kt)("li",{parentName:"ul"},'Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.')),(0,o.kt)("h3",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,o.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum thread")," discussing making an outbound VPN connection using WireGuard"),(0,o.kt)("h4",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,o.kt)("p",null,"Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.vpnjantit.com/free-wireguard"},"VPN Jantit")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ovpn.com/en/wireguard"},"OVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://windscribe.com/"},"Windscribe"))),(0,o.kt)("p",null,"Note that any provider that requires a custom WireGuard client will not work with Unraid."),(0,o.kt)("p",null,"Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see ",(0,o.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you."),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-docker"},"Configuring \u201cVPN tunneled access for Docker\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},'On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"The \u201cPeer type of access\u201d will default to \u201cVPN tunneled access for docker\u201d. There are no settings to change, except perhaps to give it a local name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers"),(0,o.kt)("li",{parentName:"ul"},"Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a \"DNS\" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.")),(0,o.kt)("h5",{id:"testing-the-docker-tunnel"},"Testing the Docker tunnel"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},'The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.'),(0,o.kt)("p",{parentName:"admonition"},"Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel ",(0,o.kt)("em",{parentName:"p"},"before")," the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"When setting up the container, set the \u201cNetwork Type\u201d to \u201cCustom: wg2\u201d (or whatever the name of the tunnel was in the previous step)"),(0,o.kt)("li",{parentName:"ul"},'Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.:\n',(0,o.kt)("inlineCode",{parentName:"li"},"--dns=8.8.8.8"),"\n(if you don't set this, the container may leak your ISP's DNS server)"),(0,o.kt)("li",{parentName:"ul"},"The rest of the defaults should be fine, apply the changes and start the container"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider"),(0,o.kt)("li",{parentName:"ul"},"Also visit ",(0,o.kt)("a",{parentName:"li",href:"https://www.dnsleaktest.com/"},"https://www.dnsleaktest.com/")," and run a test, confirm that it only finds IPs related to the DNS provider you specified."),(0,o.kt)("li",{parentName:"ul"},"Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.")),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-system"},"Configuring \u201cVPN tunneled access for system\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN tunnel.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks."),(0,o.kt)("li",{parentName:"ul"},"Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled."),(0,o.kt)("li",{parentName:"ul"},"Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4")))),(0,o.kt)("h5",{id:"testing-the-system-tunnel"},"Testing the System tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider")),(0,o.kt)("h3",{id:"support"},"Support"),(0,o.kt)("p",null,"The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum thread")," on the original Dynamix WireGuard plugin"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum thread")," covering setting up incoming connections."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum thread")," covering setting up outgoing connections.")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}h.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/26113f5d.5bf370f5.js b/fr/assets/js/26113f5d.5bf370f5.js new file mode 100644 index 000000000..2926d3950 --- /dev/null +++ b/fr/assets/js/26113f5d.5bf370f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/fr/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/fr/category/faq"},next:{title:"OS",permalink:"/fr/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/getting-started/"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/26113f5d.e5de3f41.js b/fr/assets/js/26113f5d.e5de3f41.js deleted file mode 100644 index 851a35c91..000000000 --- a/fr/assets/js/26113f5d.e5de3f41.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/fr/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/fr/category/faq"},next:{title:"OS",permalink:"/fr/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/277cf690.163a9f3a.js b/fr/assets/js/277cf690.163a9f3a.js new file mode 100644 index 000000000..29669acac --- /dev/null +++ b/fr/assets/js/277cf690.163a9f3a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9821],{4137:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,y=p["".concat(c,".").concat(m)]||p[m]||d[m]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3593:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var n=r(7462),o=(r(7294),r(4137));const i={sidebar_position:7},a="Security",s={unversionedId:"unraid-os/manual/security/security",id:"unraid-os/manual/security/security",title:"Security",description:"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.",source:"@site/docs/unraid-os/manual/security/security.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/",permalink:"/fr/unraid-os/manual/security/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/security.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/fr/unraid-os/manual/applications"},next:{title:"Good Practices",permalink:"/fr/unraid-os/manual/security/good-practices"}},c={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"security"},"Security"),(0,o.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely."),(0,o.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers."),(0,o.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are safe."),(0,o.kt)("p",null,"There is also a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum thread")," that discusses this topic."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/313b9001.ac3c6c89.js b/fr/assets/js/313b9001.ac3c6c89.js new file mode 100644 index 000000000..4adfa5e97 --- /dev/null +++ b/fr/assets/js/313b9001.ac3c6c89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[559],{4137:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):n(n({},t),e)),r},c=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=l(r),y=a,h=d["".concat(u,".").concat(y)]||d[y]||p[y]||s;return r?o.createElement(h,n(n({ref:t},c),{},{components:r})):o.createElement(h,n({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,n=new Array(s);n[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,n[1]=i;for(var l=2;l<s;l++)n[l]=r[l];return o.createElement.apply(null,n)}return o.createElement.apply(null,r)}y.displayName="MDXCreateElement"},3283:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>n,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=r(7462),a=(r(7294),r(4137));const s={sidebar_position:1},n="Good Practices",i={unversionedId:"unraid-os/manual/security/good-practices",id:"unraid-os/manual/security/good-practices",title:"Good Practices",description:"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.",source:"@site/docs/unraid-os/manual/security/good-practices.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/good-practices",permalink:"/fr/unraid-os/manual/security/good-practices",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/good-practices.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/fr/unraid-os/manual/security/"},next:{title:"Securing webGUI connections (SSL)",permalink:"/fr/unraid-os/manual/security/secure-webgui-ssl"}},u={},l=[{value:"#1 Set a strong root password",id:"1-set-a-strong-root-password",level:2},{value:"#2 Review port mappings on your router",id:"2-review-port-mappings-on-your-router",level:2},{value:"#3 Never put your server in your network's DMZ",id:"3-never-put-your-server-in-your-networks-dmz",level:2},{value:"#4 Set security on your shares to private",id:"4-set-security-on-your-shares-to-private",level:2},{value:"#5 Don't expose the flash share, and if you do, make it private",id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private",level:2},{value:"#6 Keep your server up-to-date",id:"6-keep-your-server-up-to-date",level:2},{value:"#7 Use a secure method for remote administration",id:"7-use-a-secure-method-for-remote-administration",level:2}],c={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"good-practices"},"Good Practices"),(0,a.kt)("p",null,"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system."),(0,a.kt)("h2",{id:"1-set-a-strong-root-password"},"#","1 Set a strong root password"),(0,a.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the ",(0,a.kt)("strong",{parentName:"p"},"Users")," tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"There is a plugin available in Community Apps called ",(0,a.kt)("strong",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in."),(0,a.kt)("p",{parentName:"admonition"},"You could also use ",(0,a.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this webpage")," to get a very quick assessment of the strength of any specific password.")),(0,a.kt)("h2",{id:"2-review-port-mappings-on-your-router"},"#","2 Review port mappings on your router"),(0,a.kt)("p",null,"Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk."),(0,a.kt)("p",null,"Here are just a few ports you should be extra careful with when forwarding:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 80"),": Used to access the webGUI without SSL - unless you've rebound access to another port on the ",(0,a.kt)("strong",{parentName:"li"},"Management Access"),' settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you\'re doing. If you want to make the webGUI remotely accessible, install the ',(0,a.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 443"),": Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the ",(0,a.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,a.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin to enable simple, safe, and secure remote access to your Unraid systems."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 445"),": Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a ",(0,a.kt)("a",{parentName:"li",href:"/fr/unraid-os/manual/security/vpn"},"WireGuard VPN")," to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 111/2049:")," Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Ports in the 57xx range:")," These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the ",(0,a.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.")),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.")),(0,a.kt)("h2",{id:"3-never-put-your-server-in-your-networks-dmz"},"#","3 Never put your server in your network's DMZ"),(0,a.kt)("p",null,'We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.'),(0,a.kt)("p",null,"Never, ",(0,a.kt)("em",{parentName:"p"},"ever"),", do this."),(0,a.kt)("h2",{id:"4-set-security-on-your-shares-to-private"},"#","4 Set security on your shares to private"),(0,a.kt)("p",null,"The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares."),(0,a.kt)("h2",{id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private"},"#","5 Don't expose the flash share, and if you do, make it private"),(0,a.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents."),(0,a.kt)("h2",{id:"6-keep-your-server-up-to-date"},"#","6 Keep your server up-to-date"),(0,a.kt)("p",null,"Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Tools > Update OS"))," to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Settings > Notifications"))," page."),(0,a.kt)("h2",{id:"7-use-a-secure-method-for-remote-administration"},"#","7 Use a secure method for remote administration"),(0,a.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet."),(0,a.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used."),(0,a.kt)("p",null,"An alternative for making the webGUI remotely accessible is to install the ",(0,a.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/4caccc33.5982ae04.js b/fr/assets/js/4caccc33.5982ae04.js new file mode 100644 index 000000000..ebe307880 --- /dev/null +++ b/fr/assets/js/4caccc33.5982ae04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/fr/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/fr/unraid-os/manual/storage-management"},next:{title:"VM Support",permalink:"/fr/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/4caccc33.6ec19246.js b/fr/assets/js/4caccc33.6ec19246.js deleted file mode 100644 index c3b46e5fa..000000000 --- a/fr/assets/js/4caccc33.6ec19246.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/fr/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/fr/unraid-os/manual/shares"},next:{title:"VM Support",permalink:"/fr/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/55054ac6.9a7e37fd.js b/fr/assets/js/55054ac6.9a7e37fd.js deleted file mode 100644 index 78a423e41..000000000 --- a/fr/assets/js/55054ac6.9a7e37fd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/fr/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/fr/unraid-os/manual/what-is-unraid"},next:{title:"Shares",permalink:"/fr/unraid-os/manual/shares"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/fr/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/security#data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/55054ac6.ce6949e6.js b/fr/assets/js/55054ac6.ce6949e6.js new file mode 100644 index 000000000..8cea5d883 --- /dev/null +++ b/fr/assets/js/55054ac6.ce6949e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/fr/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/fr/unraid-os/manual/what-is-unraid"},next:{title:"Docker Management",permalink:"/fr/unraid-os/manual/docker-management"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/fr/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/security/data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/5f60a020.51573a8c.js b/fr/assets/js/5f60a020.51573a8c.js new file mode 100644 index 000000000..dfc67dc57 --- /dev/null +++ b/fr/assets/js/5f60a020.51573a8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4863],{4137:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},s=Object.keys(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),h=d(r),c=n,m=h["".concat(l,".").concat(c)]||h[c]||u[c]||s;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,i=new Array(s);i[0]=c;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[h]="string"==typeof e?e:n,i[1]=o;for(var d=2;d<s;d++)i[d]=r[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},6260:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var a=r(7462),n=(r(7294),r(4137));const s={sidebar_position:2},i="Disk shares",o={unversionedId:"unraid-os/manual/shares/disk-shares",id:"unraid-os/manual/shares/disk-shares",title:"Disk shares",description:"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.",source:"@site/docs/unraid-os/manual/shares/disk-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/disk-shares",permalink:"/fr/unraid-os/manual/shares/disk-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/disk-shares.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"User shares",permalink:"/fr/unraid-os/manual/shares/user-shares"},next:{title:"Network access",permalink:"/fr/unraid-os/manual/shares/network-access"}},l={},d=[{value:"Overview",id:"overview",level:2},{value:"Disk share constraints",id:"disk-share-constraints",level:2}],p={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"disk-shares"},"Disk shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable disk shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". Disk shares are disabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a ",(0,n.kt)("strong",{parentName:"p"},"Disk Shares")," section on the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. If you create a disk share, you should modify the user ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/shares/network-access#access-permissions-at-share-level"},"access permissions")," to restrict network user access."),(0,n.kt)("p",null,"When viewed at the Linux level, the physical devices or pools will appear directly under ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled."),(0,n.kt)("p",null,"Examples of such names are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/diskX:")," - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be ",(0,n.kt)("em",{parentName:"li"},"diskX"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/pool-name:")," - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be ",(0,n.kt)("inlineCode",{parentName:"li"},"pool-name"),".")),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at ",(0,n.kt)("inlineCode",{parentName:"p"},"/boot"),"."),(0,n.kt)("p",{parentName:"admonition"},"Due to the nature of the Unraid boot device, we recommend you maintain your shares in ",(0,n.kt)("em",{parentName:"p"},"Private")," mode, with read/write access given to trusted users.")),(0,n.kt)("h2",{id:"disk-share-constraints"},"Disk share constraints"),(0,n.kt)("p",null,"If you have both disk shares and user shares enabled in ",(0,n.kt)("strong",{parentName:"p"},"Global Share Settings"),", then there is an important restriction that you must observe to avoid potential data loss."),(0,n.kt)("p",null,"You must ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"never"))," copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, ",(0,n.kt)("inlineCode",{parentName:"p"},"cp /mnt/user/share/file /mnt/disk1/share/file"),"."),(0,n.kt)("p",null,"At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost."),(0,n.kt)("p",null,"There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management#unassigned-drives"},"Unassigned Disk"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/6b42df2b.1891268c.js b/fr/assets/js/6b42df2b.1891268c.js deleted file mode 100644 index bb69a9f9f..000000000 --- a/fr/assets/js/6b42df2b.1891268c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/fr/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/fr/unraid-os/manual/applications"},next:{title:"Troubleshooting",permalink:"/fr/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABYCAYAAAB1YOAJAAAMZ2lDQ1BJQ0MgUHJvZmlsZQAASImVVwdUU8kanluSkJDQAhGQEnqT3kFKCC2CgFTBRkgCCSWGhKBiVxYVXLuIYkVXQGyrKyBrQexlEex9saCirIu6KIrKm5CArvvKef85c+fLN//87c7kzgCg2ceVSHJRLQDyxAXS+IgQ5vjUNCapE2AABXrAAJhxeTIJKy4uGkAZ6v8u724ARNFfdVTY+uf4fxUdvkDGAwCZCHEGX8bLg7gZAHwjTyItAICo4C2mFUgUeB7EulIYIMRrFDhLiWsUOEOJjwzqJMazIW4DQI3K5UqzANC4B3lmIS8L2tH4BLGLmC8SA6A5CuJAnpDLh1gR+6i8vKkKXAGxLdSXQAzjAT4Z39jM+pv9jGH7XG7WMFbmNShqoSKZJJc74/8szf+WvFz5kA9r2KhCaWS8In9Yw1s5U6MUmApxtzgjJlZRa4j7RHxl3QFAKUJ5ZJJSHzXiydiwfoABsQufGxoFsRHE4eLcmGgVn5EpCudADFcLOl1UwEmEWB/ixQJZWIJKZ6t0arzKF1qfKWWzVPw5rnTQr8LXA3lOEktl/41QwFHZxzSKhIkpEFMgtiwUJcdArAGxkywnIUqlM7pIyI4Z0pHK4xXxW0IcLxBHhCjtY4WZ0vB4lX5pnmwoX2yrUMSJUeEDBcLESGV9sFM87mD8MBesTSBmJQ3ZEcjGRw/lwheEhilzx54LxEkJKjt9koKQeOVcnCLJjVPp4+aC3AgFbw6xh6wwQTUXTy6Ai1NpH8+UFMQlKuPEi7K5Y+KU8eArQDRgg1DABHLYMsBUkA1Erd0N3fCXciQccIEUZAEBcFQxQzNSBkfE8JkAisAfEAmAbHheyOCoABRC/vMwq3w6gszB0cLBGTngKcR5IArkwt/ywVniYW/J4AlkRP/wzoWNB+PNhU0x/u/5IfYrw4JMtIqRD3lkag5pEsOIocRIYjjRDjfEA3F/PBo+g2Fzw31w36E8vuoTnhLaCY8I1wkdhNtTRAuk30U5FnRA++GqWmR8WwvcGtr0xEPwAGgdWsYZuCFwxD2gHxYeBD17QpatiltRFeZ3tv+WwTdvQ6VHdiGj5BHkYLLt9zM17DU8h60oav1tfZSxZgzXmz088r1/9jfV58M+6ntNbDF2EDuLncDOY0ewBsDEjmON2CXsqAIPr64ng6tryFv8YDw50I7oH/64Kp+KSspc6ly6XD4pxwoE0wsUG489VTJDKsoSFjBZ8OsgYHLEPKdRTDcXN1cAFN8a5d/XW8bgNwRhXPjK5TcD4FsKyayvHNcCgMNPAaC/+8pZvIHbZgUAR9t4cmmhksMVDwL8l9CEO80AmAALYAvzcQNewB8EgzAwBsSCRJAKJsMqC+E6l4JpYBaYD0pAGVgB1oINYAvYDmrAHnAANIAj4AQ4Ay6CNnAd3IWrpxO8BD3gHehHEISE0BA6YoCYIlaIA+KG+CCBSBgSjcQjqUg6koWIETkyC1mIlCGrkA3INqQW+Rk5jJxAziPtyG3kIdKFvEE+ohhKRXVRY9QadUZ9UBYahSaik9AsNB8tQovRZWgFWoXuRuvRE+hF9Dragb5EezGAqWMMzAxzxHwwNhaLpWGZmBSbg5Vi5VgVthdrgu/5KtaBdWMfcCJOx5m4I1zBkXgSzsPz8Tn4UnwDXoPX46fwq/hDvAf/QqARjAgOBD8ChzCekEWYRighlBN2Eg4RTsO91El4RyQSGUQbojfci6nEbOJM4lLiJuI+YjOxnfiY2EsikQxIDqQAUiyJSyoglZDWk3aTjpOukDpJfWrqaqZqbmrhamlqYrUFauVqu9SOqV1Re6bWT9YiW5H9yLFkPnkGeTl5B7mJfJncSe6naFNsKAGUREo2ZT6lgrKXcppyj/JWXV3dXN1XfZy6SH2eeoX6fvVz6g/VP1B1qPZUNnUiVU5dRq2mNlNvU9/SaDRrWjAtjVZAW0arpZ2kPaD1adA1nDQ4GnyNuRqVGvUaVzReaZI1rTRZmpM1izTLNQ9qXtbs1iJrWWuxtbhac7QqtQ5r3dTq1aZru2rHaudpL9XepX1e+7kOScdaJ0yHr1Oss13npM5jOka3oLPpPPpC+g76aXqnLlHXRpejm61bprtHt1W3R09Hz0MvWW+6XqXeUb0OBsawZnAYuYzljAOMG4yPI4xHsEYIRiwZsXfElRHv9UfqB+sL9Ev19+lf1/9owDQIM8gxWGnQYHDfEDe0NxxnOM1ws+Fpw+6RuiP9R/JGlo48MPKOEWpkbxRvNNNou9Elo15jE+MIY4nxeuOTxt0mDJNgk2yTNSbHTLpM6aaBpiLTNabHTV8w9ZgsZi6zgnmK2WNmZBZpJjfbZtZq1m9uY55kvsB8n/l9C4qFj0WmxRqLFoseS1PLsZazLOss71iRrXyshFbrrM5avbe2sU6xXmTdYP3cRt+GY1NkU2dzz5ZmG2Sbb1tle82OaOdjl2O3ya7NHrX3tBfaV9pfdkAdvBxEDpsc2kcRRvmOEo+qGnXTkerIcix0rHN86MRwinZa4NTg9MrZ0jnNeaXzWecvLp4uuS47XO666riOcV3g2uT6xs3ejedW6XbNneYe7j7XvdH9tYeDh8Bjs8ctT7rnWM9Fni2en728vaRee726vC290703et/00fWJ81nqc86X4BviO9f3iO8HPy+/Ar8Dfn/6O/rn+O/yfz7aZrRg9I7RjwPMA7gB2wI6ApmB6YFbAzuCzIK4QVVBj4ItgvnBO4OfsexY2azdrFchLiHSkEMh79l+7Nns5lAsNCK0NLQ1TCcsKWxD2INw8/Cs8LrwngjPiJkRzZGEyKjIlZE3OcYcHqeW0zPGe8zsMaeiqFEJURuiHkXbR0ujm8aiY8eMXT32XoxVjDimIRbEcmJXx96Ps4nLj/t1HHFc3LjKcU/jXeNnxZ9NoCdMSdiV8C4xJHF54t0k2yR5UkuyZvLE5Nrk9ymhKatSOsY7j589/mKqYaootTGNlJactjOtd0LYhLUTOid6TiyZeGOSzaTpk85PNpycO/noFM0p3CkH0wnpKem70j9xY7lV3N4MTsbGjB4em7eO95IfzF/D7xIECFYJnmUGZK7KfJ4VkLU6q0sYJCwXdovYog2i19mR2Vuy3+fE5lTnDOSm5O7LU8tLzzss1hHniE9NNZk6fWq7xEFSIunI98tfm98jjZLulCGySbLGAl14qL8kt5X/IH9YGFhYWdg3LXnawena08XTL82wn7FkxrOi8KKfZuIzeTNbZpnNmj/r4WzW7G1zkDkZc1rmWswtnts5L2JezXzK/Jz5vy1wWbBqwV8LUxY2FRsXzyt+/EPED3UlGiXSkpuL/BdtWYwvFi1uXeK+ZP2SL6X80gtlLmXlZZ+W8pZe+NH1x4ofB5ZlLmtd7rV88wriCvGKGyuDVtas0l5VtOrx6rGr69cw15Su+WvtlLXnyz3Kt6yjrJOv66iIrmhcb7l+xfpPG4QbrleGVO7baLRxycb3m/ibrmwO3rx3i/GWsi0ft4q23toWsa2+yrqqfDtxe+H2pzuSd5z9yeen2p2GO8t2fq4WV3fUxNecqvWurd1ltGt5HVonr+vaPXF3257QPY17Hfdu28fYV7Yf7Jfvf/Fz+s83DkQdaDnoc3DvL1a/bDxEP1Raj9TPqO9pEDZ0NKY2th8ec7ilyb/p0K9Ov1YfMTtSeVTv6PJjlGPFxwaOFx3vbZY0d5/IOvG4ZUrL3ZPjT147Ne5U6+mo0+fOhJ85eZZ19vi5gHNHzvudP3zB50LDRa+L9Zc8Lx36zfO3Q61erfWXvS83tvm2NbWPbj92JejKiauhV89c41y7eD3mevuNpBu3bk682XGLf+v57dzbr+8U3um/O+8e4V7pfa375Q+MHlT9bvf7vg6vjqMPQx9eepTw6O5j3uOXT2RPPnUWP6U9LX9m+qz2udvzI13hXW0vJrzofCl52d9d8of2Hxtf2b765c/gPy/1jO/pfC19PfBm6VuDt9V/efzV0hvX++Bd3rv+96V9Bn01H3w+nP2Y8vFZ/7RPpE8Vn+0+N32J+nJvIG9gQMKVcgePAhhsaGYmAG+qAaClwrMDvLdRJijvgoOCKO+vgwj8J6y8Lw6KFwDVwQAkzQMgGp5RNsNmBTEV9oojfGIwQN3dh5tKZJnubkpbVHgTIvQNDLw1BoDUBMBn6cBA/6aBgc87YLC3AWjOV95BFUKEd4atzgrU1vkKfC/K++k3OX7fA0UEHuD7/l8VUo9L8LR6iQAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAFqgAwAEAAAAAQAAAFgAAAAAQVNDSUkAAABTY3JlZW5zaG90/AXfGgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+ODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+OTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K1upGSgAAABxpRE9UAAAAAgAAAAAAAAAsAAAAKAAAACwAAAAsAAACULkfbXoAAAIcSURBVHgB7Ns7SwNBEADgOcSgIMYHmqA2WgQhaCHWPgorKwVBUGy08B+k0U5LxR9gregPiKUgIhbWQkTIgSAixmgwJual2UBCvNs99xYznOtslczO3iQfE3K7IYbf7/8EGg0XMAi64caVAgSN4wwETdBIAkhlqKMJGkkAqQx1NEEjCSCVoY4maCQBpDLU0QSNJIBUhjqaoJEEkMpQRxM0kgBSGW06eiTYCreJD8jkS0h07spoA70y1gXz4Q5YPDQhW/AetlbQe7MDcGa+eRJbO2j2gfYitpbQXsTWFtpr2FpDewlbe2ivYKNAD3b62Ptt6Jgr39ptTAeFNURfkL4mA/rbm23rXrJFSGaKtrhqAAX6eXNU9fX96joe9nBPC1ysh2x1ds8fYev0wRZXDfwraIZkxSZo1daRWHdyk4KlI7OSSdASYCop6VwJFg7icHmXJmgVQJk1VmS2RvuOjidzEI29yvhI5YR7W2FqqE2Yy0NmydpDR2MpWD42hTBuJ9jpHTtU4g0RMsslaJ6YQ0wE7YRM0A6goike9E/IBC3SdIhboWWQCdoBVDRVDy2LTNAiTYd4FdoNMkE7gIqmGPT2TN+3zYgotz5Odx31GhKP2Q+z96l8bccnsaSSQtACqbXxbti/SthmjXJE5Q+TBG2jBIhMBmC1DB3auebMqoUI2uLGkCMTAXh6LxC0xab2lHfw72YLXkVmF/yr0F8AAAD//yQzz7QAAAHtSURBVO3YPUvDUBgF4NtBEEHroNaPVVoXXQQnUTfB3c3JRV1dioKb4GR/iE4ugji4iKOLICgOglSKVBErhUr9IINFepucJjmRNJxO7XtyT5InoTRNpdPpbxPx62VnytrD8c2bWTm4t+bNg/x8xuTnMo1xuVo32f3rxuewbyYGu83FetaqKZw/md2zkjUPOkjFGboZ2TlJQXtc6iB3dCtkQXsgO5FfaDdkQROhvZCd3bx/fJmtkyLYY/vxSG+X2V4YthYk+jsaIVsaEQ4SCx0nZOf6JRJ6eqzHnK6OR3h/+q9OJLTDsDYzYPYWR/2LRLQisdBxw+5I6KVcn3XflSp1c/lYtebozq7UPs3G0YO1jj24e66Z23KNVvsvT4Z+j9YLm/1k6PfYgm4fS2jnZNywBR30Unusa4UtaA+wMFEztqDDaIK1f7EFDbDCxr/Ygg4r2cZ6B3tzdsjkCrw//tvYLWWT2P7qcDu75cl+c3j16hbHdt5x0LGVBAcmaADEigXNkgQ9ggZArFjQLEnQI2gAxIoFzZIEPYIGQKxY0CxJ0CNoAMSKBc2SBD2CBkCsWNAsSdAjaADEigXNkgQ9ggZArFjQLEnQI2gAxIoFzZIEPYIGQKxY0CxJ0CNoAMSKBc2SBD2CBkCsWNAsSdDzA/HfzJc6/qp8AAAAAElFTkSuQmCC"}}]); \ No newline at end of file diff --git a/fr/assets/js/6b42df2b.f9bdc3ba.js b/fr/assets/js/6b42df2b.f9bdc3ba.js new file mode 100644 index 000000000..23c0103fd --- /dev/null +++ b/fr/assets/js/6b42df2b.f9bdc3ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/fr/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"VPN",permalink:"/fr/unraid-os/manual/security/vpn"},next:{title:"Troubleshooting",permalink:"/fr/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/fr/assets/js/79722de7.81e56057.js b/fr/assets/js/79722de7.47e24423.js similarity index 72% rename from fr/assets/js/79722de7.81e56057.js rename to fr/assets/js/79722de7.47e24423.js index e67cbabee..dae639e4f 100644 --- a/fr/assets/js/79722de7.81e56057.js +++ b/fr/assets/js/79722de7.47e24423.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/fr/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/fr/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/fr/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,c=u["".concat(s,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/fr/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/fr/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/fr/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},u="wrapper";function h(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/getting-started/#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/798531cc.1cc97956.js b/fr/assets/js/798531cc.7aea1eb2.js similarity index 99% rename from fr/assets/js/798531cc.1cc97956.js rename to fr/assets/js/798531cc.7aea1eb2.js index b1162dbbc..0bda4528a 100644 --- a/fr/assets/js/798531cc.1cc97956.js +++ b/fr/assets/js/798531cc.7aea1eb2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/fr/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/fr/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/fr/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/security#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/fr/unraid-os/manual/shares#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/fr/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/fr/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/fr/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares.md#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/7b378cd1.37a73256.js b/fr/assets/js/7b378cd1.37a73256.js new file mode 100644 index 000000000..20f1fa62a --- /dev/null +++ b/fr/assets/js/7b378cd1.37a73256.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/fr/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/fr/unraid-os/manual/vm-management"},next:{title:"Security",permalink:"/fr/unraid-os/manual/security/"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/7b378cd1.9c8375cf.js b/fr/assets/js/7b378cd1.9c8375cf.js deleted file mode 100644 index 52d16daf5..000000000 --- a/fr/assets/js/7b378cd1.9c8375cf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/fr/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/fr/unraid-os/manual/vm-management"},next:{title:"Multi-Language Support",permalink:"/fr/unraid-os/manual/multi-language"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/7c081f1b.1444274b.js b/fr/assets/js/7c081f1b.1444274b.js deleted file mode 100644 index b960edc7d..000000000 --- a/fr/assets/js/7c081f1b.1444274b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/fr/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/fr/unraid-os/manual/security"},next:{title:"Upgrading Unraid",permalink:"/fr/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/7c081f1b.92e8a38a.js b/fr/assets/js/7c081f1b.92e8a38a.js new file mode 100644 index 000000000..eaed2560e --- /dev/null +++ b/fr/assets/js/7c081f1b.92e8a38a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/fr/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/fr/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Upgrading Unraid",permalink:"/fr/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/81b28c9f.62e45f75.js b/fr/assets/js/81b28c9f.62e45f75.js new file mode 100644 index 000000000..2db5d5619 --- /dev/null +++ b/fr/assets/js/81b28c9f.62e45f75.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/fr/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/fr/unraid-os/faq/licensing-faq"},next:{title:"Redeem License Activation Code",permalink:"/fr/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/troubleshooting/#lost-root-password"},"Lost Root Password")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/81b28c9f.c357452f.js b/fr/assets/js/81b28c9f.c357452f.js deleted file mode 100644 index 7414adfbd..000000000 --- a/fr/assets/js/81b28c9f.c357452f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/fr/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/fr/unraid-os/faq/licensing-faq"},next:{title:"Redeem License Activation Code",permalink:"/fr/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"To reset your ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#connecting-to-the-unraid-webgui"},"root\npassword"),":"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Shutdown your server."),(0,n.kt)("li",{parentName:"ol"},"Plug your USB flash into a laptop or another computer."),(0,n.kt)("li",{parentName:"ol"},'Open the USB folder and delete the files "config/shadow" and\n"config/smbpasswd". ',(0,n.kt)("em",{parentName:"li"},'(DO NOT delete "config/passwd).')," This will\nreset all user passwords, including the root user to blank."),(0,n.kt)("li",{parentName:"ol"},"Now, safely eject your USB and reboot it on your Unraid server and\nyou\u2019re in. You can then set a new password in the Users tab of the\nUnraid webgui.")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/8944547a.62c05971.js b/fr/assets/js/8944547a.62c05971.js new file mode 100644 index 000000000..85a1c99ec --- /dev/null +++ b/fr/assets/js/8944547a.62c05971.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5450],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,i=function(e,t){if(null==e)return{};var a,r,i={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=r.createContext({}),h=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(a),p=i,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||n;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<n;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3135:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>I,contentTitle:()=>M,default:()=>E,frontMatter:()=>x,metadata:()=>U,toc:()=>O});var r=a(7462),i=a(7294),n=a(4137),o=a(4334),s=a(2957),l=a(6550),h=a(5238),d=a(3609),u=a(2560);function c(e){return function(e){return i.Children.map(e,(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:i}}=e;return{value:t,label:a,attributes:r,default:i}}))}function p(e){const{values:t,children:a}=e;return(0,i.useMemo)((()=>{const e=t??c(a);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const r=(0,l.k6)(),n=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,h._X)(n),(0,i.useCallback)((e=>{if(!n)return;const t=new URLSearchParams(r.location.search);t.set(n,e),r.replace({...r.location,search:t.toString()})}),[n,r])]}function y(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,n=p(e),[o,s]=(0,i.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:n}))),[l,h]=f({queryString:a,groupId:r}),[d,c]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,n]=(0,u.Nk)(a);return[r,(0,i.useCallback)((e=>{a&&n.set(e)}),[a,n])]}({groupId:r}),y=(()=>{const e=l??d;return m({value:e,tabValues:n})?e:null})();(0,i.useLayoutEffect)((()=>{y&&s(y)}),[y]);return{selectedValue:o,selectValue:(0,i.useCallback)((e=>{if(!m({value:e,tabValues:n}))throw new Error(`Can't select invalid tab value=${e}`);s(e),h(e),c(e)}),[h,c,n]),tabValues:n}}var k=a(1048);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:a,selectedValue:n,selectValue:l,tabValues:h}=e;const d=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),c=e=>{const t=e.currentTarget,a=d.indexOf(t),r=h[a].value;r!==n&&(u(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},h.map((e=>{let{value:t,label:a,attributes:s}=e;return i.createElement("li",(0,r.Z)({role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,key:t,ref:e=>d.push(e),onKeyDown:p,onClick:c},s,{className:(0,o.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":n===t})}),a??t)})))}function w(e){let{lazy:t,children:a,selectedValue:r}=e;const n=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=n.find((e=>e.props.value===r));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},n.map(((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function b(e){const t=y(e);return i.createElement("div",{className:(0,o.Z)("tabs-container",v.tabList)},i.createElement(g,(0,r.Z)({},e,t)),i.createElement(w,(0,r.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return i.createElement(b,(0,r.Z)({key:String(t)},e))}const T={tabItem:"tabItem_Ymn6"};function S(e){let{children:t,hidden:a,className:r}=e;return i.createElement("div",{role:"tabpanel",className:(0,o.Z)(T.tabItem,r),hidden:a},t)}const x={sidebar_position:0},M="User shares",U={unversionedId:"unraid-os/manual/shares/user-shares",id:"unraid-os/manual/shares/user-shares",title:"User shares",description:"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.",source:"@site/docs/unraid-os/manual/shares/user-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/user-shares",permalink:"/fr/unraid-os/manual/shares/user-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/user-shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/fr/unraid-os/manual/shares/"},next:{title:"Disk shares",permalink:"/fr/unraid-os/manual/shares/disk-shares"}},I={},O=[{value:"Overview",id:"overview",level:2},{value:"Share settings",id:"share-settings",level:2},{value:"Minimum free space",id:"minimum-free-space",level:3},{value:"Primary and Secondary storage (Unraid 6.12)",id:"primary-and-secondary-storage-unraid-612",level:3},{value:"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)",id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier",level:3},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:3},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:3},{value:"Allocation method",id:"allocation-method",level:3},{value:"High-water method",id:"high-water-method",level:4},{value:"Fill-up method",id:"fill-up-method",level:4},{value:"Most-free method",id:"most-free-method",level:4},{value:"Split level",id:"split-level",level:3},{value:"Automatically split any directory as required",id:"automatically-split-any-directory-as-required",level:4},{value:"Automatically split only the top level directory as required",id:"automatically-split-only-the-top-level-directory-as-required",level:4},{value:"Automatically split only the top "N" level directories as required",id:"automatically-split-only-the-top-n-level-directories-as-required",level:4},{value:"Manual - do not automatically split directories",id:"manual---do-not-automatically-split-directories",level:4},{value:"Included or excluded disks",id:"included-or-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3}],C={toc:O},A="wrapper";function E(e){let{components:t,...a}=e;return(0,n.kt)(A,(0,r.Z)({},C,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"user-shares"},"User shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable user shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". User shares are enabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view."),(0,n.kt)("p",null,"You manage ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes."),(0,n.kt)("p",null,"When viewed at the Linux level, user shares appear under the path ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user"),". This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/shares/disk-shares"},"Disk Shares"),"."),(0,n.kt)("p",null,"Note that current releases of Unraid also include the mount point ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user0")," that shows the files in ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release."),(0,n.kt)("p",null,"The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method"),", ",(0,n.kt)("a",{parentName:"p",href:"#included-or-excluded-disks"},"included or excluded disks"),", and the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),"."),(0,n.kt)("p",null,"If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation."),(0,n.kt)("p",{parentName:"admonition"},"This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.")),(0,n.kt)("h2",{id:"share-settings"},"Share settings"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"When you configure the settings for the share, select the ",(0,n.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the Unraid webGUI for detailed information on the individual settings.")),(0,n.kt)("h3",{id:"minimum-free-space"},"Minimum free space"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting is used with the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method")," and ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),". This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk)."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.")),(0,n.kt)("p",null,"When Unraid receives a request to store a file, say for example ",(0,n.kt)("inlineCode",{parentName:"p"},"file.eg"),", it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer."),(0,n.kt)("p",null,"We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large."),(0,n.kt)("p",null,"The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter ",(0,n.kt)("em",{parentName:"p"},"50GB"),". Note that new user shares will have a default 10% minimum free space assignment."),(0,n.kt)("p",null,"Unraid will still place files on the disk if the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level")," does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is also a ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for cache pools. This is used to determine if a new file for a user share, with the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache")," setting of ",(0,n.kt)("em",{parentName:"p"},"Yes")," or ",(0,n.kt)("em",{parentName:"p"},"Prefer"),", should be written to the\ncache or, instead, bypass the cache and go directly to the array."),(0,n.kt)("p",{parentName:"admonition"},"This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.")),(0,n.kt)("h3",{id:"primary-and-secondary-storage-unraid-612"},"Primary and Secondary storage (Unraid 6.12)"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," parameter defines the location - ",(0,n.kt)("em",{parentName:"p"},"Cache"),", ",(0,n.kt)("em",{parentName:"p"},"Array"),", or any named pool - to which new files will be written for the selected share. The ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," parameter sets the location where files will be moved to if there is not enough room in primary storage."),(0,n.kt)("p",null,"When primary storage is below the ",(0,n.kt)("a",{parentName:"p",href:"#minimum-free-space"},"Minimum Free Space")," value, new files and folders are created in secondary storage."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"If you select an ",(0,n.kt)("em",{parentName:"p"},"array")," or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.")),(0,n.kt)("p",null,"Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users."),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of ",(0,n.kt)("em",{parentName:"li"},"Cache"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"any named pool can be selected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Array")," can be selected.")))),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"None"),": This means that there is no secondary storage set for this share. Note that secondary storage is optional.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"if Primary storage is a pool name, then the only options are ",(0,n.kt)("em",{parentName:"li"},"None")," and ",(0,n.kt)("em",{parentName:"li"},"Array"),"."),(0,n.kt)("li",{parentName:"ul"},"if Primary storage is ",(0,n.kt)("em",{parentName:"li"},"Array"),", then only ",(0,n.kt)("em",{parentName:"li"},"None")," appears as an option.")))),(0,n.kt)("h3",{id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier"},"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)"),(0,n.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently."),(0,n.kt)("admonition",{title:"INFO",type:"note"},(0,n.kt)("p",{parentName:"admonition"},"Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.")),(0,n.kt)("p",null,"Unraid includes an application called ",(0,n.kt)("strong",{parentName:"p"},"Mover")," that is used in conjunction with user shares. It's behavior is controlled by the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache for new files")," setting under each user share. The way these settings operate is as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value. If the free space is below that then bypass the cache and write the files directly to the main array."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation Method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space on the cache is below the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the cache then the write will fail with an out-of-space error."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the share, and if the free space falls below that value then write the files to the main array instead."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the ",(0,n.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache"),(0,n.kt)("p",{parentName:"li"},"It is the default setting for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"system")," shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations."),(0,n.kt)("p",{parentName:"li"},"This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, ",(0,n.kt)("strong",{parentName:"p"},"Mover")," will automatically try and move the files in any share set to ",(0,n.kt)("em",{parentName:"p"},"Prefer")," to the pool defined as the cache for the share. This is why ",(0,n.kt)("em",{parentName:"p"},"Prefer")," is the default for shares that are located on the cache rather than ",(0,n.kt)("em",{parentName:"p"},"Only")," as it caters to those who do not (yet) have a cache drive."))),(0,n.kt)("h3",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,n.kt)("p",null,"This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage."),(0,n.kt)("p",null,"Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Cache -> Array"),"."),(0,n.kt)("li",null,"Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the Use Cache setting for the share to ",(0,n.kt)("i",null,"Yes"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"Only")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,n.kt)("p",null,"You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," or default system shares."),(0,n.kt)("p",null,"The way to proceed to get the files belonging to a share from the main array onto a pool is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Array -> Cache"),"."),(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting for the share to ",(0,n.kt)("i",null,"Prefer"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"No")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,n.kt)("p",null,"When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user\nshare, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation."),(0,n.kt)("p",null,"The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: ",(0,n.kt)("strong",{parentName:"p"},"High-water"),", ",(0,n.kt)("strong",{parentName:"p"},"Most-free"),", or ",(0,n.kt)("strong",{parentName:"p"},"Fill-up"),"."),(0,n.kt)("h4",{id:"high-water-method"},"High-water method"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"High-water")," setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level."),(0,n.kt)("admonition",{title:"Example",type:"important"},(0,n.kt)("p",{parentName:"admonition"},"If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass."),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left."),(0,n.kt)("li",{parentName:"ul"},"When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space"),(0,n.kt)("li",{parentName:"ul"},"Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.")),(0,n.kt)("p",{parentName:"admonition"},"This pattern continues with progressively smaller high-water levels until the disks are full.")),(0,n.kt)("h4",{id:"fill-up-method"},"Fill-up method"),(0,n.kt)("p",null,"The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full."),(0,n.kt)("h4",{id:"most-free-method"},"Most-free method"),(0,n.kt)("p",null,"The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the\nmost free space."),(0,n.kt)("h3",{id:"split-level"},"Split level"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the number 1."),(0,n.kt)("h4",{id:"automatically-split-any-directory-as-required"},"Automatically split any directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"Allocation method"),". If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-level-directory-as-required"},"Automatically split only the top level directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-n-level-directories-as-required"},'Automatically split only the top "N" level directories as required'),(0,n.kt)("p",null,'Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.'),(0,n.kt)("h4",{id:"manual---do-not-automatically-split-directories"},"Manual - do not automatically split directories"),(0,n.kt)("p",null,"When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"In the event of there being conflicts between the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method")," settings in deciding which would be an appropriate drive to use, the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.")),(0,n.kt)("h3",{id:"included-or-excluded-disks"},"Included or excluded disks"),(0,n.kt)("p",null,"These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share settings"))," are allowed."),(0,n.kt)("p",null,"Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file."),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.")),(0,n.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,n.kt)("p",null,'The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.'),(0,n.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,n.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,n.kt)("h3",{id:"default-shares"},"Default Shares"),(0,n.kt)("p",null,"If ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/docker-management"},"Docker")," or ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/vm-support"},"VMs")," are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems."),(0,n.kt)("p",null,"The shares that fall into this category are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"appdata")," - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"system")," - This is the default location for storing the docker application binaries, and VM XML templates"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"domains")," - This is the default location for storing virtual disk images (vdisks) that are used by VMs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"isos")," - This is the default location for storing CD ISO images for use with VMs.")),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the ",(0,n.kt)("inlineCode",{parentName:"p"},"isos")," share that can be shared over the network so you can place new ISOs to use in virtual machines.")))}E.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/8a89048a.df69773d.js b/fr/assets/js/8a89048a.df69773d.js new file mode 100644 index 000000000..33af7db89 --- /dev/null +++ b/fr/assets/js/8a89048a.df69773d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1770],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=p(a),d=n,h=m["".concat(l,".").concat(d)]||m[d]||u[d]||o;return a?r.createElement(h,i(i({ref:t},c),{},{components:a})):r.createElement(h,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}d.displayName="MDXCreateElement"},8829:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:5},i="Create a new share",s={unversionedId:"unraid-os/manual/shares/create-a-share",id:"unraid-os/manual/shares/create-a-share",title:"Create a new share",description:"When you create a new share, plan ahead.",source:"@site/docs/unraid-os/manual/shares/create-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/create-a-share",permalink:"/fr/unraid-os/manual/shares/create-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/create-a-share.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Network access",permalink:"/fr/unraid-os/manual/shares/network-access"},next:{title:"Delete a share",permalink:"/fr/unraid-os/manual/shares/delete-a-share"}},l={},p=[],c={toc:p},m="wrapper";function u(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-new-share"},"Create a new share"),(0,n.kt)("p",null,"When you create a new share, plan ahead."),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"On the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab select ",(0,n.kt)("strong",{parentName:"p"},"Add Share"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Enter a name for your share in ",(0,n.kt)("strong",{parentName:"p"},"Share name")),(0,n.kt)("admonition",{parentName:"li",title:"Share names",type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so ",(0,n.kt)("inlineCode",{parentName:"p"},"media"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"Media"),", and ",(0,n.kt)("inlineCode",{parentName:"p"},"MEDIA")," would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," Enter a description for the share in the ",(0,n.kt)("strong",{parentName:"p"},"Comments")," field. This is visible when viewed over the network.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Set a ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value, in kilobytes, if you plan to use the setting, otherwise leave it empty.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),": high-water, fill-up, or most-free, depending on your use case. You can read about the differences ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/shares/user-shares#allocation-method"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," method for your data. You can find more information split level, ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/shares/user-shares#split-level"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," choose which disks will be available to the share. By default, all disks will be included.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks")," choose which disks will not be available to the share. Note that if you configure ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," there is no need to configure ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select a ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to ",(0,n.kt)("em",{parentName:"p"},"None"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," If you configure a primary and secondary storage, then ",(0,n.kt)("strong",{parentName:"p"},"Mover action")," option becomes active. This sets the direction of file transfers between Primary and Secondary storage.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select ",(0,n.kt)("strong",{parentName:"p"},"Add share")," to complete the creation."))),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"Note that, by default, a new share will not be shared over the network. You must configure ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/shares/network-access"},"network access")," after the share is created.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/90126b70.a3f6e806.js b/fr/assets/js/90126b70.a3f6e806.js deleted file mode 100644 index ffe67a230..000000000 --- a/fr/assets/js/90126b70.a3f6e806.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[79],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function r(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),p=h(a),u=i,m=p["".concat(l,".").concat(u)]||p[u]||c[u]||s;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=a.length,o=new Array(s);o[0]=u;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,o[1]=r;for(var h=2;h<s;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8693:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const s={sidebar_position:4},o="Shares",r={unversionedId:"unraid-os/manual/shares",id:"unraid-os/manual/shares",title:"Shares",description:"Once you have assigned some devices to Unraid and started the array, you",source:"@site/docs/unraid-os/manual/shares.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/shares",permalink:"/fr/unraid-os/manual/shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/fr/unraid-os/manual/storage-management"},next:{title:"Docker Management",permalink:"/fr/unraid-os/manual/docker-management"}},l={},h=[{value:"User Shares",id:"user-shares",level:2},{value:"Allocation method",id:"allocation-method",level:3},{value:"High Water",id:"high-water",level:4},{value:"Most Free",id:"most-free",level:4},{value:"Fill-Up",id:"fill-up",level:4},{value:"Min. Free Space",id:"min-free-space",level:3},{value:"Split level",id:"split-level",level:3},{value:"Disable Split Level",id:"disable-split-level",level:4},{value:"Split Level = 1 Example",id:"split-level--1-example",level:4},{value:"Split Level 0",id:"split-level-0",level:5},{value:"Example",id:"example",level:6},{value:"Split By Character",id:"split-by-character",level:5},{value:"Included and Excluded disk(s)",id:"included-and-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3},{value:"Unraid 6.12",id:"unraid-612",level:3},{value:"Primary Storage",id:"primary-storage",level:4},{value:"Secondary Storage",id:"secondary-storage",level:4},{value:"Unraid 6.11 and earlier",id:"unraid-611-and-earlier",level:3},{value:"Use Cache (and Mover Behavior with User Shares)",id:"use-cache-and-mover-behavior-with-user-shares",level:4},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:5},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:5},{value:"Disk Shares",id:"disk-shares",level:2},{value:"Network access",id:"network-access",level:2},{value:"Access Permissions",id:"access-permissions",level:2},{value:"Windows 'Gotcha'",id:"windows-gotcha",level:3}],d={toc:h},p="wrapper";function c(e){let{components:t,...s}=e;return(0,i.kt)(p,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"shares"},"Shares"),(0,i.kt)("p",null,"Once you have assigned some devices to Unraid and started the array, you\ncan create ",(0,i.kt)("em",{parentName:"p"},"shares")," to simplify how you store data across multiple disks\nin the array. Unraid will automatically create a handful of shares for\nyou that it needs to support common plugins, containers, and virtual\nmachines, but you can also create your own shares for storing other\ntypes of data. Unraid supports 2 types of share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"User Shares"),(0,i.kt)("li",{parentName:"ul"},"Disk Shares")),(0,i.kt)("p",null,"You can control which of these types of shares are to be used under\nSettings-",">","Global Share Settings. The default on Unraid is to have User\nShares enabled but Disk Shares disabled."),(0,i.kt)("p",null,"It is sometimes important to realize that these are two different views\nof the ",(0,i.kt)("strong",{parentName:"p"},"same")," underlying file system. Every file/folder that appears\nunder a User Share will also appear under the Disk Share for the\nphysical drive that is storing the file/folder."),(0,i.kt)("h2",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"User Shares can be enabled/disabled via Settings-",">","Global Share\nSettings."),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Shares")," tab, you can either ",(0,i.kt)("em",{parentName:"p"},"create")," a new share or ",(0,i.kt)("em",{parentName:"p"},"edit"),"\nan existing share. Click the ",(0,i.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the\nUnraid webGui when configuring shares for more information on the\nsettings available._"),(0,i.kt)("p",null,"User Shares are implemented by using Linux Fuse file system support.\nWhat they do is provide an aggregated view of all top level folders of\nthe same name across the cache and the array drives. The name of this\ntop level folder is used as the share name. From a user perspective this\ngives a view that can span multiple drives when viewed at the network\nlevel. Note that no individual file will span multiple drives - it is\njust the directory level that is given a unified view."),(0,i.kt)("p",null,"When viewed at the Linux level then User Shares will appear under the\npath ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user")),". This includes the files on the main array and also\nany for the share on any pool. It is important to note that a User Share\nis just a logical view imposed on top of the underlying physical file\nsystem so you can see the same files if you look at the physical level\n(as described below for Disk Shares)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Current releases of Unraid also include the mount point\n",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user0"))," that shows the files in User Shares OMITTING any\nfiles for a share that are on any pool. This is just a different\nview of the files on your server. ",(0,i.kt)("em",{parentName:"li"},"However This mount point is now\ndeprecated and may stop being available in a future Unraid release."))),(0,i.kt)("p",null,"Normally one creates User Shares using the Shares tab. However if you\nmanually create a top level folder on any drive the system will\nautomatically consider this to be a user Share and give it default\nsettings."),(0,i.kt)("p",null,"Which physical drive in the main array is used to store a physical file\nis controlled by a number of settings for the share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Allocation method"),": This has various options:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Most Free"),": This option means that new files should go to the\ndisk with the most free space. It has the downside that one is\ncontinually switching drives which keeps the drive involved spun\nup.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Fill Up"),": This option means simply fill up drives in disk\norder until the free space falls below the Minimum Free Space\nsetting, and when that happens move onto the next disk. Many\nusers like this setting because their content is static in\nnature to they find this a simple way to manage their storage.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"High Water"),": (default) This option attempts to provide a\ncompromise between continually switching drives as is caused by\nthe ",(0,i.kt)("strong",{parentName:"p"},"Most Free")," setting and filling up disks in a sensible\nmanner, but not fill each drive to capacity before using the\nnext one. The aim is to allow related files do be kept together\non the same drive and to let unused drives be spun down."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It works with switch points based by continually halving the\nsize of the largest drive in the array."),(0,i.kt)("li",{parentName:"ul"},"Many people find this confusing (particularly in an array with\ndrives of varying size). so as an example if you had an array\nconsisting of drives of 8TB, 3Tb and 2TB",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The largest drive is 8TB so the switch points are 4TB, 2TB,\n1Tb etc."),(0,i.kt)("li",{parentName:"ul"},"The 4TB switch point is active so The 8TB Drive one would be\nfilled to 4TB free space left."),(0,i.kt)("li",{parentName:"ul"},"The 2TB switch point becomes active so the 8TB and 3TB\ndrives each gets used in disk order until it they have 2TB\nfree space"),(0,i.kt)("li",{parentName:"ul"},"The 1TB switch point becomes active so each drive now gets\nused in disk order until it only has 1TB free space."),(0,i.kt)("li",{parentName:"ul"},"etc"))))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Included")," or ",(0,i.kt)("strong",{parentName:"p"},"excluded")," drives: These settings allow you to\ncontrol which array drives can hold files for the share. Never set\nboth values, set only the one that is most convenient for you. If no\ndrives are specified under these settings then all drives allowed\nunder ",(0,i.kt)("em",{parentName:"p"},"Settings ",">",">"," Global Share settings")," are allowed.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Split level"),": This setting controls how files should be grouped."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": in the event of there being contentions between the\n",(0,i.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,i.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,i.kt)("strong",{parentName:"p"},"Allocation\nmethod")," settings in deciding which would be an appropriate drive to\nuse the ",(0,i.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can\nget an out-of-space error even though there is plenty of space on\nother array drives that the share can logically use."),(0,i.kt)("p",null,"Changing any of these settings for a share only affects where any new\nfiles are put. Any files already present in the share are left where\nthey are located when a setting is changed. It takes Manual action to\nmove existing files."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": The Linux file systems used by Unraid are case sensitive\nwhile the SMB share system is not. As an example this means that a\nfolder at the Linux level a folder called 'media' is different to one\ncalled 'Media'. However at the network level case is ignored so for\nexample 'media', Media', 'MEDIA' would all be the same share.\nHowever to take this example further you would only get the content of\none of the underlying 'media' or 'Media' folders to appear at the\nnetwork share level - and it can be non-obvious which one this would be."),(0,i.kt)("p",null,"The following sections proved more detail on how these settings work:"),(0,i.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,i.kt)("p",null,"When a new User share is created, or when any object (file or directory)\nis created within a User share, the system must determine which data\ndisk the User share or object will be created on. In general, a new User\nshare, or object within a User share, will be created on the data disk\nwith the most free space. However there are a set of share configuration\nparameters available to fine tune disk allocation."),(0,i.kt)("p",null,"The basic allocation strategy for a share is defined by the Allocation\nmethod configuration parameter. You may select one of three allocation\nmethods for the system to use."),(0,i.kt)("h4",{id:"high-water"},"High Water"),(0,i.kt)("p",null,"The high water allocation method attempts to step fill each disk so at\nthe end of each step there is an equal free space left on each disk. The\nidea is to progressively fill each disk but not constantly go back and\nforth between disks each time new data is written to the array. Most\ntimes, only a single disk will be needed when writing a series of files\nto the array so the array will only spin-up the needed disk. The high\nwater level is initially set equal to one-half of the size of the\nlargest disk. A new high water level is again set to one-half of the\nprevious high level once all the disks have less free space than the\ncurrent high water level."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8272).Z,width:"836",height:"505"})),(0,i.kt)("p",null,"The above example shows what will occur when there is a mix of 4 disks\nvarying is size from 500gig to 2T in size."),(0,i.kt)("p",null,"First Pass - The high water level is set to one-half of the size of the\n2T drive or 1T. Each disk will be filled until it has <1T of free space\nremaining. This means no data is stored on disk1 or disk2 since both\nalready have <1T of free space. 500gig of data will be stored on disk3\nfollowed by 1T of data being stored on disk4."),(0,i.kt)("p",null,"Second Pass - The high water level is reset to one-half of the previous\nlevel or 500gig. Each disk will be filled until it has <500gig of free\nspace remaining. This means no data is stored on disk1 since it already\nhas <500gig of free space. 500gig of data will be stored on disk2 and\nthen 500gig of data will be stored on disk3 and finally 500gig of data\nwill be stored on disk4."),(0,i.kt)("p",null,"Third Pass - The high water level is again reset to one-half of the\nprevious level or 250gig. Each disk will be filled until it has <250gig\nof free space remaining. 250gig of data will be stored on disk1 and then\n250gig of data will be stored on disk2 and then 250gig of data will be\nstored on disk3 and finally 250gig of data will be stored on disk4. An\ninteresting note is that the 500gig disk does not get used at all until\nthe third pass. Don't be concerned if the smaller sized disks don't\nimmediately get used with this method."),(0,i.kt)("p",null,"This pattern will continue with progressively smaller high water levels\nuntil the disks are full."),(0,i.kt)("h4",{id:"most-free"},"Most Free"),(0,i.kt)("p",null,"The most free allocation method simply picks the disk with the most free\nspace and writes the data to that disk. Each time a file is written\nUnraid will check the free space on the disks and pick the one with the\nmost free space."),(0,i.kt)("h4",{id:"fill-up"},"Fill-Up"),(0,i.kt)("p",null,"The fill-up allocation method simply attempts to fill each disk in order\nfrom the lowest numbered disk to the highest numbered disk. The fill-up\nallocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and\nnot allow any more transfers once the first disk gets close to being\nfull."),(0,i.kt)("h3",{id:"min-free-space"},"Min. Free Space"),(0,i.kt)("p",null,"The minimum free space setting is used with the allocation method and\nsplit level. The Minimum Free space setting doesn't control how much\nspace is kept free, but instead it controls how much space must be free\nfor a drive to be chosen for a new file. The minimum free space setting\ntherefore tells Unraid to stop putting new content onto the disk when\nthe free space falls below the level you set (as long as the Split Level\nsetting indicates it can be split to a new disk). This must be used with\nthe fill-up allocation method or disk full errors will occur when there\nis not enough space to fit a file you are trying to write to the array."),(0,i.kt)("p",null,'First a brief explanation of how Unraid will typically receive a file.\nUnraid typically receives data in this manner. First, Unraid receives\nthe request to store a file, named for example "file.eg". At this\ntime, Unraid has no idea how big "file.eg" is so Unraid will pick a\nspot to place "file.eg" and begin to store the file data as the data\nis transferred over the network. Now, this is important because Unraid\nmay pick a storage disk that does not have enough space to store the\ncomplete "file.eg". Unraid doesn\'t know there is not enough space\nwhen it first places the file so Unraid will only find out the disk\ndoesn\'t have enough space when the disk is full. At this point, the\ntransfer will fail with a disk full error.'),(0,i.kt)("p",null,"So, Unraid will write to a different disk if the minimum free space is\nset to a value larger than the biggest file size you will ever transfer.\nThe recommended setting is 2 times the largest file size you will ever\ntransfer. For example, if the largest file you have is 8gig in size then\nset the minimum free space to 16gig. This allows you to transfer files\nthat may vary in size somewhat and not accidentally transfer one too\nlarge. The minimum free space is set in kilo-bytes."),(0,i.kt)("p",null,"Here are some examples of the minimum free space setting;"),(0,i.kt)("hr",null),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Free Space"),(0,i.kt)("th",{parentName:"tr",align:null},"Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"500 meg"),(0,i.kt)("td",{parentName:"tr",align:null},"500000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"20 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"20000000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"40 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"40000000")))),(0,i.kt)("hr",null),(0,i.kt)("p",null,"Note that unRAID will still place files on the disk if the split level\ndoes not allow the files to be placed on another disk with more free\nspace."),(0,i.kt)("p",null,"Also note that Unraid will typically not move a file onto a new disk if\nyou're over-writing or updating it. For example, a backup file that\ngrows in size over time could end up filling a disk and causing a disk\nfull error."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": There is also a Minimum Free Space setting for cache pools.\nThis is used to determine when a new file for a User Share with the Use\nCache setting having a value of Yes or Prefer should be written to the\ncache or instead bypass the cache and go directly to the array. This\nneeds to be set if you want to avoid filling a cache pool which can\ncause problems. As for this value when used with a User Share it\nshould be larger than the largest file you intend to write, and some\npeople like to make it significantly larger. You get to this setting by\nclicking on a pool on the Main tab."),(0,i.kt)("h3",{id:"split-level"},"Split level"),(0,i.kt)("p",null,"The split level setting tells Unraid how many folder levels are allowed\nto be created on multiple disks. The split level can be used to ensure\nthat the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the\nnumber 1."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": in the event of there being contention between the\nvarious settings for a share over which array drive to select for a file\nthe Split Level setting always takes precedence. This means the\nAllocation Method and Minimum Free Space settings end up being\nover-ridden. This can mean Unraid chooses a drive which does not have\nenough space for the file so that an out-of-space error subsequently\noccurs for the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"The Split level setting is one that many users find confusing to here\nis a more detailed description of how it works."))),(0,i.kt)("p",null,'Here is an example showing a possible directory structure for a user\nshare called "Media".'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," I (the original author of this section) consider combining\nmedia types into a single large share a poor way to store media. I use a\nshare for each media type. Movies is a share and TV shows is a share. I\ncombined the movies and TV shows to show the pitfalls in the split\nlevels when doing this as explained after the figure."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1298).Z,width:"700",height:"255"})),(0,i.kt)("p",null,"Here is an explanation of the different split levels, referenced to the\nfolder structure above;"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Level 1",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select the\n"Automatically split only the top level directory as required"\noption.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Every other folder under the Media share must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting does not allow the SD Movies, HD Movies, Kids\nMovies or TV Shows folders to spread to multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too low for all the media."))),(0,i.kt)("li",{parentName:"ol"},"Level 2",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'this is what you have if in the GUI you select the\n"Automatically split only the top two directory levels as\nrequired" option.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting may work well. It will keep each movie and each TV\nseries together on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting may give issues because it keeps each TV series on\na single disk. So, a disk may fill as new TV seasons are added\nto a TV show which is on a disk which is close to full."))),(0,i.kt)("li",{parentName:"ol"},"Level 3",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top three directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder must remain on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting will allow the contents stored in each Movie Folder\nto be spread out onto multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high for the different movie types."))),(0,i.kt)("li",{parentName:"ol"},"Level 4",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top four directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high because it will allow the contents of\nevery folder to be spread out onto multiple disks. The split\nlevel is not being used to keep similar content together.")))),(0,i.kt)("p",null,"The only valid split level for the above example is 2. This causes a\nsplit level limitation which forces each complete TV series to a single\ndisk. This can force a new TV season to be placed on a disk which is\nalmost full and result in out of space errors once new episodes\ncompletely fill the disk. The split level can't be increased to 3\nbecause each individual movie would not be contained to a single disk."),(0,i.kt)("p",null,"The first way to fix this split level mismatch issue is to create\nseparate shares for the movies and the TV shows. This way, the movies\ncan be set to use a split level of 2 and the TV shows can use a split\nlevel of 3."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3865).Z,width:"726",height:"237"})),(0,i.kt)("p",null,'For Movies use a split level = 2. This allows the "SD Movies", "HD\nMovies" and "Kids Movies" folders to be placed on every disk and it\nkeeps each individual movie folder on a single disk. This way, any\nsingle movie folder and the contents of the movie folder will remain on\na single disk.'),(0,i.kt)("p",null,"For TV_Shows use a split level of either 1 or 2. A split level of 1 will\nkeep each TV series on a single disk and split level of 2 will keep each\nseason on a single disk. The split level of 2 means that the complete TV\nseries can be stored on multiple disks, however each individual season\nof that TV series will be on a single disk."),(0,i.kt)("p",null,"The second way to fix the issue is to add another folder level to the\nmovies, starting first with a Movies folder in the Media share and then\nplacing the different movie types below this."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(2778).Z,width:"644",height:"291"})),(0,i.kt)("p",null,"This user share structure must use split level = 3. SD Movies, HD\nMovies, Kids Movies and each TV series can exist on multiple disks. This\nstructure means each TV season can be on a different disk. This has the\nopposite issue compared to the first example. You can not use split\nlevel 2 to force each complete TV series to remain on a single disk\nwithout messing up the ability of the movies to split to every disk."),(0,i.kt)("p",null,"Some things to keep in mind."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'The above examples are to demonstrate the use of the split level. It\nis not necessary to store your media sorted in the same format as\nthe above example illustrates. You may want to use a Movies share\nand then just place a "Movie Name" folder for each movie directly\ninto the share without sorting the movies by type.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"It is completely valid to force each complete TV series to stay on a\nsingle disk. Just understand that a continuing TV series will keep\nfilling the disk where it is first placed. This may require manual\nintervention to shift some TV series from an almost full disk to an\nempty disk. Using the Most Free allocation method can help eliminate\nthe issue since a completely new TV series would be placed on the\ndisk with the most free space.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The above TV example applies to any similar share. It could apply to\na Pictures share where you store the pictures in folders based on\nthe year (2010, 2011, 2012 etc) or it could apply to a Music share\nwhere you store the music in a folder for each artist. In these\ncases, a split level of 1 would keep a whole year of pictures on a\nsingle disk or it would keep all the music by an artist on a single\ndisk."))),(0,i.kt)("h4",{id:"disable-split-level"},"Disable Split Level"),(0,i.kt)("p",null,"It is also possible to disable the split level by setting a high split\nlevel. A file copy or move will fail if a folder is locked to a full\ndisk and an attempt is made to add more files into that folder. Setting\na high split level will ensure each file will get written to the server\nas long as a disk has space for it."),(0,i.kt)("h4",{id:"split-level--1-example"},"Split Level = 1 Example"),(0,i.kt)("p",null,"The following example demonstrates how the share behaves when the split\nlevel is set to 1. The Share name is New_Movies. Each movie stored in\nthis share has its own folder. Inside the movie folder is the movie file\nas well as some metadata files used by MediaBrowser."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(5154).Z,width:"565",height:"626"})),(0,i.kt)("p",null,"The above Windows Explorer screen shot shows the file structure of the\nNew_Movies share on the left and the contents of the A History of\nViolence movie folder on the right. The levels for this share are\nlabeled on the example. This is what split level = 1 means:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"A New_Movies folder can be created on each disk allowed by the\ninclude and exclude disk settings. A new New_Movies folder will be\ncreated on the next disk in line when the allocation method calls\nfor Unraid to begin filling the next disk. Note that the New_Movies\nfolder will only be created on the next disk in line when it is\nnecessary and not when the share is created.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The A History of Violence folder can only\nexist on one disk. Once it is created on the disk, all of the\ncontents will remain on the same disk. Any changes or additions to\nthis folder will remain on the same disk. For example, a new file\ncalled movie.nfo for the XBMC metadata might be created in this\nfolder in the future. The movie.nfo file will be created in the\nexisting A History of Violence folder. A duplicate A History of\nViolence folder will not be created on another disk to store this new\nfile."))),(0,i.kt)("p",null,"You will notice that the movie folders (500) Days of Summer (2009) and\n2 Fast 2 Furious (2003) both appear in the New_Movies share. The next\nscreen shot will show how each of these files is stored on a separate\ndisk."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8362).Z,width:"1208",height:"705"})),(0,i.kt)("p",null,"The above screen shot shows side by side Window Explorer views of the\nfile structure stored on disk1 and disk2. On the left is disk1 and on\nthe right is disk2. The left Explorer window shows the contents of\ndisk1. The New_Movies share is a folder stored at the top level or the\nroot of disk1 with the individual movie directories stored in this\ndirectory. The right Explorer window shows the contents of disk2. The\nNew_Movies share is a folder stored at the top level or the root of\ndisk2 with the individual movie folders stored in this directory. As\nfiles were being moved into the New_Movies share, Unraid created the\nNew_Movies folder on both disk1 and disk2 to store these files."),(0,i.kt)("p",null,"The windows side by side can be used to examine the contents of the\nNew_Movies share on a disk by disk basis. You will notice that the movie\nfolder (500) Days of Summer (2009) is stored on disk1 and the movie\nfolder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted,\nUnraid combines the movies stored on disk1 and disk2 into one network\nshare called New_Movies and both movies appear in the New_Movies network\nshare."),(0,i.kt)("p",null,"Take note that a share called Movies is also visible on disk2."),(0,i.kt)("h5",{id:"split-level-0"},"Split Level 0"),(0,i.kt)("p",null,'This is what you have if in the GUI you select "Manual: do not\nAutomatically split directories".'),(0,i.kt)("p",null,"Split level 0 is a special case. Split level 0 requires you to create\nthe desired top level or parent folder structure. Unraid will\nunconditionally create an object on the disk that contains the parent\nfolders. Unraid will choose which disk to use according to the\nallocation method if the parent folders exist on multiple disks."),(0,i.kt)("p",null,"If you set the Split level to 0, then all directories/files created\nunder that share will be on the same disk where the directory within\nthat share share was originally created. In other words, use level 0 to\nnot allow the share to split automatically across disks"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")," If you create the same folder structure on multiple disks then\nUnraid will apply the other share settings to decide which disk to use."),(0,i.kt)("h6",{id:"example"},"Example"),(0,i.kt)("p",null,"The server has 4 disks. A user share called Media is desired. Different\ntypes of media will be stored in this share. The desired structure is;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"disk1 - will hold the DVD movies."),(0,i.kt)("li",{parentName:"ul"},"disk2 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk3 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk4 - will hold the TV series.")),(0,i.kt)("p",null,"The desired structure is illustrated below."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3610).Z,width:"1369",height:"388"})),(0,i.kt)("p",null,"On the left side is how the user share will appear and on the right side\nis the folder structure on each disk. The user will go to each disk and\ncreate the folders shown in red to create the storage as listed above.\nThen, the Media folder as well as the DVD Movies, BluRay Movies and TV\nShows folders become the parent folders for everything stored in the\nMedia share. The media will be sorted by disk as follows;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Movies placed in the DVD Movies folder will go to disk1."),(0,i.kt)("li",{parentName:"ul"},"Movies placed in the BluRay Movies folder will go to disk2 or disk3.\nThe disk is selected by the allocation method."),(0,i.kt)("li",{parentName:"ul"},"TV shows placed in the TV Shows folder will go to disk4.")),(0,i.kt)("p",null,"Say one day that disk1 is full and disk5 is added to the server to hold\nnew DVD Movies. The same folders on disk1 must be created on the new\ndisk5. In other words, the folder Media and sub-folder DVD Movies must\nbe created on disk5. Then, Unraid can use either disk1 or disk5 to store\nDVD Movies."),(0,i.kt)("h5",{id:"split-by-character"},"Split By Character"),(0,i.kt)("p",null,"Specify a character in the split level box to use this method. Then,\nUnraid will not allow any folder name containing the character to split.\nFor example, set the split level to an opening square bracket ( [ )\ninstead of a number. Then, create each movie folder with the year\nencased in square brackets after the title in this manner - Iron Man 2\n","[2010]",". Unraid will see the opening square bracket ( [ ) and it will\nnot split this folder or any content stored inside this folder."),(0,i.kt)("p",null,"This type of split level can allow different levels of sub-folders to be\nspecified as not splitting simply by inserting the character into the\nfolder name which should not split. This can overcome the limitation of\nhaving a fixed split level for a share."),(0,i.kt)("h3",{id:"included-and-excluded-disks"},"Included and Excluded disk(s)"),(0,i.kt)("p",null,'The included disk(s) and excluded disk(s) parameters control which disks\nare allowed to be used by each user share. These parameters can be used\nseparately or together to define the group of disks allowed for writing\nfiles to each user share. The disks are entered by disk number with a\ncomma separating each disk, for example "disk2,disk5".'),(0,i.kt)("p",null,"Unraid will first check the included disks(s) set and then the Excluded\ndisk(s) set when deciding which disk to place a file on. Then, Unraid\nwill use the split level and allocation method to pick a disk which is\nallowed to hold the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," The Include/Exclude settings at the individual share level\nonly control which disks new files can be written to. Files on other\ndisks that are in a folder corresponding to the share name will still\nshow up under that share for read purposes."),(0,i.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,i.kt)("p",null,'The included disks(s) parameter defines the set of disks which are\ncandidates for allocation to that share. All disks may be used by the\nuser share when the Included disk(s) parameter is left blank. Specify\nthe disks to include here. For example, set the included disk(s) to\n"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and\ndisk3.'),(0,i.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,i.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are\nexcluded from use by the user share. No disks are excluded from use by\nthe user share when the excluded disk(s) parameter is left blank.\nSpecify the disks to exclude here. For example, set the excluded disk(s)\nto "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,i.kt)("h3",{id:"default-shares"},"Default Shares"),(0,i.kt)("p",null,"If you have Docker or VMs enabled then a number of default shares are\nset up to support their use. It is not mandated that you use these\nshares (and the system will let you remove them if you do not want to\nuse them for their standard purpose) but it is recommended as it tends\nto make it easier to support users who encounter problems."),(0,i.kt)("p",null,"The shares that fall into this category are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"appdata"),": this is the default location for storing working files\nassociated with docker containers. Typically there will be a\nsub-folder for each docker container."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": this is the default location for storing the docker\napplication binaries, and VM XML templates"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": this is the default location for storing virtual disk\nimages (vdisks) that are used by VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": this is the default location for storing CD iso images for\nuse with VMs.")),(0,i.kt)("h3",{id:"unraid-612"},"Unraid 6.12"),(0,i.kt)("p",null,"The Unraid 6.12 release has introduced some new terminology to make it\nclearer to new users where files are initially placed and where they\nwill end up. The same functionality is present in earlier releases, but\nhas often been misunderstood by new users."),(0,i.kt)("h4",{id:"primary-storage"},"Primary Storage"),(0,i.kt)("p",null,"This is the location to which ",(0,i.kt)("strong",{parentName:"p"},"new")," files will be written."),(0,i.kt)("p",null,"If Primary storage is below the Minimum Free Space setting then new\nfiles and folders will be created in Secondary storage, if configured"),(0,i.kt)("p",null,"For the Primary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"this option is mandatory. ie, Primary storage must be selected"),(0,i.kt)("li",{parentName:"ul"},"any named pool can be selected"),(0,i.kt)("li",{parentName:"ul"},'"Array" can be selected (meaning the Unraid array)')),(0,i.kt)("h4",{id:"secondary-storage"},"Secondary Storage"),(0,i.kt)("p",null,"This is the location where files will be moved to if appropriate."),(0,i.kt)("p",null,"For the Secondary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"None: This means that there is no secondary storage set for this\nshare i.e Secondary storage is optional"),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is a pool name, then the only options are\n"none" and "Array"'),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is "Array", then only "none" appears as an\noption')),(0,i.kt)("h3",{id:"unraid-611-and-earlier"},"Unraid 6.11 and earlier"),(0,i.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They\nachieve the same functionality as the settings available in 6.12 but are\npresented differently."),(0,i.kt)("h4",{id:"use-cache-and-mover-behavior-with-user-shares"},"Use Cache (and Mover Behavior with User Shares)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": Starting with Unraid 6.9.0 multiple pools can exist and they\ncan have any name the user chooses. Any of these pools can act act as a\ncache in the way Unraid uses the term. The word cache therefore is\nreferring to this functionality and not necessarily to the pool name."),(0,i.kt)("p",null,"Unraid includes an application called ",(0,i.kt)("strong",{parentName:"p"},"mover"),' that is used in\nconjunction with User Shares. It\'s behavior is controlled by the "Use\nCache for new files" setting under each User Share. The way these\ndifferent settings operate is as follows'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on\nthe cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," value. If the free space\nis below that then by-pass the cache and write the files directly to\nthe main array."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move files to the main array as\nlong as they are not currently open. Which array drive will get the\nfile is controlled by the combination of the ",(0,i.kt)("em",{parentName:"p"},"Allocation method"),",\n",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting for the share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive\nwill get the file is controlled by the combination of the\n",(0,i.kt)("em",{parentName:"p"},"Allocation method"),", ",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting\nfor the share."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the cache that logically belong to this\nshare.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space\non the cache is below the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache\nthen the write will fail with an out-of-space error."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the main array that logically belong to\nthis share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the\ncache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the share, and\nif the free space falls below that value then write the files to the\nmain array instead."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move any files for this share\nthat are on the main array back to the cache as long as the free\nspace on the cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the\ncache"),(0,i.kt)("p",{parentName:"li"}," It is the default setting for the ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"System")," Shares that\nare used to support the Docker and VM sub-systems. In typical use\nyou want the files/folders belonging to these shares to reside on\nthe cache as you get much better performance from Docker containers\nand VMs if their files are not on the main array (due to the cost of\nmaintaining parity on the main array significantly slowing down\nwrite operations)."),(0,i.kt)("p",{parentName:"li"}," This setting works for a share even if you do not have (yet) a\nphysical cache drive(s) as then files will simply be written\ndirectly to the array. If at a later date you add a cache drive\nmover will now automatically try and move the files in any share set\nto Prefer to the pool defined as the cache for the share to improve\nperformance. This is why it is the default for shares that are\ntypically located on the cache rather than ",(0,i.kt)("em",{parentName:"p"},"Only")," as it caters for\nthose who do not (yet) have a cache drive."))),(0,i.kt)("h5",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,i.kt)("p",null,"This is the more traditional usage of a pool for caching where one wants\nthe files for a particular share initially written to a pool acting as a\ncache to maximise write speed, but later you want it to be moved to the\nmain array for long term storage. Most of the time all that is required\nis to set the Use Cache setting for the share to Yes and the default\nbehaviour handles the rest with no further user interaction."),(0,i.kt)("p",null,"Sometimes for one reason or another users find that the files seem to be\n'stuck' on a pool. The way to proceed in such a case to get the files\nbelonging to a share from a pool onto the main array is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)."),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Yes")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move ",(0,i.kt)("em",{parentName:"li"},"Yes"),"\ntype shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use if you disabled them earlier."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"Only")," to say files\nfor this share can never be written to the array.")),(0,i.kt)("h5",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,i.kt)("p",null,"One typically wants files associated with running Docker containers or\nVMs on a pool to maximise performance. It is not unusual for one reason\nor another to find that one has files on the main array which you really\nwant to be on a pool. In particular this is likely to happen for the\nappdata or system shares"),(0,i.kt)("p",null,"The way to proceed to get the files belonging to a share from the main\narray onto a pool is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)"),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Prefer")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move\n",(0,i.kt)("em",{parentName:"li"},"Prefer")," type shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"No")," to say files for\nthis share can never be cached on a pool.")),(0,i.kt)("h2",{id:"disk-shares"},"Disk Shares"),(0,i.kt)("p",null,"These are shares that relate to individual array drives or pools within\nthe Unraid system and that are visible over the network. By default if\nUser Shares are enabled then Disk Shares are not enabled (see the\nIMPORTANT section below for the reason why this is the case). If you\nwant the Disk Shares to be enabled then this is done under\nSettings-",">","Global Share Settings. The Disk Shares will then appear in\nthe Unraid GUI under a Disk Shares section on the Shares tab. You will\nwant to modify the user permissions to restrict network user access if\ndesired, just like User Shares."),(0,i.kt)("p",null,"When viewed at the Linux level the physical devices or pools will appear\ndirectly under ",(0,i.kt)("em",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or\npool. (This happens regardless of whether Disk Shares are enabled) .\nExamples of such names are:"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/diskX:")," these are array drives where X corresponds to the disk\nnumber that shows in the Unraid GUI. The corresponding Disk Share at the\nnetwork level would be ",(0,i.kt)("em",{parentName:"p"},"diskX")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/pool-name:")," These are pools. A single pool can actually consist of\nmultiple drives but Unraid treats them as if they were one drive. The\ncommonest example of a pool-name is ",(0,i.kt)("em",{parentName:"p"},"'cache'")," but it can be any name\ndefined by the user. The corresponding Disk Share at the network level\nwould be ",(0,i.kt)("em",{parentName:"p"},"pool-name.")),(0,i.kt)("p",null,"The Unraid flash device that is used to boot Unraid and store all user\nsettings is also a physical device, but is not normally considered to be\na Disk Share. If you want it visible on the network then you can click\non it in the Main tab and set it to appear at the network level as the\n'",(0,i.kt)("em",{parentName:"p"},"flash"),"' share. At the Linux level it is mounted at /",(0,i.kt)("em",{parentName:"p"},"boot")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),"\nIf you have both ",(0,i.kt)("em",{parentName:"p"},"Disk Shares")," and ",(0,i.kt)("em",{parentName:"p"},"User Shares")," enabled then there\nis an important restriction that you must observe if you want to\navoid potential data loss. What you must ",(0,i.kt)("strong",{parentName:"p"},"NEVER")," do is copy\nbetween a ",(0,i.kt)("strong",{parentName:"p"},"User Share")," and a ",(0,i.kt)("strong",{parentName:"p"},"Disk Share")," in the same copy\noperation where the folder name on the Disk Share corresponds to the\nUser Share name. This is because at the base system level Linux does\nnot understand ",(0,i.kt)("em",{parentName:"p"},"User Shares")," and therefore that a file on a ",(0,i.kt)("em",{parentName:"p"},"Disk\nShare")," and a ",(0,i.kt)("em",{parentName:"p"},"User Share")," can be different views of the ",(0,i.kt)("strong",{parentName:"p"},"same"),"\nfile. If you mix the share types in the same copy command you can\nend up trying to copy the file to itself which results in the file\nbeing truncated to zero length and its content thus being lost."),(0,i.kt)("p",null,"There is no problem if the copy is between shares of the same type,\nor copying to/from a disk mounted as an Unassigned Device."),(0,i.kt)("p",null,"There is another quirk of the interaction between Linux and the Unraid\nUser Share system that users can encounter if they are working at the\nDisk Share level. The Linux command for Move is implemented by first\ntrying a rename on the file (which is fast) and only if that fails does\nit do a copy then delete operation. This can mean that under some\ncircumstances when working locally on the server (e.g. from the command\nline when you try to move files from one user share to another, Linux\nwill often simply rename the files so they have a different path on the\nsame disk, in violation of any user share settings such as included\ndisks. The workaround for this is to instead explicitly copy from source\nto destination so that new files get created following the user share\nsettings, then deleting from the source."),(0,i.kt)("h2",{id:"network-access"},"Network access"),(0,i.kt)("p",null,"You can control what protocols should be supported for accessing the\nUnraid server across the network. Click on Settings-",">","Network Services\nto see the various options available.. These options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"SMB"),": This the standard protocol used by Windows systems. It is\nwidely implemented on other systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"NFS"),": ",(0,i.kt)("strong",{parentName:"li"},"N"),"etwork ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"S"),"ystem. This is a protocol widely\nused on Unix compatible systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"AFP"),": ",(0,i.kt)("strong",{parentName:"li"},"A"),"pple ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol. This is the protocol that\nhas historically been used on Apple Mac systems. It is now a\ndeprecated option as the latest versions of MacOS now use SMB as the\ntransferred protocol for accessing files and folders over the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"FTP"),": ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"T"),"ransfer ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol.")),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the visibility of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes"),": With this setting the share will be visible across the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes (Hidden)"),": With this setting the share can be accessed across\nthe network but will not be listed when browsing the shares on the\nserver. Users can still access the share as long as they know the\nname and the user is prepared to enter in manually."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"No"),": With this option selected then it is not possible to access\nthe share across the network.")),(0,i.kt)("h2",{id:"access-permissions"},"Access Permissions"),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the access rights of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Security")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Public"),": All users have both read and write access to the\ncontents of the share"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Secure"),": All users including guests have read access, you select\nwhich of your users have write access"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Private"),": You select which of your users have access and for each\nuser whether that user has read/write or read-only access.")),(0,i.kt)("h3",{id:"windows-gotcha"},"Windows 'Gotcha'"),(0,i.kt)("p",null,"There is an issue with the way Windows handles network shares that many\nusers fall foul of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"This is the fact that Windows only allows a ",(0,i.kt)("strong",{parentName:"li"},"single")," username to\nbe used to connect to a specific server at any given time. All\nattempts to then connect to a different share on the same server\nthat are not public shares put up a Username/Password prompt and\nthis fails as though you have entered an incorrect password for this\nusername. If you have any shares on the server set to ",(0,i.kt)("strong",{parentName:"li"},"Private")," or\n",(0,i.kt)("strong",{parentName:"li"},"Secure")," access it can therefore be important that you connect to\nsuch a share first before any shares set for ",(0,i.kt)("strong",{parentName:"li"},"Public")," access which\nmay connect as a guest user and make subsequent attempts to connect\nwith a specific user fail."),(0,i.kt)("li",{parentName:"ul"},"A workaround that can help with avoiding this issue is the fact that\nif you access a server both by it's network name and via it's IP\naddress then Windows will treat it a two separate servers as far as\nauthentication is concerned.")))}c.isMDXComponent=!0},8272:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG"},3610:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG"},5154:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg"},8362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG"},1298:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG"},3865:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG"},2778:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG"}}]); \ No newline at end of file diff --git a/fr/assets/js/935f2afb.409d144b.js b/fr/assets/js/935f2afb.409d144b.js deleted file mode 100644 index 1e9bd5cc8..000000000 --- a/fr/assets/js/935f2afb.409d144b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/fr/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/fr/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/fr/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/fr/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/fr/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/fr/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/fr/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/fr/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/fr/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/fr/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/fr/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/fr/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/fr/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/fr/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/fr/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/fr/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/fr/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/fr/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/fr/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/fr/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/fr/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"Redeem License Activation Code","href":"/fr/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/fr/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/fr/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/fr/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/fr/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/fr/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/fr/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/fr/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Shares","href":"/fr/unraid-os/manual/shares","docId":"unraid-os/manual/shares"},{"type":"link","label":"Docker Management","href":"/fr/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/fr/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/fr/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/fr/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"link","label":"Multi-Language Support","href":"/fr/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/fr/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/fr/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/fr/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/fr/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/fr/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/fr/category/getting-started"},{"type":"link","label":"Security","href":"/fr/unraid-os/manual/security","docId":"unraid-os/manual/security"},{"type":"link","label":"Tools","href":"/fr/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/fr/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/fr/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/fr/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/fr/category/zfs"}],"href":"/fr/category/manual"}],"href":"/fr/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/fr/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/fr/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/fr/connect/remote-access","docId":"connect/remote-access"}],"href":"/fr/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/fr/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/fr/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/fr/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/fr/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/fr/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/fr/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/fr/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/fr/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/fr/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/fr/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/fr/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/fr/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/fr/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/fr/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/fr/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/fr/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/fr/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/fr/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/fr/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/fr/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/fr/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/fr/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/fr/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/fr/category/tutorial---extras"}],"href":"/fr/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"Redeem License Activation Code","description":"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security":{"id":"unraid-os/manual/security","title":"Security","description":"This section covers various security-related aspects of Unraid","sidebar":"unraidSidebar"},"unraid-os/manual/shares":{"id":"unraid-os/manual/shares","title":"Shares","description":"Once you have assigned some devices to Unraid and started the array, you","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/fr/assets/js/935f2afb.95f515d2.js b/fr/assets/js/935f2afb.95f515d2.js new file mode 100644 index 000000000..746fa0f7b --- /dev/null +++ b/fr/assets/js/935f2afb.95f515d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/fr/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/fr/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/fr/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/fr/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/fr/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/fr/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/fr/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/fr/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/fr/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/fr/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/fr/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/fr/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/fr/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/fr/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/fr/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/fr/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/fr/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/fr/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/fr/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/fr/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/fr/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"Redeem License Activation Code","href":"/fr/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/fr/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/fr/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/fr/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/fr/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/fr/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Shares","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User shares","href":"/fr/unraid-os/manual/shares/user-shares","docId":"unraid-os/manual/shares/user-shares"},{"type":"link","label":"Disk shares","href":"/fr/unraid-os/manual/shares/disk-shares","docId":"unraid-os/manual/shares/disk-shares"},{"type":"link","label":"Network access","href":"/fr/unraid-os/manual/shares/network-access","docId":"unraid-os/manual/shares/network-access"},{"type":"link","label":"Create a new share","href":"/fr/unraid-os/manual/shares/create-a-share","docId":"unraid-os/manual/shares/create-a-share"},{"type":"link","label":"Delete a share","href":"/fr/unraid-os/manual/shares/delete-a-share","docId":"unraid-os/manual/shares/delete-a-share"}],"href":"/fr/unraid-os/manual/shares/"},{"type":"link","label":"Overview","href":"/fr/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/fr/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Docker Management","href":"/fr/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/fr/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/fr/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/fr/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Good Practices","href":"/fr/unraid-os/manual/security/good-practices","docId":"unraid-os/manual/security/good-practices"},{"type":"link","label":"Securing webGUI connections (SSL)","href":"/fr/unraid-os/manual/security/secure-webgui-ssl","docId":"unraid-os/manual/security/secure-webgui-ssl"},{"type":"link","label":"Data Encryption","href":"/fr/unraid-os/manual/security/data-encryption","docId":"unraid-os/manual/security/data-encryption"},{"type":"link","label":"Flash Drive","href":"/fr/unraid-os/manual/security/flash-drive","docId":"unraid-os/manual/security/flash-drive"},{"type":"link","label":"VPN","href":"/fr/unraid-os/manual/security/vpn","docId":"unraid-os/manual/security/vpn"}],"href":"/fr/unraid-os/manual/security/"},{"type":"link","label":"Multi-Language Support","href":"/fr/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/fr/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/fr/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/fr/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/fr/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/fr/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/fr/category/getting-started"},{"type":"link","label":"Tools","href":"/fr/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/fr/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/fr/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/fr/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/fr/category/zfs"}],"href":"/fr/category/manual"}],"href":"/fr/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/fr/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/fr/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/fr/connect/remote-access","docId":"connect/remote-access"}],"href":"/fr/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/fr/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/fr/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/fr/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/fr/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/fr/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/fr/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/fr/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/fr/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/fr/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/fr/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/fr/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/fr/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/fr/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/fr/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/fr/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/fr/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/fr/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/fr/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/fr/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/fr/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/fr/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/fr/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/fr/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/fr/category/tutorial---extras"}],"href":"/fr/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"Redeem License Activation Code","description":"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security/data-encryption":{"id":"unraid-os/manual/security/data-encryption","title":"Data Encryption","description":"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.","sidebar":"unraidSidebar"},"unraid-os/manual/security/flash-drive":{"id":"unraid-os/manual/security/flash-drive","title":"Flash Drive","description":"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.","sidebar":"unraidSidebar"},"unraid-os/manual/security/good-practices":{"id":"unraid-os/manual/security/good-practices","title":"Good Practices","description":"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.","sidebar":"unraidSidebar"},"unraid-os/manual/security/secure-webgui-ssl":{"id":"unraid-os/manual/security/secure-webgui-ssl","title":"Securing webGUI connections (SSL)","description":"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let\'s Encrypt.","sidebar":"unraidSidebar"},"unraid-os/manual/security/security":{"id":"unraid-os/manual/security/security","title":"Security","description":"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.","sidebar":"unraidSidebar"},"unraid-os/manual/security/vpn":{"id":"unraid-os/manual/security/vpn","title":"VPN","description":"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/create-a-share":{"id":"unraid-os/manual/shares/create-a-share","title":"Create a new share","description":"When you create a new share, plan ahead.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/delete-a-share":{"id":"unraid-os/manual/shares/delete-a-share","title":"Delete a share","description":"To delete a share on your Unraid server the share must contain no data.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/disk-shares":{"id":"unraid-os/manual/shares/disk-shares","title":"Disk shares","description":"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/network-access":{"id":"unraid-os/manual/shares/network-access","title":"Network access","description":"Communication protocols","sidebar":"unraidSidebar"},"unraid-os/manual/shares/shares":{"id":"unraid-os/manual/shares/shares","title":"Shares","description":"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/user-shares":{"id":"unraid-os/manual/shares/user-shares","title":"User shares","description":"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/fr/assets/js/9d23aec8.54184a2d.js b/fr/assets/js/9d23aec8.54184a2d.js new file mode 100644 index 000000000..3ca18c3f9 --- /dev/null +++ b/fr/assets/js/9d23aec8.54184a2d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1754],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>d});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),h=p(a),u=n,d=h["".concat(s,".").concat(u)]||h[u]||m[u]||o;return a?r.createElement(d,l(l({ref:t},c),{},{components:a})):r.createElement(d,l({ref:t},c))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[h]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},6419:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:6},l="Delete a share",i={unversionedId:"unraid-os/manual/shares/delete-a-share",id:"unraid-os/manual/shares/delete-a-share",title:"Delete a share",description:"To delete a share on your Unraid server the share must contain no data.",source:"@site/docs/unraid-os/manual/shares/delete-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/delete-a-share",permalink:"/fr/unraid-os/manual/shares/delete-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/delete-a-share.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"unraidSidebar",previous:{title:"Create a new share",permalink:"/fr/unraid-os/manual/shares/create-a-share"},next:{title:"Overview",permalink:"/fr/unraid-os/manual/what-is-unraid"}},s={},p=[{value:"Delete an empty share",id:"delete-an-empty-share",level:2},{value:"Delete a share that contains data",id:"delete-a-share-that-contains-data",level:2}],c={toc:p},h="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(h,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"delete-a-share"},"Delete a share"),(0,n.kt)("p",null,"To delete a share on your Unraid server the share must contain no data."),(0,n.kt)("h2",{id:"delete-an-empty-share"},"Delete an empty share"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted. Select ",(0,n.kt)("strong",{parentName:"li"},"Done"),".")),(0,n.kt)("h2",{id:"delete-a-share-that-contains-data"},"Delete a share that contains data"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Apps"),"."),(0,n.kt)("li",{parentName:"ol"},"Install a file management plugin from Community, such as Dynamix File Manager."),(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive."),(0,n.kt)("li",{parentName:"ol"},"If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion."),(0,n.kt)("li",{parentName:"ol"},"Delete the data or move it to another share on the server."),(0,n.kt)("li",{parentName:"ol"},"Return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete. This will open the share settings. If no data is left in the share, a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox is available."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted."),(0,n.kt)("li",{parentName:"ol"},"Select ",(0,n.kt)("strong",{parentName:"li"},"Done")," to return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"))),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/a78d85c7.e5f7dbb4.js b/fr/assets/js/a78d85c7.e5f7dbb4.js deleted file mode 100644 index 8cfd410b9..000000000 --- a/fr/assets/js/a78d85c7.e5f7dbb4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=i,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var u=2;u<r;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},5536:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),i=(n(7294),n(4137));const r={},o="Security",s={unversionedId:"unraid-os/manual/security",id:"unraid-os/manual/security",title:"Security",description:"This section covers various security-related aspects of Unraid",source:"@site/docs/unraid-os/manual/security.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/security",permalink:"/fr/unraid-os/manual/security",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/fr/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Tools",permalink:"/fr/unraid-os/manual/tools"}},l={},u=[{value:"Good Practices",id:"good-practices",level:2},{value:"Set a strong root password",id:"set-a-strong-root-password",level:3},{value:"Review port mappings on your router",id:"review-port-mappings-on-your-router",level:3},{value:"Never ever ever put your server in the DMZ",id:"never-ever-ever-put-your-server-in-the-dmz",level:3},{value:"Consider setting shares to private with users and passwords",id:"consider-setting-shares-to-private-with-users-and-passwords",level:3},{value:"Don't expose the Flash share, and if you do, make it private",id:"dont-expose-the-flash-share-and-if-you-do-make-it-private",level:3},{value:"Keep your server up-to-date",id:"keep-your-server-up-to-date",level:3},{value:"Use a secure method for remote administration",id:"use-a-secure-method-for-remote-administration",level:3},{value:"Securing webGui connections (SSL)",id:"securing-webgui-connections-ssl",level:2},{value:"A few details before we begin",id:"a-few-details-before-we-begin",level:3},{value:"How would you like to access the Unraid webGui while on your LAN?",id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan",level:3},{value:"Http only",id:"http-only",level:4},{value:"Https with Self-signed certificate",id:"https-with-self-signed-certificate",level:4},{value:"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable",level:4},{value:"Https with Myunraid.net certificate - with no fallback URL",id:"https-with-myunraidnet-certificate---with-no-fallback-url",level:4},{value:"Redirects",id:"redirects",level:3},{value:"Unraid Connect Remote Access",id:"unraid-connect-remote-access",level:3},{value:"Custom Certificates",id:"custom-certificates",level:3},{value:"Https with Custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:4},{value:"Data Encryption",id:"data-encryption",level:2},{value:"Flash Drive",id:"flash-drive",level:2},{value:"Backups",id:"backups",level:3},{value:"Network Access",id:"network-access",level:3},{value:"Permissions",id:"permissions",level:3},{value:"VPN",id:"vpn",level:2},{value:"Router",id:"router",level:3},{value:"OpenVPN",id:"openvpn",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Overview",id:"overview",level:4},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:4},{value:"Prerequisites",id:"prerequisites",level:5},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:5},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:5},{value:"Caution",id:"caution",level:6},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:5},{value:"About DNS",id:"about-dns",level:5},{value:"Complex Networks",id:"complex-networks",level:5},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:5},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:4},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:5},{value:"Configuring VPN tunneled access",id:"configuring-vpn-tunneled-access",level:5},{value:"Testing the tunnel",id:"testing-the-tunnel",level:5},{value:"Support",id:"support",level:4}],c={toc:u},h="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"security"},"Security"),(0,i.kt)("p",null,"This section covers various security-related aspects of Unraid"),(0,i.kt)("h2",{id:"good-practices"},"Good Practices"),(0,i.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that a\nuser would hate to lose. Since most users will have their home network\nconnected to the internet then precautions should be taken to avoid an\nUnraid server being compromised by malicious actors trying to access\nthem remotely."),(0,i.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls\nthat some user encounter regarding the security of their Unraid servers."),(0,i.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are\nsafe."),(0,i.kt)("p",null,"There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum\nthread"),"\nthat discusses this topic."),(0,i.kt)("h3",{id:"set-a-strong-root-password"},"Set a strong root password"),(0,i.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by\ndefault. This is to ensure you can quickly and easily access the\nmanagement console immediately after initial installation. However, this\ndoesn't mean you shouldn't set one. Doing this is simple. Just\nnavigate to the Users tab and click on root. Now set a password. From\nthen on, you will be required to authenticate anytime you attempt to\nlogin to the webGui."),(0,i.kt)("p",null,"In addition, there is a plugin available in Community Apps called\n",(0,i.kt)("em",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how\nstrong of a password you're creating based on complexity rules (how\nmany capital vs. lowercase letters, numbers, symbols, and overall\npassword length are used to judge this). Consider installing this for\nextra guidance on password strength. Once installed it is available in\nthe settings for any user to give guidance on the strength of any\npassword you type in."),(0,i.kt)("p",null,"You could also use ",(0,i.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this web\npage")," to get a very quick\nassessment of the strength of any specific password."),(0,i.kt)("h3",{id:"review-port-mappings-on-your-router"},"Review port mappings on your router"),(0,i.kt)("p",null,"Forwarding ports to your server is required for specific services that\nyou want to be Internet-accessible such as Plex, FTP servers, game\nservers, VoIP servers, etc. But forwarding the wrong ports can expose\nyour server to significant security risk. Here are just a few ports you\nshould be extra careful with when forwarding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 80"),": Used to access the webGui without SSL (unless you've\nrebound access to another port on the Management Access settings\npage). Forwarding this port by default will allow you to access the\nwebGui remotely, but without SSL securing the connection, devices in\nbetween your browser and the server could \"sniff\" the packets to\nsee what you're doing. If you want to make the webGui remotely\naccessible, install the ",(0,i.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," plugin, which can provide a\nsecure remote access solution that utilizes SSL to ensure your\nconnection is fully encrypted.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 443"),": Used to access the webGui with SSL. This is only\nbetter than port 80 if you have a root password set. If no root\npassword is set and you forward this port, unauthorized users can\nconnect to your webGui and have full access to your server. In\naddition, if you forward this port without using the ",(0,i.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect"),"\nplugin, attempts to connect to the webGui through a browser will\npresent a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,i.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect"),"\nplugin to enable simple, safe, and secure remote access to your\nUnraid systems.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 445"),": Used for SMB (shares). If you forward this port to\nyour server, any public shares can be connected to by any user over\nthe internet. Generally speaking, it is never advisable to expose\nSMB shares directly over the internet. If you need the ability to\naccess your shares remotely, we suggest utilizing a WireGuard VPN to\ncreate a secure tunnel between your device and the server. In\naddition, if the flash device itself is exported using SMB and this\nport is forwarded, its contents can easily be deleted and your paid\nkey could easily be stolen. Just don't do this.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 111/2049:")," Used for NFS (shares). While NFS is disabled by\ndefault, if you are making use of this protocol, just make sure you\naren't forwarding these ports through your router. Similar to SMB,\njust utilize WireGuard to create a secure tunnel from any remote\ndevices that need to connect to the server over NFS.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all,\nbut rather, suggest users leverage a WireGuard VPN connection for\nthe purposes of connecting using either of these protocols.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Ports in the 57xx range:")," These ports are generally used by VMs\nfor VNC access. While you can forward these ports to enable VNC\naccess remotely for your VMs, the better and easier way to do this\nis through installing the ",(0,i.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections\nare secure via SSL and does not require individual ports to be\nforwarded for each VM."))),(0,i.kt)("p",null,"Generally speaking, you really shouldn't need to forward many ports to\nyour server. If you see a forwarding rule you don't understand,\nconsider removing it, see if anyone complains, and if so, you can always\nput it back."),(0,i.kt)("h3",{id:"never-ever-ever-put-your-server-in-the-dmz"},"Never ever ever put your server in the DMZ"),(0,i.kt)("p",null,'No matter how locked down you think you have your server, it is never\nadvisable to place it in the DMZ on your network. By doing so, you are\nessentially forwarding every port on your public IP address to your\nserver directly, allowing all locally accessible services to be remotely\naccessible as well. Regardless of how "locked down" you think you\nactually have the server, placing it in the DMZ exposes it to\nunnecessary risks. Never ever do this.'),(0,i.kt)("h3",{id:"consider-setting-shares-to-private-with-users-and-passwords"},"Consider setting shares to private with users and passwords"),(0,i.kt)("p",null,"The convenience of password-less share access is pretty great. We know\nthat and its why we don't require you to set passwords for your shares.\nHowever, there is a security risk posed to your data when you do this,\neven if you don't forward any ports to your server and have a strong\nroot password. If another device on your network such as a PC, Mac,\nphone, tablet, IoT device, etc. were to have its security breached, it\ncould be used to make a local connection to your server's shares. By\ndefault, shares are set to be publicly readable/writeable, which means\nthose rogue devices can be used to steal, delete, or encrypt the data\nwithin them. In addition, malicious users could also use this method to\nput data on your server that you don't want. It is for these reasons\nthat if you are going to create public shares, we highly recommend\nsetting access to read-only. Only authorized users with a strong\npassword should be able to write data to your shares."),(0,i.kt)("h3",{id:"dont-expose-the-flash-share-and-if-you-do-make-it-private"},"Don't expose the Flash share, and if you do, make it private"),(0,i.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if\nyou need to make advanced changes to your system such as modifying the\ngo file in the config directory. However, the flash device itself\ncontains the files needed to boot Unraid as well as your configuration\ndata (disk assignments, shares, etc). Exposing this share publicly can\nbe extremely dangerous, so we advise against doing so unless you\nabsolutely have to, and when you do, it is advised to do so privately,\nrequiring a username and password to see and modify the contents."),(0,i.kt)("h3",{id:"keep-your-server-up-to-date"},"Keep your server up-to-date"),(0,i.kt)("p",null,"Regardless of what other measures you take, keeping your server current\nwith the latest release(s) is vital to ensuring security. There are\nconstant security notices (CVEs) published for the various components\nused in Unraid OS. We here at Lime Technology do our best to ensure all\nvulnerabilities are addressed in a timely manner with software updates.\nHowever, these updates are useless to you if you don't apply them in a\ntimely manner as well. Keeping your OS up-to-date is easy. Just navigate\nto Tools -",">"," Update OS to check for and apply any updates. You can\nconfigure notifications to prompt you when a new update is available\nfrom the Settings -",">"," Notifications page."),(0,i.kt)("h3",{id:"use-a-secure-method-for-remote-administration"},"Use a secure method for remote administration"),(0,i.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be\nadministered remotely but this should never be done by simply exposing\nexposing the Unraid webGui to the internet."),(0,i.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology.\nUnraid includes as standard the WireGuard VPN and an OpenVPN plugin and\nDocker container is also available. In addition many routers have built\nin VPN support which can be used."),(0,i.kt)("p",null,"An alternative for making the webGui remotely accessible is to install\nthe ",(0,i.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution\nthat utilizes SSL to ensure your connection is fully encrypted."),(0,i.kt)("h2",{id:"securing-webgui-connections-ssl"},"Securing webGui connections (SSL)"),(0,i.kt)("p",null,"Using wildcard SSL Certificates provisioned by ",(0,i.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's\nEncrypt"),", Unraid OS 6.10 improves the security\nof the SSL implementation for both local access and ",(0,i.kt)("a",{parentName:"p",href:"/fr/connect/remote-access"},"Unraid Connect Remote Access"),"."),(0,i.kt)("h3",{id:"a-few-details-before-we-begin"},"A few details before we begin"),(0,i.kt)("p",null,"Some terms:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"servername")," can be changed on the Settings -",">",' Identification\npage. It defaults to "tower".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"localTLD")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "local".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "No".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTP port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "80". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTP port]")," to any of the http URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local:8080"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "443". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTPS port]")," to any of the https URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local:3443"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"certificate")," refers to either a self-signed SSL Certificate, or a\nSSL certificate issued by a Certificate Authority (Let's Encrypt)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"lan-ip")," is your server's LAN IP address with dots changed to\ndashes (example 192-168-100-1)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"wan-ip")," is your internet-facing IP address with dots changed to\ndashes (example 136-26-144-139)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"hash")," is a random 40 character hex string (160 bits) uniquely\nassigned to your server when a certificate is first issued")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Caveats of using a self-signed certificate"),": Note that browsers will\nshow a certificate error because they cannot verify the authenticity of\nself-signed certificates. All traffic will be encrypted once users\nacknowledge the browser warning."),(0,i.kt)("h3",{id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan"},"How would you like to access the Unraid webGui while on your LAN?"),(0,i.kt)("h4",{id:"http-only"},"Http only"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to No"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Traffic between the browser and the server will not be encrypted")),(0,i.kt)("h4",{id:"https-with-self-signed-certificate"},"Https with Self-signed certificate"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},'Unraid will manage the certificate for you. See "Caveats of using a\nself-signed certificate" above.')),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable"},"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate)'),(0,i.kt)("li",{parentName:"ul"},"Leave ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either No or Yes"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to No:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' set to Yes. Note that these\nURLs use a self-signed certificate (See "Caveats of using a\nself-signed certificate" above)',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your alternate URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This personal link\nis shown in the Certificate subject field on the Management Access\npage. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted if using https."),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"If at any point DNS resolution becomes unavailable, the alternate\nURL may not resolve. In this case use the primary URL as a fallback.")),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-no-fallback-url"},"Https with Myunraid.net certificate - with no fallback URL"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate if you run the ',(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned\nbelow)"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},'If DNS Rebinding is not an issue, the "Strict" option for ',(0,i.kt)("strong",{parentName:"li"},"Use\nSSL/TLS")," will be available."),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' to Strict (this was previously called "Auto",\nbut "Strict" is more descriptive)'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),") This\npersonal link is shown in the Certificate subject field on the\nManagement Access page. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"Note: If at any point DNS resolution becomes unavailable (e.g., your\nInternet goes down), use telnet, SSH or local keyboard/monitor to\nlogin. Then:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")),(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]"),'\nusing a self-signed certificate (See\n"Caveats of using a self-signed certificate" above)'),(0,i.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),"\nback to Strict")))),(0,i.kt)("h3",{id:"redirects"},"Redirects"),(0,i.kt)("p",null,"When accessing ",(0,i.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or\n",(0,i.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]")," , the behavior will change\ndepending on the value of the ",(0,i.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Strict, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior\nmakes it more difficult to access your server when DNS is\nunavailable (i.e. your Internet goes down). If that happens see the\nnote under ",(0,i.kt)("inlineCode",{parentName:"li"},"HTTPS with Myunraid.net certificate - with no fallback\nURL")," above."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Yes, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]"),"\nas that will likely work even if your Internet goes down."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to No, then the http url will load\ndirectly.")),(0,i.kt)("p",null,"Note: for the redirects to work, you must start from http urls not https\nurls."),(0,i.kt)("h3",{id:"unraid-connect-remote-access"},"Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect")," plugin"),(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Provision")," if you haven't already"),(0,i.kt)("li",{parentName:"ul"},"Regardless of the value of ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),", you will have the option\nto access the server using\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),")."),(0,i.kt)("li",{parentName:"ul"},"Navigate to Settings -",">"," Management Access -",">"," Unraid Connect page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Allow Remote Access")," to yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you want to use. For added security we\nrecommend you choose a random port over 1000 rather than using the\ndefault of 443. i.e. something like 13856, 48653, etc"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Apply")),(0,i.kt)("li",{parentName:"ul"},"Setup your router to port forward the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe LAN IP address and ",(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a\nnote on the screen telling you the exact port and IP to use."),(0,i.kt)("li",{parentName:"ul"},"Press the ",(0,i.kt)("strong",{parentName:"li"},"Check"),' button. If the port is forwarded correctly you\nwill see a message saying "Your Unraid Server is reachable from the\nInternet"'),(0,i.kt)("li",{parentName:"ul"},"To access your server using Remote Access, login to the Unraid Connect\nDashboard and click the Remote Access link. The URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[wan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856"),").")),(0,i.kt)("h3",{id:"custom-certificates"},"Custom Certificates"),(0,i.kt)("h4",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"Https with Custom certificate - with option to have Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of\nthe certificate.'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS\nfor this URL."),(0,i.kt)("li",{parentName:"ul"},"You are responsible for managing the certificate. Upload it to\n",(0,i.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem")),(0,i.kt)("li",{parentName:"ul"},"The certificate must be valid for ",(0,i.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be\n",(0,i.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be\nspecified in either the "Subject" of the certificate or one of the\n"Subject Alternative Name" fields (prior to 6.10.3, only the\n"Subject" field was used). If you find that Unraid deletes your\ncertificate, it is because the server\'s url is not specified in the\ncertificate.'),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"(optional) If desired, see the Unraid Connect Remote Access section\nabove")),(0,i.kt)("h2",{id:"data-encryption"},"Data Encryption"),(0,i.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the\narray. It does this using the Linux LUKS (Linux Unified Key System)\nencryption modules."),(0,i.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a\nstandard on-disk-format, it does not only facilitate compatibility among\ndistributions but also provides secure management of multiple user\npasswords. In contrast to an existing solution, LUKS stores all\nnecessary setup information in the partition header, enabling the user\nto transport or migrate their data seamlessly."),(0,i.kt)("p",null,"The home page for LUKS can be found\n",(0,i.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,i.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can\nbe read on any standard Linux system even when removed from Unraid as\nlong as one has the key phrase/file needed to unlock the drive."),(0,i.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting\nall drives being used by Unraid. The key for the encryption can be\neither a pass phrase, or provided via a key file. When using a key file\nit is a good idea to use something like an image as there is no chance\nof that ever being guessed. You must make sure that you do not lose the\nencryption key as without it you will not be able to access the data on\nencrypted drives."),(0,i.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the\ndrive)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Click on the drive on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"change the file system to the encrypted type that you want to use"),(0,i.kt)("li",{parentName:"ul"},"click Apply to commit the change"),(0,i.kt)("li",{parentName:"ul"},"click Done to return to the Main tab"),(0,i.kt)("li",{parentName:"ul"},"the drive will now show as unmountable and the option to format\nunmountable drives will be present. Check that the drive is the one\nyou are expecting to be encrypted and if it is correct go ahead and\nformat it.")),(0,i.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the\nencryption key when starting the array. Once this has been done and the\narray successfully started then you can access the data without being\naware of the fact that any drive is encrypted."),(0,i.kt)("p",null,"CAUTION: Encrypting data is good from a security perspective, but users\nshould be aware of the fact that it can complicate recovering from\ncertain types of hardware failure without data loss. On that basis only\nuse encryption if you feel you have a real need for it, and ideally make\nsure you have a good system for backing up any important data."),(0,i.kt)("h2",{id:"flash-drive"},"Flash Drive"),(0,i.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains\nall the configuration information relating to an Unraid server. You\ntherefore want to consider the security of the information it contains\nand how it is accessed."),(0,i.kt)("h3",{id:"backups"},"Backups"),(0,i.kt)("p",null,"If a flash drive ever fails for any reason then as long as you have a\nbackup getting the Unraid server back into normal operation is an easy\nprocess. It is recommended that you make a backup whenever you make a\nsignificant configuration change."),(0,i.kt)("p",null,"You easily achieve this from the Unraid GUI by:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Click on the flash drive on the Main tab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"In the ",(0,i.kt)("em",{parentName:"li"},"Flash Device Settings")," section click on the ",(0,i.kt)("strong",{parentName:"li"},"Flash Backup"),"\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The system will now start creating a zip file that is a backup of\nthe contents of the flash drive"),(0,i.kt)("li",{parentName:"ol"},"When the zip file has been created your browser should prompt you to\nprovide the location where you want the backup saved to. It is\nrecommended that this is a location off the Unraid server so that it\nis available even when the Unraid server is not operational.")),(0,i.kt)("p",null,"If you later need to recreate your flash drive for any reason this\nbackup can be used as input to the Limetech USB Creator tool."),(0,i.kt)("h3",{id:"network-access"},"Network Access"),(0,i.kt)("p",null,"The flash drive can have similar settings applied to it to control\naccess over the network as is the case for other shares on an Unraid\nsystem. The difference is that you set this up by clicking on the\n",(0,i.kt)("strong",{parentName:"p"},"flash")," device on the ",(0,i.kt)("em",{parentName:"p"},"Main")," tab in the GUI rather than doing it via\nthe Shares tab."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network visibility"),": You can specify whether the flash drive\nshould even be accessible via the network, and if it is accessible\nwhether it should be hidden or visible to everyone."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any\naccess permissions that you want applied.")),(0,i.kt)("h3",{id:"permissions"},"Permissions"),(0,i.kt)("p",null,"As part of improving the security of Unraid systems, starting with\nUnraid 6.8 files on the flash drive can no longer be given execute\npermission."),(0,i.kt)("p",null,"The implication of this is that if a user has their own custom scripts\n(or programs) stored on the flash drive they can no longer be executed\nfrom that location. There are a number of ways to handle this:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Copy the files to a location from which they can be executed",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The location ",(0,i.kt)("em",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the\nfiles on the default search path."),(0,i.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding\nappropriate commands to the config/go file on the flash drive."),(0,i.kt)("li",{parentName:"ul"},"Remember to give the files execute permission after copying\nthem."))),(0,i.kt)("li",{parentName:"ul"},"For scripts precede the script name with the command that runs the\nscript (e.g. ",(0,i.kt)("em",{parentName:"li"},"bash path-to-script"),")")),(0,i.kt)("h2",{id:"vpn"},"VPN"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Unraid servers are not hardened against attack via the network so\nshould ",(0,i.kt)("em",{parentName:"strong"},"NEVER")," be exposed directly to the internet.")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"One exception is the WireGuard VPN service introduced in Unraid 6.8\nexplicitly to address secure access to/from the internet."),(0,i.kt)("li",{parentName:"ul"},"If running Docker containers are exposed to the internet then the\nsecurity of these needs to be assessed on a case-by-case basis.")),(0,i.kt)("p",null,"You may need to contact the developer of the container to determine\nhow safe it is to expose it to the internet."),(0,i.kt)("p",null,"There is a level of protection as a docker container runs in a\n'sandboxed' environment so the level of access to the content of\nyour disks is constrained to what you allow in the path mapping\nsettings for the container."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If running VMs that are exposed to the internet then you need to\napply the same security to these that you would apply to a physical\nPC attached to the local LAN.")),(0,i.kt)("p",null,"If you want to make secure connections between an Unraid server and the\nInternet then you want to use a technology known as VPN (Virtual Private\nNetwork). VPN works on a client/server model where you have a server\nthat accepts incoming connections and a client that initiates such\nconnections."),(0,i.kt)("p",null,"In simplistic terms, the idea behind VPN connections is to set up an\nencrypted 'tunnel' between the client and server ends so that no\nmalicious players can intercept or eavesdrop on your interactions. Such\ntunnels are set up so that only authorized users are able to make such\nconnections. More information on VPN as a technology can be found in\n",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki\narticle")),(0,i.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the\ncommonest use case and many users want to be able to safely access\ntheir Unraid servers (and potentially their whole home LAN) when\naway from home. When running in this mode the server end of the VPN\nlink will either be running on the user's router (if it supports\nsuch a feature) or will be hosted on the Unraid server."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you\nwant applications running on Unraid to access the internet. This\ncould be to access generic internet content or to access another\nserver located remotely to the Unraid server. If in is generic\naccess to the internet then it is highly likely that the server end\nof such connection will be via a commercial VPN provider. When\nrunning in this mode Unraid will be acting as the client end of any\nVPN link.")),(0,i.kt)("p",null,"There are a wide variety of VPN solutions available both free and\ncommercial."),(0,i.kt)("h3",{id:"router"},"Router"),(0,i.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically\nbased on OpenVPN)."),(0,i.kt)("p",null,"Using your router to provide the VPN support has the great advantage of\nnot needing any other component on your home LAN to be operational for\nthe VPN to function. Once setup it should allow you to access all\ndevices on your home LAN in a similar manner to when you are directly\nconnected to the LAN."),(0,i.kt)("h3",{id:"openvpn"},"OpenVPN"),(0,i.kt)("p",null,"This has been the way that has historically been advocated to allow\nconnections to be made between an Unraid server and the internet."),(0,i.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN\nthen you can search Community Applications for a plugin or docker\ncontainer that meets your requirements. You may also find the\n",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube\nvideo")," of use in setting it\nup."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is expected that with the introduction of WireGuard support in\nUnraid 6.8 that WireGuard will become the favored way of setting up a\nVPN connection to an Unraid server"),"."),(0,i.kt)("h3",{id:"wireguard"},"WireGuard"),(0,i.kt)("h4",{id:"overview"},"Overview"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2602).Z,width:"128",height:"128"})),(0,i.kt)("p",null,"Unraid 6.8 introduces built-in support for WireGuard VPN connections. The\nintention is to make it as easy as possible for Unraid users to set up\nVPN connections to/from their Unraid servers."),(0,i.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to\nadd 3rd party software to achieve a VPN connection."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid\nboot process."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,i.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be\nbetter than OpenVPN.")),(0,i.kt)("p",null,"More information about WireGuard can be found on the ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard web\nsite"),". It should be noted that WireGuard is\nstill labeled as ''experimental'' by its developers but many users are\nalready finding that it appears to be robust enough for real-world use.\nA number of the commercial VPN services are working on adding WireGuard\nsupport so they must deem it to be mature enough for this to make sense\nto them."),(0,i.kt)("p",null,"The initial Unraid implementation includes adding the WireGuard kernel\nmodules to the standard Unraid distribution and starting the WireGuard\nservices as part of the Unraid boot process, but does not yet have the\nmanagement of WireGuard built-in. At the moment the GUI part is offered\nas a separate plugin, but it is intended that it will be integrated into\nUnraid in the future. This approach allows for quick updates and\nenhancements without dependency on Unraid version releases. The Unraid\nWireGuard GUI plugin can be installed via Community Applications, and\nwhen it is installed you will find that an entry called ",(0,i.kt)("strong",{parentName:"p"},"VPN Manager"),"\nis added to the GUI under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Network Services")),(0,i.kt)("p",null,"Note that the Unraid WireGuard plugin is still evolving so in the event\nof a discrepancy between what is described here and the following forum\nthreads then it is likely that the thread is correct and this wiki needs\nupdating to bring it inline. These threads are also the appropriate\nplace to ask questions regarding Unraid's WireGuard implementation."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the\nconnection types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to server"),": Use your phone or computer to remotely\naccess your Unraid server, including:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid administration via the webgui"),(0,i.kt)("li",{parentName:"ul"},"Access dockers, VMs, and network shares as though you were\nphysically connected to the network"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to LAN"),': Builds on "Remote access to server",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server to server access"),": Allows two Unraid servers to connect to\neach other.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN to LAN access"),': Builds on "Server to server access",\nallowing two entire networks to communicate. May require additional\nsettings, TBD.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server hub & spoke access"),': Builds on "Remote access to\nserver", except that all of the VPN clients can connect to each\nother as well. Note that all traffic passes through the server.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VPN tunneled access"),": Route traffic for specific Dockers and VMs\nthrough a commercial WireGuard VPN provider (see this guide)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote tunneled access"),": Securely access the Internet from\nuntrusted networks by routing all of your traffic through the VPN\nand out Unraid's Internet connection"))),(0,i.kt)("p",null,"The following diagram attempts to show these different connection types\nin a graphical format"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1998).Z,width:"1000",height:"655"})),(0,i.kt)("h4",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,i.kt)("p",null,"This section will walk through how to setup WireGuard so that your\ntrusted devices can VPN into your home network to access Unraid and the\nother systems on your network."),(0,i.kt)("h5",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You must be running Unraid 6.8 with the Dynamix WireGuard plugin\ninstalled via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab (Community Applications).")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Be aware that WireGuard is technically classified as experimental.\nIt has not gone through a full security audit yet and has not\nreached 1.0 status. But it is the first open-source VPN solution\nthat is extremely simple to install, fast, and designed from the\nground up to be secure.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'Understand that giving someone VPN access to your LAN is just like\ngiving them physical access to your LAN, except they have it 24x7\nwhen you aren\'t around to supervise. Only give access to people and\ndevices that you trust, and make certain that the configuration\ndetails (particularly the private keys) are not passed around\ninsecurely. Regardless of the "connection type" you choose, assume\nthat anyone who gets access to this configuration information will\nbe able to get full access to your network.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'This guide works great for simple networks. But if you have Dockers\nwith custom IPs or VMs with strict networking requirements, please\nsee the "Complex Networks" section below.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unraid will automatically configure your WireGuard clients to\nconnect to Unraid using your current public IP address, which will\nwork until that IP address changes. To future-proof the setup, you\ncan use Dynamic DNS instead. There are many ways to do this,\nprobably the easiest is described in this ",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from\nSpaceInvaderOne"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If your router has UPnP enabled, Unraid will be able to\nautomatically forward the port for you. If not, you will need to\nknow how to configure your router to forward a port.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You will need to install WireGuard on a client system. It is\navailable for many operating systems as mentioned at ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/install/"},"WireGuard\nclients"),". Android or iOS make\ngood first client systems because you can get all the details via QR\ncode."))),(0,i.kt)("h5",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"First, go to Settings -",">"," Network Settings -",">",' Interface eth0. If\n"Enable bridging" is "Yes", then WireGuard will work as\ndescribed below. If bridging is disabled, then none of the "Peer\ntype of connections" that involve the local LAN will work properly.\nAs a general rule, bridging should be enabled in Unraid.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7079).Z,width:"739",height:"55"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid,\ngo to Settings -",">",' Management Access and confirm "Use UPnP" is set\nto Yes'),(0,i.kt)("li",{parentName:"ul"},"On Unraid go to Settings -",">"," VPN Manager")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5372).Z,width:"969",height:"314"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give the VPN Tunnel a name, such as "MyHome VPN"'),(0,i.kt)("li",{parentName:"ul"},'Press "Generate Keypair". This will generate a set of public and\nprivate keys for Unraid. Take care not to inadvertently share the\nprivate key with anyone (such as in a screenshot like this)'),(0,i.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current\npublic IP address. If you chose to setup DDNS earlier, change the IP\naddress to the DDNS address."),(0,i.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to\nchange this unless you already have WireGuard running elsewhere on\nyour network."),(0,i.kt)("li",{parentName:"ul"},"Hit Apply"),(0,i.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will\nautomatically setup port forwarding for you:")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7098).Z,width:"1000",height:"61"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port\nforwarding',".",'.." you will need to login to your router and setup the\nport forward as directed by the note:')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(4546).Z,width:"1000",height:"65"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports\nshould be set to the value Unraid provides. If your router\ninterface asks you to put in a range, use the same port for both\nthe starting and ending values. Be sure to specify that it is a\nUDP port and not a TCP port."),(0,i.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of\nyour Unraid system shown in the note."),(0,i.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router,\ni.e. "how to port forward Asus RT-AC68U"'))),(0,i.kt)("li",{parentName:"ul"},'Note that after hitting Apply, the public and private keys are\nremoved from view. If you ever need to access them, click the\n"key" icon on the right-hand side.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(6423).Z,width:"128",height:"128"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the\n"down chevron" on the right-hand side. They are beyond the scope\nof this guide, but you can turn on help to see what they do.'),(0,i.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to\nActive to start WireGuard. You can optionally set the tunnel to\nAutostart when Unraid boots.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(711).Z,width:"562",height:"44"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There have been cases where this step has been omitted and users\nend up wondering why the WireGuard VPN link is not working!")),(0,i.kt)("h5",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click "Add Peer"')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(8169).Z,width:"866",height:"284"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give it a name, such as "MyAndroid"'),(0,i.kt)("li",{parentName:"ul"},'For the initial connection type, choose "Remote access to LAN".\nThis will give your device access to Unraid and other items on your\nnetwork.'),(0,i.kt)("li",{parentName:"ul"},'Click "Generate Keypair" to generate public and private keys for\nthe client. The private key will be given to the client/peer, but\ntake care not to share it with anyone else (such as in a screenshot\nlike this)'),(0,i.kt)("li",{parentName:"ul"},'For an additional layer of security, click "Generate Key" to\ngenerate a preshared key. Again, this should only be shared with\nthis client/peer.'),(0,i.kt)("li",{parentName:"ul"},"Click Apply."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Note:")," Technically, the peer should generate these keys and not\ngive the private key to Unraid. You are welcome to do that, but it\nis less convenient as the config files Unraid generates will not be\ncomplete and you will have to finish configuring the client\nmanually.")),(0,i.kt)("h6",{id:"caution"},"Caution"),(0,i.kt)("p",null,'It can be a little risky to add a new client ("peer") to WireGuard if\nyou are already connected remotely using WireGuard as adding a new peer\n',(0,i.kt)("em",{parentName:"p"},"sometimes")," toggles the WireGuard tunnel off which will render you\nunable to reconnect. This is because a configuration change is made\neffective by inactivating the tunnel with the current (old)\nconfiguration and next activating it with the updated (new)\nconfiguration. If there is any sort of configuration conflict at this\npoint the tunnel stays inactive, and you can no longer connect to the\nUnraid server"),(0,i.kt)("h5",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click the "eye" icon to view the peer configuration. If the button\nis not clickable, you need to apply or reset your unsaved changes\nfirst.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(3939).Z,width:"912",height:"108"})),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1967).Z,width:"580",height:"694"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR\ncode" option in the mobile app and take a picture of the QR code.\nGive it a name and make the connection. The VPN tunnel starts almost\ninstantaneously, once it is up you can open a browser and connect to\nUnraid or another system on your network. Be careful not to share\nscreenshots of the QR code with anyone, or they will be able to use\nit to access your VPN.'),(0,i.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and\ntransfer it to the remote computer via trusted email or dropbox,\netc. Then unzip it and load the configuration into the client.\nProtect this file, anyone who has access to it will be able to\naccess your VPN.")),(0,i.kt)("h5",{id:"about-dns"},"About DNS"),(0,i.kt)("p",null,'The Dynamix WireGuard plugin includes a "Peer DNS Server" option'),(0,i.kt)("p",null,'If you are having trouble with DNS resolution on the WireGuard client,\nreturn to the VPN Manager page in Unraid and switch from Basic to\nAdvanced mode, add the IP address of your desired DNS server into the\n"Peer DNS Server" field, then install the updated config file on the\nclient. You may want to use the IP address of the router on the LAN you\nare connecting to, or you could use a globally available IP like 8.8.8.8'),(0,i.kt)("p",null,'This is required for "Remote tunneled access" mode if the client\'s\noriginal DNS server is no longer accessible after all traffic is routed\nthrough the tunnel.'),(0,i.kt)("p",null,"If you are using any of the split tunneling modes, adding a DNS server\nmay provide name resolution on the remote network, although you will\nlose name resolution on the client's local network in the process. The\nsimplest solution is to add a hosts file on the client that provides\nname resolution for both networks."),(0,i.kt)("h5",{id:"complex-networks"},"Complex Networks"),(0,i.kt)("p",null,'The instructions above should work out of the box for simple networks.\nWith "Use NAT" defaulted to Yes, all network traffic on Unraid uses\nUnraid\'s IP, and that works fine if you have a simple setup.'),(0,i.kt)("p",null,"However, if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, things may not work right (I know, kind of\nvague, but feel free to read the two WireGuard threads for examples)"),(0,i.kt)("p",null,"A partial solution is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'In the WireGuard config, set "Use NAT" to No'),(0,i.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the\nWireGuard "Local tunnel network pool" through the IP address of\nyour Unraid system. For instance, for the default pool of\n10.253.0.0/24 you should add this static route:',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)"),(0,i.kt)("li",{parentName:"ul"},"Gateway: ",(0,i.kt)("inlineCode",{parentName:"li"},"<IP address of your Unraid system>")))),(0,i.kt)("li",{parentName:"ul"},"Note that this covers the entire class B 10.253.x.x network, so you\ncan add other WireGuard tunnels without having to modify your router\nsetup again.")),(0,i.kt)("p",null,"With these changes, your network should work normally. However, your\nWireGuard clients still may not be able to access Dockers on custom IPs\nor VMs. If you find a solution to this, please ask questions in the\nforum threads mentioned earlier."),(0,i.kt)("h5",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,i.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be\ninvisible! There aren't really any error messages if things aren't\nworking, it either works or it doesn't. It cannot be detected by a port\nscanner."),(0,i.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking\nyour work:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Confirm that the tunnel is active (!)"),(0,i.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address,\nand is assigned to your "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router\nto Unraid, and assigned that same port to the "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your\nclients, you will need to set the clients up again so they have the\nlatest config."),(0,i.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config",\notherwise your QR codes/files will not have the latest data.')),(0,i.kt)("p",null,"A few other ideas:"),(0,i.kt)("p",null,"-\xa0For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not\nwifi).\xa0This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR\ncode\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working\nfrom\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Disable any energy-saving features on the client, phones in particular\nmay not use VPNs properly when in low power mode. Also, you may need to\ndisable any "Data Saver" features on the phone so that VPN is not\nthrottled. See this post.\n-\xa0If\xa0your\xa0"Peer\xa0type\xa0of\xa0connection"\xa0includes\xa0one\xa0of\xa0the\xa0LAN\xa0options\xa0but\nyou\xa0can\xa0only\xa0access\xa0Unraid,\xa0go\xa0to\xa0Settings\xa0->\xa0Network\xa0Settings\xa0and\xa0see\nwhether\xa0"Enable\xa0bridging"\xa0is\xa0yes.\xa0\xa0If\xa0bridging\xa0is\xa0disabled,\xa0you\xa0will\xa0not\nbe\xa0able\xa0to\xa0access\xa0your\xa0LAN\xa0over\xa0WireGuard.'),(0,i.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be\nsure that the networks on both sides use different subnets. You\ncan't connect two networks that both use 192.168.1.0/24, for\ninstance."),(0,i.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind\nthat the "broken" remote locations may have a firewall that blocks\nUDP traffic. Hopefully, WireGuard will support TCP in the future,\nbut currently, there is no workaround for this.'),(0,i.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm\nthat the "Local tunnel network pool" is not already in use on your\nnetwork or on one of the networks you are connecting to. If there is\na conflict you will need to change it to a different private network\n(10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|","\n192.168.0.0 to 192.168.255.255)"),(0,i.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webgui for some reason and you need\nto prevent a WireGuard tunnel from automatically starting, delete\nthis file from your flash drive and reboot:")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"/boot/config/wireguard/autostart")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note that if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, you will likely have issues. Please see the\n"Complex Networks" section above.')),(0,i.kt)("h4",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,i.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection\nfrom an Unraid server to a commercial VPN provider. If you are trying to\naccess your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ndiscussing making an outbound VPN connection using WireGuard"),(0,i.kt)("h5",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,i.kt)("p",null,"Several commercial VPN providers now support WireGuard. A few are listed\nbelow but this is not intended to be an exhaustive list. No endorsement\nis implied, you need to research and determine which one meets your\nneeds."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tunsafe.com/vpn"},"TunSafe")," (currently free)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://torguard.net/blog/what-is-wireguard-vpn/"},"TorGuard VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://nordvpn.com/blog/nordlynx-protocol-wireguard/"},"NordVPN")," Not\nsure this works without using the NordLynx client so may not be\ncompatible with the Unraid implementation.")),(0,i.kt)("p",null,"Note that with the current state of WireGuard, VPN providers cannot\nguarantee the same amount of privacy as they can with OpenVPN. See\n",(0,i.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for more detail.\nTypically the objections are not around security, but around the fact\nthat it is harder for them to guarantee that they cannot track you."),(0,i.kt)("h5",{id:"configuring-vpn-tunneled-access"},"Configuring VPN tunneled access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,i.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config"\nbutton and select the file on your hard drive. This will create a\nnew tunnel specific to this provider.'),(0,i.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name.\nClick Apply."),(0,i.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for\nthis type of connection"),(0,i.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,i.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN\ntunnel.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"In the future it may be possible to restrict it so that only\nspecific Dockers use the VPN tunnel. Until then, you may need to\ndisable the tunnel in order to check for plugin updates or\nperform other Unraid administrative tasks."),(0,i.kt)("li",{parentName:"ul"},"Note that currently, Unraid will ignore any DNS server that is\nspecified in the downloaded config file. Unraid's DNS should be\nset to something that will work whether the tunnel is up or\ndown, such as 8.8.8.8 and 8.8.4.4")))),(0,i.kt)("h5",{id:"testing-the-tunnel"},"Testing the tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using Community Applications, install a browser such as the\njlesage/Firefox Docker container"),(0,i.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,i.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,i.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should\nsee that your IP address is in the country you selected when you\nsigned up with the provider")),(0,i.kt)("h4",{id:"support"},"Support"),(0,i.kt)("p",null,"WireGuard is a new feature in Unraid so the forum is the place to\nask questions and get the most up-to-date information on using\nWireGuard with Unraid. The threads most likely to be of interest are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},7079:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/aed38285.863e5bc8.js b/fr/assets/js/aed38285.863e5bc8.js new file mode 100644 index 000000000..c942c7579 --- /dev/null +++ b/fr/assets/js/aed38285.863e5bc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1932],{4137:(e,r,a)=>{a.d(r,{Zo:()=>d,kt:()=>m});var t=a(7294);function n(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}function s(e,r){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),a.push.apply(a,t)}return a}function o(e){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?s(Object(a),!0).forEach((function(r){n(e,r,a[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(a,r))}))}return e}function i(e,r){if(null==e)return{};var a,t,n=function(e,r){if(null==e)return{};var a,t,n={},s=Object.keys(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||(n[a]=e[a]);return n}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=t.createContext({}),u=function(e){var r=t.useContext(l),a=r;return e&&(a="function"==typeof e?e(r):o(o({},r),e)),a},d=function(e){var r=u(e.components);return t.createElement(l.Provider,{value:r},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},p=t.forwardRef((function(e,r){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),h=u(a),p=n,m=h["".concat(l,".").concat(p)]||h[p]||c[p]||s;return a?t.createElement(m,o(o({ref:r},d),{},{components:a})):t.createElement(m,o({ref:r},d))}));function m(e,r){var a=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=p;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<s;u++)o[u]=a[u];return t.createElement.apply(null,o)}return t.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3976:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var t=a(7462),n=(a(7294),a(4137));const s={sidebar_position:0},o="Shares",i={unversionedId:"unraid-os/manual/shares/shares",id:"unraid-os/manual/shares/shares",title:"Shares",description:"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.",source:"@site/docs/unraid-os/manual/shares/shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/",permalink:"/fr/unraid-os/manual/shares/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/fr/category/manual"},next:{title:"User shares",permalink:"/fr/unraid-os/manual/shares/user-shares"}},l={},u=[],d={toc:u},h="wrapper";function c(e){let{components:r,...a}=e;return(0,n.kt)(h,(0,t.Z)({},d,a,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"shares"},"Shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.")),(0,n.kt)("p",null,"One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives."),(0,n.kt)("p",null,"There are two types of shares in Unraid:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/fr/unraid-os/manual/shares/user-shares"},"User Shares")," that rely on Linux FUSE and represent folders in the overall file system."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/fr/unraid-os/manual/shares/disk-shares"},"Disk Shares")," that rely on the drives' ",(0,n.kt)("a",{parentName:"li",href:"https://docs.unraid.net/unraid-os/manual/storage-management#creating-a-file-system-format"},"file system")," to share the disk as a whole.")),(0,n.kt)("p",null,"It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder."),(0,n.kt)("p",null,"When you first initialize your array, Unraid automatically creates a ",(0,n.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/shares/user-shares#default-shares"},"handful of user shares"),". These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data."),(0,n.kt)("p",null,"You manage shares from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab in Unraid. You enable or disable shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),", with user shares being enabled by default."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/b13723e0.86922bbf.js b/fr/assets/js/b13723e0.2af37b56.js similarity index 58% rename from fr/assets/js/b13723e0.86922bbf.js rename to fr/assets/js/b13723e0.2af37b56.js index 14baabec2..cd8dc57e9 100644 --- a/fr/assets/js/b13723e0.86922bbf.js +++ b/fr/assets/js/b13723e0.2af37b56.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/fr/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/fr/category/getting-started"},next:{title:"Manual Install Method",permalink:"/fr/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/security"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/fr/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/fr/category/getting-started"},next:{title:"Manual Install Method",permalink:"/fr/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/fr/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/fr/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"../security.md"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/b58ca393.77647b34.js b/fr/assets/js/b58ca393.428256a7.js similarity index 78% rename from fr/assets/js/b58ca393.77647b34.js rename to fr/assets/js/b58ca393.428256a7.js index 02bf19959..bcd5846a4 100644 --- a/fr/assets/js/b58ca393.77647b34.js +++ b/fr/assets/js/b58ca393.428256a7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4023],{2623:a=>{a.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/fr/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/fr/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Overview","permalink":"/fr/unraid-os/manual/what-is-unraid"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4023],{2623:a=>{a.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/fr/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/fr/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Shares","permalink":"/fr/unraid-os/manual/shares/"}}}')}}]); \ No newline at end of file diff --git a/fr/assets/js/ba2ffba3.c0c2d7db.js b/fr/assets/js/ba2ffba3.d8131fc7.js similarity index 99% rename from fr/assets/js/ba2ffba3.c0c2d7db.js rename to fr/assets/js/ba2ffba3.d8131fc7.js index 8e8ef1e69..80984147d 100644 --- a/fr/assets/js/ba2ffba3.c0c2d7db.js +++ b/fr/assets/js/ba2ffba3.d8131fc7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/fr/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/fr/connect/help"},next:{title:"Legacy Documentation",permalink:"/fr/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/security#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/fr/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/fr/connect/help"},next:{title:"Legacy Documentation",permalink:"/fr/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/fr/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/fr/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/e8c37b9f.e264fcc7.js b/fr/assets/js/e8c37b9f.14d390cd.js similarity index 69% rename from fr/assets/js/e8c37b9f.e264fcc7.js rename to fr/assets/js/e8c37b9f.14d390cd.js index 17f75c1a4..52860074c 100644 --- a/fr/assets/js/e8c37b9f.e264fcc7.js +++ b/fr/assets/js/e8c37b9f.14d390cd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7436],{4137:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},1779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(4137));const a={},i="Redeem License Activation Code",c={unversionedId:"unraid-os/faq/redeem-license-activation-code",id:"unraid-os/faq/redeem-license-activation-code",title:"Redeem License Activation Code",description:"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.",source:"@site/docs/unraid-os/faq/redeem-license-activation-code.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/redeem-license-activation-code",permalink:"/fr/unraid-os/faq/redeem-license-activation-code",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"OS",permalink:"/fr/unraid-os/faq/os-faq"},next:{title:"Unraid Account",permalink:"/fr/unraid-os/faq/unraid-account"}},u={},l=[],s={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"redeem-license-activation-code"},"Redeem License Activation Code"),(0,o.kt)("p",null,"First, buy an activation code via ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website"),". Your unique activation code will be on your purchase receipt."),(0,o.kt)("p",null,"Next, follow our ",(0,o.kt)("a",{parentName:"p",href:"../manual/getting-started.md"},"Getting Started")," guide to set up an Unraid server."),(0,o.kt)("p",null,"Once your server is up and running:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Login to your Unraid server's webgui. (",(0,o.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac by default)"),(0,o.kt)("li",{parentName:"ol"},"For Unraid 6.10 and newer, Sign in to your Unraid.net account (or\n",(0,o.kt)("a",{parentName:"li",href:"https://account.unraid.net/"},"create one"),') from the\ntop-right of the webgui and select "Redeem Activation Code" and enter the activation code to\nactivate your license. For Unraid 6.9 and older, navigate to the\nTools -',">",' Registration page in the webGui and click "Purchase Key."'),(0,o.kt)("li",{parentName:"ol"},'Select the corresponding license you purchased via activation code\nand enter the activation code in the "Your Activation Code" box to\ncomplete the activation process. Your registration key will be\nemailed to you with instructions for installation! ',(0,o.kt)("em",{parentName:"li"},"Note: Activation\nCodes are one-time use for generating your Unraid license keyfile."))),(0,o.kt)("p",null,"If you have any issues or questions with the above, there is also a walk\nthrough video: ",(0,o.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional\nVideo")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7436],{4137:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},1779:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(4137));const a={},i="Redeem License Activation Code",c={unversionedId:"unraid-os/faq/redeem-license-activation-code",id:"unraid-os/faq/redeem-license-activation-code",title:"Redeem License Activation Code",description:"First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.",source:"@site/docs/unraid-os/faq/redeem-license-activation-code.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/redeem-license-activation-code",permalink:"/fr/unraid-os/faq/redeem-license-activation-code",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"OS",permalink:"/fr/unraid-os/faq/os-faq"},next:{title:"Unraid Account",permalink:"/fr/unraid-os/faq/unraid-account"}},u={},l=[],s={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"redeem-license-activation-code"},"Redeem License Activation Code"),(0,o.kt)("p",null,"First, buy an activation code via ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website"),". Your unique activation code will be on your purchase receipt."),(0,o.kt)("p",null,"Next, follow our ",(0,o.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/getting-started/"},"Getting Started")," guide to set up an Unraid server."),(0,o.kt)("p",null,"Once your server is up and running:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Login to your Unraid server's webgui. (",(0,o.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac by default)"),(0,o.kt)("li",{parentName:"ol"},"For Unraid 6.10 and newer, Sign in to your Unraid.net account (or\n",(0,o.kt)("a",{parentName:"li",href:"https://account.unraid.net/"},"create one"),') from the\ntop-right of the webgui and select "Redeem Activation Code" and enter the activation code to\nactivate your license. For Unraid 6.9 and older, navigate to the\nTools -',">",' Registration page in the webGui and click "Purchase Key."'),(0,o.kt)("li",{parentName:"ol"},'Select the corresponding license you purchased via activation code\nand enter the activation code in the "Your Activation Code" box to\ncomplete the activation process. Your registration key will be\nemailed to you with instructions for installation! ',(0,o.kt)("em",{parentName:"li"},"Note: Activation\nCodes are one-time use for generating your Unraid license keyfile."))),(0,o.kt)("p",null,"If you have any issues or questions with the above, there is also a walk\nthrough video: ",(0,o.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional\nVideo")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/f0844d9f.5c10117e.js b/fr/assets/js/f0844d9f.5c10117e.js new file mode 100644 index 000000000..4a7021936 --- /dev/null +++ b/fr/assets/js/f0844d9f.5c10117e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=d(a),p=i,m=c["".concat(l,".").concat(p)]||c[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/fr/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Delete a share",permalink:"/fr/unraid-os/manual/shares/delete-a-share"},next:{title:"Storage Management",permalink:"/fr/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],h={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/f0844d9f.b2aa73c5.js b/fr/assets/js/f0844d9f.b2aa73c5.js deleted file mode 100644 index 9a1f623d5..000000000 --- a/fr/assets/js/f0844d9f.b2aa73c5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=d(a),p=i,m=h["".concat(l,".").concat(p)]||h[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},c),{},{components:a})):n.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/fr/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/fr/category/manual"},next:{title:"Storage Management",permalink:"/fr/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],c={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/fr/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/f7b0b541.dff5b32c.js b/fr/assets/js/f7b0b541.dff5b32c.js new file mode 100644 index 000000000..ebde6343b --- /dev/null +++ b/fr/assets/js/f7b0b541.dff5b32c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2454],{4137:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(7294);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,s=function(e,t){if(null==e)return{};var r,a,s={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,s=e.mdxType,n=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),d=s,m=p["".concat(l,".").concat(d)]||p[d]||h[d]||n;return r?a.createElement(m,o(o({ref:t},u),{},{components:r})):a.createElement(m,o({ref:t},u))}));function m(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=r.length,o=new Array(n);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:s,o[1]=i;for(var c=2;c<n;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7088:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var a=r(7462),s=(r(7294),r(4137));const n={sidebar_position:4},o="Network access",i={unversionedId:"unraid-os/manual/shares/network-access",id:"unraid-os/manual/shares/network-access",title:"Network access",description:"Communication protocols",source:"@site/docs/unraid-os/manual/shares/network-access.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/network-access",permalink:"/fr/unraid-os/manual/shares/network-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/network-access.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Disk shares",permalink:"/fr/unraid-os/manual/shares/disk-shares"},next:{title:"Create a new share",permalink:"/fr/unraid-os/manual/shares/create-a-share"}},l={},c=[{value:"Communication protocols",id:"communication-protocols",level:2},{value:"Protocol selection",id:"protocol-selection",level:2},{value:"Access permissions at share level",id:"access-permissions-at-share-level",level:2},{value:"Share security",id:"share-security",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...r}=e;return(0,s.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"network-access"},"Network access"),(0,s.kt)("h2",{id:"communication-protocols"},"Communication protocols"),(0,s.kt)("p",null,"For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"SMB"),", or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"NFS"),", or Network File System, is a widely-used protocol on Unix-compatible systems."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"FTP"),", or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.")),(0,s.kt)("admonition",{type:"important"},(0,s.kt)("p",{parentName:"admonition"},"As of Unraid 6.9, ",(0,s.kt)("strong",{parentName:"p"},"AFP")," support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in ",(0,s.kt)("strong",{parentName:"p"},(0,s.kt)("em",{parentName:"strong"},"Settings > SMB"))," set the ",(0,s.kt)("strong",{parentName:"p"},"Enhanced macOS interoperability")," parameter to ",(0,s.kt)("em",{parentName:"p"},"Yes"),".")),(0,s.kt)("h2",{id:"protocol-selection"},"Protocol selection"),(0,s.kt)("p",null,"Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases."),(0,s.kt)("p",null,"For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer."),(0,s.kt)("h2",{id:"access-permissions-at-share-level"},"Access permissions at share level"),(0,s.kt)("p",null,"Each protocol can be configured at the share level. On the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled ",(0,s.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes")," - The share will be visible across the network."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes (Hidden)")," - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"No")," - This will disable network access through that protocol, for that share.")),(0,s.kt)("h2",{id:"share-security"},"Share security"),(0,s.kt)("p",null,"Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available."),(0,s.kt)("p",null,"For example, you may configure a ",(0,s.kt)("inlineCode",{parentName:"p"},"movies")," share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials."),(0,s.kt)("p",null,"When you select an existing share on the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols ",(0,s.kt)("a",{parentName:"p",href:"#access-permissions-at-share-level"},"you have enabled"),"."),(0,s.kt)("p",null,"The ",(0,s.kt)("strong",{parentName:"p"},"Security")," setting has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Public")," - The share is unsecured and all users have both read and write access to the contents of the share."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Secure")," - The share is secured and all users, including guests, have read access. You can select which of your users have write access."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Private")," - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.")),(0,s.kt)("admonition",{title:"Windows 'Gotcha'",type:"caution"},(0,s.kt)("p",{parentName:"admonition"},"There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails."),(0,s.kt)("p",{parentName:"admonition"},"If you have any shares on the server set to ",(0,s.kt)("em",{parentName:"p"},"Private")," or ",(0,s.kt)("em",{parentName:"p"},"Secure")," access, it is important that you connect to that share first, before any shares set for ",(0,s.kt)("em",{parentName:"p"},"Public")," access."),(0,s.kt)("p",{parentName:"admonition"},"As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/fee3ac30.6f487de7.js b/fr/assets/js/fee3ac30.6f487de7.js new file mode 100644 index 000000000..73d09123d --- /dev/null +++ b/fr/assets/js/fee3ac30.6f487de7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,h=p["".concat(c,".").concat(y)]||p[y]||d[y]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var l=2;l<i;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},8330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(4137));const i={sidebar_position:3},o="Data Encryption",s={unversionedId:"unraid-os/manual/security/data-encryption",id:"unraid-os/manual/security/data-encryption",title:"Data Encryption",description:"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.",source:"@site/docs/unraid-os/manual/security/data-encryption.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/data-encryption",permalink:"/fr/unraid-os/manual/security/data-encryption",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/data-encryption.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Securing webGUI connections (SSL)",permalink:"/fr/unraid-os/manual/security/secure-webgui-ssl"},next:{title:"Flash Drive",permalink:"/fr/unraid-os/manual/security/flash-drive"}},c={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"data-encryption"},"Data Encryption"),(0,a.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup"},"Linux Unified Key System"),") encryption modules."),(0,a.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly."),(0,a.kt)("p",null,"The home page for LUKS can be found ",(0,a.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,a.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive."),(0,a.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives."),(0,a.kt)("hr",null),(0,a.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the drive)."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Go to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab."),(0,a.kt)("li",{parentName:"ol"},"Stop the array."),(0,a.kt)("li",{parentName:"ol"},"Select the drive."),(0,a.kt)("li",{parentName:"ol"},"In ",(0,a.kt)("strong",{parentName:"li"},"File system type")," change the file system to the encrypted type that you want."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Apply")," to commit the change."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Done")," to return to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab. The drive will now show as unmountable and the option to format unmountable drives will be present."),(0,a.kt)("li",{parentName:"ol"},"Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.")),(0,a.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/main.e6bd8ad0.js b/fr/assets/js/main.e6bd8ad0.js deleted file mode 100644 index 07c56795f..000000000 --- a/fr/assets/js/main.e6bd8ad0.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.e6bd8ad0.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"2b82781d":[()=>n.e(2321).then(n.t.bind(n,894,19)),"~docs/default/category-fr-unraidsidebar-category-contribute-23a.json",894],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"6728fbec":[()=>n.e(1941).then(n.t.bind(n,816,19)),"~docs/default/category-fr-unraidsidebar-category-getting-started-a3c.json",816],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"90126b70":[()=>n.e(79).then(n.bind(n,8693)),"@site/docs/unraid-os/manual/shares.md",8693],"9343f1a6":[()=>n.e(9259).then(n.t.bind(n,8511,19)),"~docs/default/category-fr-unraidsidebar-category-tutorial-extras-20e.json",8511],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],a78d85c7:[()=>n.e(7328).then(n.bind(n,5536)),"@site/docs/unraid-os/manual/security.md",5536],ac1b2a6b:[()=>n.e(7401).then(n.t.bind(n,6628,19)),"~docs/default/category-fr-unraidsidebar-category-tutorial-basics-416.json",6628],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],af985087:[()=>n.e(990).then(n.t.bind(n,8576,19)),"~docs/default/category-fr-unraidsidebar-category-unraid-connect-f9b.json",8576],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],b5650663:[()=>n.e(6622).then(n.t.bind(n,1612,19)),"~docs/default/category-fr-unraidsidebar-category-faq-bf2.json",1612],b58ca393:[()=>n.e(4023).then(n.t.bind(n,2623,19)),"~docs/default/category-fr-unraidsidebar-category-manual-af3.json",2623],b83fc473:[()=>n.e(7817).then(n.t.bind(n,6302,19)),"~docs/default/category-fr-unraidsidebar-category-legacy-documentation-3bf.json",6302],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],ca6b5a08:[()=>n.e(5516).then(n.t.bind(n,7821,19)),"~docs/default/category-fr-unraidsidebar-category-unraid-os-d58.json",7821],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],ce7902f7:[()=>n.e(4960).then(n.t.bind(n,8089,19)),"~docs/default/category-fr-unraidsidebar-category-zfs-b72.json",8089],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],e8c37b9f:[()=>n.e(7436).then(n.bind(n,1779)),"@site/docs/unraid-os/faq/redeem-license-activation-code.md",1779],ebae1b08:[()=>n.e(3481).then(n.t.bind(n,5558,19)),"~docs/default/category-fr-unraidsidebar-category-guides-5ea.json",5558],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f09ecf49:[()=>n.e(8629).then(n.t.bind(n,1267,19)),"~docs/default/category-fr-unraidsidebar-category-release-notes-01c.json",1267],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/fr/search/",component:f("/fr/search/","657"),exact:!0},{path:"/fr/",component:f("/fr/","3fe"),routes:[{path:"/fr/",component:f("/fr/","772"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/contribute/",component:f("/fr/category/contribute/","d35"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/faq/",component:f("/fr/category/faq/","bde"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/getting-started/",component:f("/fr/category/getting-started/","84b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/guides/",component:f("/fr/category/guides/","19c"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/legacy-documentation/",component:f("/fr/category/legacy-documentation/","a13"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/manual/",component:f("/fr/category/manual/","1a2"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/release-notes/",component:f("/fr/category/release-notes/","275"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/tutorial---basics/",component:f("/fr/category/tutorial---basics/","9d3"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/tutorial---extras/",component:f("/fr/category/tutorial---extras/","d18"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/unraid-connect/",component:f("/fr/category/unraid-connect/","933"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/unraid-os/",component:f("/fr/category/unraid-os/","c31"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/zfs/",component:f("/fr/category/zfs/","bc6"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/connect/about/",component:f("/fr/connect/about/","9c1"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/connect/help/",component:f("/fr/connect/help/","21b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/connect/remote-access/",component:f("/fr/connect/remote-access/","389"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/intro/",component:f("/fr/contribute-to-docs/intro/","a51"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/congratulations/",component:f("/fr/contribute-to-docs/tutorial-basics/congratulations/","a3b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:f("/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/","175"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/create-a-document/",component:f("/fr/contribute-to-docs/tutorial-basics/create-a-document/","e0b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/create-a-page/",component:f("/fr/contribute-to-docs/tutorial-basics/create-a-page/","406"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/markdown-features/",component:f("/fr/contribute-to-docs/tutorial-basics/markdown-features/","011"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:f("/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/","fa4"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-extras/translate-your-site/",component:f("/fr/contribute-to-docs/tutorial-extras/translate-your-site/","787"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/Articles/dual-boot-unraid-and-windows/",component:f("/fr/legacy/Articles/dual-boot-unraid-and-windows/","cfd"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:f("/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/","f12"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/Articles/upgrading-to-unraid-6/",component:f("/fr/legacy/Articles/upgrading-to-unraid-6/","a17"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/cache-disk/",component:f("/fr/legacy/FAQ/cache-disk/","e7f"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/check-disk-filesystems/",component:f("/fr/legacy/FAQ/check-disk-filesystems/","381"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/check-harddrive-speed/",component:f("/fr/legacy/FAQ/check-harddrive-speed/","c1b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/console/",component:f("/fr/legacy/FAQ/console/","795"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/parity-swap-procedure/",component:f("/fr/legacy/FAQ/parity-swap-procedure/","b78"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/Parity/",component:f("/fr/legacy/FAQ/Parity/","496"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/replacing-a-data-drive/",component:f("/fr/legacy/FAQ/replacing-a-data-drive/","81a"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/replacing-multiple-data-drives/",component:f("/fr/legacy/FAQ/replacing-multiple-data-drives/","f2a"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:f("/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","2b9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:f("/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/","352"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/shrink-array/",component:f("/fr/legacy/FAQ/shrink-array/","d19"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/terminal-access/",component:f("/fr/legacy/FAQ/terminal-access/","745"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:f("/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","567"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/transferring-files-within-the-unraid-server/",component:f("/fr/legacy/FAQ/transferring-files-within-the-unraid-server/","391"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/understanding-smart-reports/",component:f("/fr/legacy/FAQ/understanding-smart-reports/","a5b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/usb-flash-drive-preparation/",component:f("/fr/legacy/FAQ/usb-flash-drive-preparation/","2ed"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/licensing-faq/",component:f("/fr/unraid-os/faq/licensing-faq/","d99"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/os-faq/",component:f("/fr/unraid-os/faq/os-faq/","5e9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/redeem-license-activation-code/",component:f("/fr/unraid-os/faq/redeem-license-activation-code/","c65"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/unraid-account/",component:f("/fr/unraid-os/faq/unraid-account/","f76"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/guides/configuring-time-machine/",component:f("/fr/unraid-os/guides/configuring-time-machine/","45e"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/guides/wol-setup-for-unraid/",component:f("/fr/unraid-os/guides/wol-setup-for-unraid/","b63"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/additional-settings/",component:f("/fr/unraid-os/manual/additional-settings/","fa3"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/applications/",component:f("/fr/unraid-os/manual/applications/","f0d"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/changing-the-flash-device/",component:f("/fr/unraid-os/manual/changing-the-flash-device/","e82"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/docker-management/",component:f("/fr/unraid-os/manual/docker-management/","191"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/getting-started/",component:f("/fr/unraid-os/manual/getting-started/","bba"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/getting-started/manual-install-method/",component:f("/fr/unraid-os/manual/getting-started/manual-install-method/","a56"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/multi-language/",component:f("/fr/unraid-os/manual/multi-language/","528"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/security/",component:f("/fr/unraid-os/manual/security/","027"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/shares/",component:f("/fr/unraid-os/manual/shares/","d34"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/storage-management/",component:f("/fr/unraid-os/manual/storage-management/","81c"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/tools/",component:f("/fr/unraid-os/manual/tools/","935"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/troubleshooting/",component:f("/fr/unraid-os/manual/troubleshooting/","4d2"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/upgrade-instructions/",component:f("/fr/unraid-os/manual/upgrade-instructions/","d04"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/users/",component:f("/fr/unraid-os/manual/users/","a26"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/vm-management/",component:f("/fr/unraid-os/manual/vm-management/","e4f"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/vm-support/",component:f("/fr/unraid-os/manual/vm-support/","8c4"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/what-is-unraid/",component:f("/fr/unraid-os/manual/what-is-unraid/","4aa"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/zfs/placeholder/",component:f("/fr/unraid-os/manual/zfs/placeholder/","17d"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.0/",component:f("/fr/unraid-os/release-notes/6.10.0/","0cc"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.1/",component:f("/fr/unraid-os/release-notes/6.10.1/","679"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.2/",component:f("/fr/unraid-os/release-notes/6.10.2/","5ca"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.3/",component:f("/fr/unraid-os/release-notes/6.10.3/","083"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.0/",component:f("/fr/unraid-os/release-notes/6.11.0/","5c3"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.1/",component:f("/fr/unraid-os/release-notes/6.11.1/","52c"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.2/",component:f("/fr/unraid-os/release-notes/6.11.2/","9c9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.3/",component:f("/fr/unraid-os/release-notes/6.11.3/","222"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.4/",component:f("/fr/unraid-os/release-notes/6.11.4/","806"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.5/",component:f("/fr/unraid-os/release-notes/6.11.5/","c77"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.0/",component:f("/fr/unraid-os/release-notes/6.12.0/","ee9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.1/",component:f("/fr/unraid-os/release-notes/6.12.1/","c46"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.2/",component:f("/fr/unraid-os/release-notes/6.12.2/","652"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.3/",component:f("/fr/unraid-os/release-notes/6.12.3/","2f1"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.9.0/",component:f("/fr/unraid-os/release-notes/6.9.0/","a9b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.9.1/",component:f("/fr/unraid-os/release-notes/6.9.1/","b2e"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.9.2/",component:f("/fr/unraid-os/release-notes/6.9.2/","0d2"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:f("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/fr/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/fr/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/fr/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/fr/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/fr/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/fr/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/fr/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/fr/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/fr/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/fr/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/fr/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/fr/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/fr/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/fr/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/fr/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/fr/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/fr/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/fr/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/fr/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/fr/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/fr/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/fr/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/fr/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/fr/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/fr/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/fr/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/fr/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/fr/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/fr/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/fr/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/fr/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/fr/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/fr/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/fr/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/fr/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/fr/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/fr/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/fr/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/fr/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/fr/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security","path":"/fr/unraid-os/manual/security","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares","path":"/fr/unraid-os/manual/shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/fr/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/fr/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/fr/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/fr/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/fr/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/fr/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/fr/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/fr/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/fr/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/fr/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/fr/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/fr/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/fr/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/fr/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/fr/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/fr/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/fr/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/fr/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/fr/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/fr/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/fr/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/fr/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/fr/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/fr/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/fr/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/fr/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/fr/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/fr/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/fr/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/fr/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/fr/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/fr/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/fr/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/fr/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/fr/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/fr/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/fr/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/fr/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/fr/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"fr","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(3734);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function pt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(3734),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3734:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>f,jA:()=>h,xz:()=>p,hI:()=>x,lO:()=>k,vY:()=>E,oz:()=>S,s1:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432);function c(e){return Array.from(new Set(e))}var d=n(9003);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+f(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),p(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===f(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(f(t));-1===n&&(n=0);var r=D.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[f(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(f(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(f(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),v=f;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=f(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var P=_[0],N=x.slice(0,T),O=x.slice(T+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),u(t,D,C),S=s(t,D,new a(f,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),C>1){var M={cause:f+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in p(b))if(v in c){f[b]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(f.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),C=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Te&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),mn=ln(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Pt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Pn;break;case Tt:case At:case Lt:s=yn;break;case Rt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==f&&(null!=(h=je(m,f))&&c.push(Dr(m,h,p)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",f="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",f="onPointerEnter",m="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=p,h=null,ta(a)===r&&((c=new c(f,m+"enter",u,n,a)).target=p,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(f=u,m=0,p=c=s;p;p=Fr(p))m++;for(p=0,h=f;h;h=Fr(h))p++;for(;0<m-p;)c=Fr(c),m--;for(;0<p-m;)f=Fr(f),p--;for(;m--;){if(c===f||null!==f&&c===f.alternate)break e;c=Fr(c),f=Fr(f)}c=null}else c=null;null!==s&&Br(i,l,s,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=je(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=je(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(pa),ua(fa)}function va(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=fa.current,ca(fa,e),ca(pa,pa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ca(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,s);break e}f=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(p,f,s):m))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=f}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:fa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:fa.current,a.context=ha(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=p(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=f(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),Po=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=pe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,m=p.getSnapshot,h=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return pi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:fa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var m=t.memoizedState;l!==d||f!==m||pa.current||io?("function"==typeof p&&(go(t,n,p,r),m=t.memoizedState),(u=io||vo(t,n,u,r,f,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(pa),ua(fa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(pa),ua(fa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=jt(12,ss):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Bl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=ys.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Cs();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=jl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Ft(e,t)))}else n=Ts(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=jl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ua(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(pa),ua(fa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Pl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),f=i;do{var p;if(p=13===f.tag){var m=f.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=f.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var b=new Set;b.add(u),f.updateQueue=b}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var k=f.type,S=f.stateNode;if(0==(64&f.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ps(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Pi,null===e?Pi:e}function Ts(e,t){var n=Nl;Nl|=16;var r=Cs();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Rl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Ta();)Rs(Il)}function Rs(e){var t=Ql(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ps(e):Il=t,Pl.current=null}function Ps(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,zr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(f=d),b===u&&++h===c&&(p=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Is()}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=pr(y,S),o=pr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Wl=Wl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function js(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gs(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Ws(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,Pe,Ds,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,f,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var f={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,l.Z)({},P,p));var N=(0,l.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),f=(n(9864),n(3366)),p=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(p(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=f((function(){e(t.unstable_now())}),n)},a=function(){p(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/fr/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"Fermer","theme.BackToTopButton.buttonAriaLabel":"Retour au d\xe9but de la page","theme.CodeBlock.copied":"Copi\xe9","theme.CodeBlock.copy":"Copier","theme.CodeBlock.copyButtonAriaLabel":"Copier le code","theme.CodeBlock.wordWrapToggle":"Activer/d\xe9sactiver le retour \xe0 la ligne","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"Plier/D\xe9plier la cat\xe9gorie \'{label}\' de la barre lat\xe9rale","theme.ErrorPageContent.title":"Cette page a plant\xe9.","theme.ErrorPageContent.tryAgain":"R\xe9essayer","theme.NavBar.navAriaLabel":"Main","theme.NotFound.p1":"Nous n\'avons pas trouv\xe9 ce que vous recherchez.","theme.NotFound.p2":"Veuillez contacter le propri\xe9taire du site qui vous a li\xe9 \xe0 l\'URL d\'origine et leur faire savoir que leur lien est cass\xe9.","theme.NotFound.title":"Page introuvable","theme.TOCCollapsible.toggleButtonLabel":"Sur cette page","theme.admonition.caution":"attention","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"remarque","theme.admonition.tip":"astuce","theme.blog.archive.description":"Archive","theme.blog.archive.title":"Archive","theme.blog.paginator.navAriaLabel":"Pagination de la liste des articles du blog","theme.blog.paginator.newerEntries":"Nouvelles entr\xe9es","theme.blog.paginator.olderEntries":"Anciennes entr\xe9es","theme.blog.post.paginator.navAriaLabel":"Pagination des articles du blog","theme.blog.post.paginator.newerPost":"Article plus r\xe9cent","theme.blog.post.paginator.olderPost":"Article plus ancien","theme.blog.post.plurals":"Un article|{count} articles","theme.blog.post.readMore":"Lire plus","theme.blog.post.readMoreLabel":"En savoir plus sur {title}","theme.blog.post.readingTime.plurals":"Une minute de lecture|{readingTime} minutes de lecture","theme.blog.sidebar.navAriaLabel":"Navigation article de blog r\xe9cent","theme.blog.tagTitle":"{nPosts} tagu\xe9s avec \xab {tagName} \xbb","theme.colorToggle.ariaLabel":"Basculer entre le mode sombre et clair (actuellement {mode})","theme.colorToggle.ariaLabel.mode.dark":"mode sombre","theme.colorToggle.ariaLabel.mode.light":"mode clair","theme.common.editThisPage":"\xc9diter cette page","theme.common.headingLinkTitle":"Lien direct vers {heading}","theme.common.skipToMainContent":"Aller au contenu principal","theme.docs.DocCard.categoryDescription":"{count} \xe9l\xe9ments","theme.docs.breadcrumbs.home":"Page d\'accueil","theme.docs.breadcrumbs.navAriaLabel":"Fil d\'Ariane","theme.docs.paginator.navAriaLabel":"Pages de documentation","theme.docs.paginator.next":"Suivant","theme.docs.paginator.previous":"Pr\xe9c\xe9dent","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Fermer la barre de navigation","theme.docs.sidebar.collapseButtonAriaLabel":"R\xe9duire le menu lat\xe9ral","theme.docs.sidebar.collapseButtonTitle":"R\xe9duire le menu lat\xe9ral","theme.docs.sidebar.expandButtonAriaLabel":"D\xe9plier le menu lat\xe9ral","theme.docs.sidebar.expandButtonTitle":"D\xe9plier le menu lat\xe9ral","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Ouvrir/fermer la barre de navigation","theme.docs.tagDocListPageTitle":"{nDocsTagged} avec \\"{tagName}\\"","theme.docs.tagDocListPageTitle.nDocsTagged":"Un document tagu\xe9|{count} documents tagu\xe9s","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.latestVersionLinkLabel":"derni\xe8re version","theme.docs.versions.latestVersionSuggestionLabel":"Pour une documentation \xe0 jour, consultez la {latestVersionLink} ({versionLabel}).","theme.docs.versions.unmaintainedVersionLabel":"Ceci est la documentation de {siteTitle} {versionLabel}, qui n\'est plus activement maintenue.","theme.docs.versions.unreleasedVersionLabel":"Ceci est la documentation de la prochaine version {versionLabel} de {siteTitle}.","theme.lastUpdated.atDate":" le {date}","theme.lastUpdated.byUser":" par {user}","theme.lastUpdated.lastUpdatedAtBy":"Derni\xe8re mise \xe0 jour{atDate}{byUser}","theme.navbar.mobileLanguageDropdown.label":"Langues","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Retour au menu principal","theme.navbar.mobileVersionsDropdown.label":"Versions","theme.tags.tagsListLabel":"Tags :","theme.tags.tagsPageLink":"Voir tous les tags","theme.tags.tagsPageTitle":"Tags","theme.SearchBar.label":"Chercher","theme.SearchBar.seeAll":"Voir les {count} r\xe9sultats","theme.SearchModal.errorScreen.helpText":"Vous pouvez v\xe9rifier votre connexion r\xe9seau.","theme.SearchModal.errorScreen.titleText":"Impossible de r\xe9cup\xe9rer les r\xe9sultats","theme.SearchModal.footer.closeKeyAriaLabel":"Touche Echap","theme.SearchModal.footer.closeText":"fermer","theme.SearchModal.footer.navigateDownKeyAriaLabel":"Fl\xe8che vers le bas","theme.SearchModal.footer.navigateText":"naviguer","theme.SearchModal.footer.navigateUpKeyAriaLabel":"Fl\xe8che vers le haut","theme.SearchModal.footer.searchByText":"Recherche via","theme.SearchModal.footer.selectKeyAriaLabel":"Touche Entr\xe9e","theme.SearchModal.footer.selectText":"s\xe9lectionner","theme.SearchModal.noResultsScreen.noResultsText":"Aucun r\xe9sultat pour","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"Faites-le nous savoir.","theme.SearchModal.noResultsScreen.reportMissingResultsText":"Vous pensez que cette requ\xeate doit donner des r\xe9sultats\xa0?","theme.SearchModal.noResultsScreen.suggestedQueryText":"Essayez de chercher","theme.SearchModal.placeholder":"Rechercher des docs","theme.SearchModal.searchBox.cancelButtonText":"Annuler","theme.SearchModal.searchBox.resetButtonTitle":"Effacer la requ\xeate","theme.SearchModal.startScreen.favoriteSearchesTitle":"Favoris","theme.SearchModal.startScreen.noRecentSearchesText":"Aucune recherche r\xe9cente","theme.SearchModal.startScreen.recentSearchesTitle":"R\xe9cemment","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"Supprimer cette recherche des favoris","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"Supprimer cette recherche de l\'historique","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"Sauvegarder cette recherche","theme.SearchPage.algoliaLabel":"Recherche par Algolia","theme.SearchPage.documentsFound.plurals":"Un document trouv\xe9|{count} documents trouv\xe9s","theme.SearchPage.emptyResultsTitle":"Rechercher dans la documentation","theme.SearchPage.existingResultsTitle":"R\xe9sultats de recherche pour \xab {query} \xbb","theme.SearchPage.fetchingNewResults":"Chargement de nouveaux r\xe9sultats...","theme.SearchPage.inputLabel":"Chercher","theme.SearchPage.inputPlaceholder":"Tapez votre recherche ici","theme.SearchPage.noResultsText":"Aucun r\xe9sultat trouv\xe9","theme.IdealImageMessage.404error":"404. Image introuvable","theme.IdealImageMessage.error":"Erreur. Cliquez pour recharger","theme.IdealImageMessage.load":"Cliquez pour charger{sizeMessage}","theme.IdealImageMessage.loading":"Chargement ...","theme.IdealImageMessage.offline":"Votre navigateur est hors ligne. Image non charg\xe9e"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/fr/search/-657":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/fr/-3fe":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/fr/-772":{"__comp":"17896441","content":"6e7e0dfd"},"/fr/category/contribute/-d35":{"__comp":"14eb3368","categoryGeneratedIndex":"2b82781d"},"/fr/category/faq/-bde":{"__comp":"14eb3368","categoryGeneratedIndex":"b5650663"},"/fr/category/getting-started/-84b":{"__comp":"14eb3368","categoryGeneratedIndex":"6728fbec"},"/fr/category/guides/-19c":{"__comp":"14eb3368","categoryGeneratedIndex":"ebae1b08"},"/fr/category/legacy-documentation/-a13":{"__comp":"14eb3368","categoryGeneratedIndex":"b83fc473"},"/fr/category/manual/-1a2":{"__comp":"14eb3368","categoryGeneratedIndex":"b58ca393"},"/fr/category/release-notes/-275":{"__comp":"14eb3368","categoryGeneratedIndex":"f09ecf49"},"/fr/category/tutorial---basics/-9d3":{"__comp":"14eb3368","categoryGeneratedIndex":"ac1b2a6b"},"/fr/category/tutorial---extras/-d18":{"__comp":"14eb3368","categoryGeneratedIndex":"9343f1a6"},"/fr/category/unraid-connect/-933":{"__comp":"14eb3368","categoryGeneratedIndex":"af985087"},"/fr/category/unraid-os/-c31":{"__comp":"14eb3368","categoryGeneratedIndex":"ca6b5a08"},"/fr/category/zfs/-bc6":{"__comp":"14eb3368","categoryGeneratedIndex":"ce7902f7"},"/fr/connect/about/-9c1":{"__comp":"17896441","content":"bd5544b1"},"/fr/connect/help/-21b":{"__comp":"17896441","content":"54fe4512"},"/fr/connect/remote-access/-389":{"__comp":"17896441","content":"ba2ffba3"},"/fr/contribute-to-docs/intro/-a51":{"__comp":"17896441","content":"9c8e01a5"},"/fr/contribute-to-docs/tutorial-basics/congratulations/-a3b":{"__comp":"17896441","content":"06cd2fd6"},"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/-175":{"__comp":"17896441","content":"e62fd64a"},"/fr/contribute-to-docs/tutorial-basics/create-a-document/-e0b":{"__comp":"17896441","content":"73c1707a"},"/fr/contribute-to-docs/tutorial-basics/create-a-page/-406":{"__comp":"17896441","content":"6937eda1"},"/fr/contribute-to-docs/tutorial-basics/markdown-features/-011":{"__comp":"17896441","content":"fd47d4b7"},"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/-fa4":{"__comp":"17896441","content":"0993abe5"},"/fr/contribute-to-docs/tutorial-extras/translate-your-site/-787":{"__comp":"17896441","content":"f568d666"},"/fr/legacy/Articles/dual-boot-unraid-and-windows/-cfd":{"__comp":"17896441","content":"c5b893f4"},"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/-f12":{"__comp":"17896441","content":"69f90a2c"},"/fr/legacy/Articles/upgrading-to-unraid-6/-a17":{"__comp":"17896441","content":"39304afb"},"/fr/legacy/FAQ/cache-disk/-e7f":{"__comp":"17896441","content":"88a1b883"},"/fr/legacy/FAQ/check-disk-filesystems/-381":{"__comp":"17896441","content":"5034631f"},"/fr/legacy/FAQ/check-harddrive-speed/-c1b":{"__comp":"17896441","content":"039cd775"},"/fr/legacy/FAQ/console/-795":{"__comp":"17896441","content":"2dd62328"},"/fr/legacy/FAQ/parity-swap-procedure/-b78":{"__comp":"17896441","content":"f2577e9f"},"/fr/legacy/FAQ/Parity/-496":{"__comp":"17896441","content":"54f4a7b0"},"/fr/legacy/FAQ/replacing-a-data-drive/-81a":{"__comp":"17896441","content":"74287a25"},"/fr/legacy/FAQ/replacing-multiple-data-drives/-f2a":{"__comp":"17896441","content":"d441ea6d"},"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-2b9":{"__comp":"17896441","content":"6618ba01"},"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/-352":{"__comp":"17896441","content":"036bad42"},"/fr/legacy/FAQ/shrink-array/-d19":{"__comp":"17896441","content":"9d093beb"},"/fr/legacy/FAQ/terminal-access/-745":{"__comp":"17896441","content":"e624f8a6"},"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-567":{"__comp":"17896441","content":"67a4e8b6"},"/fr/legacy/FAQ/transferring-files-within-the-unraid-server/-391":{"__comp":"17896441","content":"38c3fa26"},"/fr/legacy/FAQ/understanding-smart-reports/-a5b":{"__comp":"17896441","content":"dec1eefe"},"/fr/legacy/FAQ/usb-flash-drive-preparation/-2ed":{"__comp":"17896441","content":"79722de7"},"/fr/unraid-os/faq/licensing-faq/-d99":{"__comp":"17896441","content":"26113f5d"},"/fr/unraid-os/faq/os-faq/-5e9":{"__comp":"17896441","content":"81b28c9f"},"/fr/unraid-os/faq/redeem-license-activation-code/-c65":{"__comp":"17896441","content":"e8c37b9f"},"/fr/unraid-os/faq/unraid-account/-f76":{"__comp":"17896441","content":"5565d3f9"},"/fr/unraid-os/guides/configuring-time-machine/-45e":{"__comp":"17896441","content":"f9ab548b"},"/fr/unraid-os/guides/wol-setup-for-unraid/-b63":{"__comp":"17896441","content":"0a18b2d8"},"/fr/unraid-os/manual/additional-settings/-fa3":{"__comp":"17896441","content":"1942e1e1"},"/fr/unraid-os/manual/applications/-f0d":{"__comp":"17896441","content":"7b378cd1"},"/fr/unraid-os/manual/changing-the-flash-device/-e82":{"__comp":"17896441","content":"0ca4c500"},"/fr/unraid-os/manual/docker-management/-191":{"__comp":"17896441","content":"4caccc33"},"/fr/unraid-os/manual/getting-started/-bba":{"__comp":"17896441","content":"b13723e0"},"/fr/unraid-os/manual/getting-started/manual-install-method/-a56":{"__comp":"17896441","content":"18ade0c5"},"/fr/unraid-os/manual/multi-language/-528":{"__comp":"17896441","content":"6b42df2b"},"/fr/unraid-os/manual/security/-027":{"__comp":"17896441","content":"a78d85c7"},"/fr/unraid-os/manual/shares/-d34":{"__comp":"17896441","content":"90126b70"},"/fr/unraid-os/manual/storage-management/-81c":{"__comp":"17896441","content":"55054ac6"},"/fr/unraid-os/manual/tools/-935":{"__comp":"17896441","content":"7c081f1b"},"/fr/unraid-os/manual/troubleshooting/-4d2":{"__comp":"17896441","content":"104dd0b4"},"/fr/unraid-os/manual/upgrade-instructions/-d04":{"__comp":"17896441","content":"7436a388"},"/fr/unraid-os/manual/users/-a26":{"__comp":"17896441","content":"40147886"},"/fr/unraid-os/manual/vm-management/-e4f":{"__comp":"17896441","content":"3d3d1f9d"},"/fr/unraid-os/manual/vm-support/-8c4":{"__comp":"17896441","content":"88941ca4"},"/fr/unraid-os/manual/what-is-unraid/-4aa":{"__comp":"17896441","content":"f0844d9f"},"/fr/unraid-os/manual/zfs/placeholder/-17d":{"__comp":"17896441","content":"5df36282"},"/fr/unraid-os/release-notes/6.10.0/-0cc":{"__comp":"17896441","content":"798531cc"},"/fr/unraid-os/release-notes/6.10.1/-679":{"__comp":"17896441","content":"b3a9d7ab"},"/fr/unraid-os/release-notes/6.10.2/-5ca":{"__comp":"17896441","content":"caa9baff"},"/fr/unraid-os/release-notes/6.10.3/-083":{"__comp":"17896441","content":"54219b20"},"/fr/unraid-os/release-notes/6.11.0/-5c3":{"__comp":"17896441","content":"096fb135"},"/fr/unraid-os/release-notes/6.11.1/-52c":{"__comp":"17896441","content":"6b97f0f9"},"/fr/unraid-os/release-notes/6.11.2/-9c9":{"__comp":"17896441","content":"a0c90937"},"/fr/unraid-os/release-notes/6.11.3/-222":{"__comp":"17896441","content":"d31ea43a"},"/fr/unraid-os/release-notes/6.11.4/-806":{"__comp":"17896441","content":"c8335b6e"},"/fr/unraid-os/release-notes/6.11.5/-c77":{"__comp":"17896441","content":"ae93aaeb"},"/fr/unraid-os/release-notes/6.12.0/-ee9":{"__comp":"17896441","content":"e1256ee6"},"/fr/unraid-os/release-notes/6.12.1/-c46":{"__comp":"17896441","content":"98a2ad9f"},"/fr/unraid-os/release-notes/6.12.2/-652":{"__comp":"17896441","content":"0ba4e87b"},"/fr/unraid-os/release-notes/6.12.3/-2f1":{"__comp":"17896441","content":"7a2d53ea"},"/fr/unraid-os/release-notes/6.9.0/-a9b":{"__comp":"17896441","content":"06988216"},"/fr/unraid-os/release-notes/6.9.1/-b2e":{"__comp":"17896441","content":"49332cbb"},"/fr/unraid-os/release-notes/6.9.2/-0d2":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/fr/assets/js/main.f1d56603.js b/fr/assets/js/main.f1d56603.js new file mode 100644 index 000000000..201a0c4e4 --- /dev/null +++ b/fr/assets/js/main.f1d56603.js @@ -0,0 +1,2 @@ +/*! For license information please see main.f1d56603.js.LICENSE.txt */ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0a1bdeaa":[()=>n.e(967).then(n.bind(n,3940)),"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",3940],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"10869db1":[()=>n.e(3563).then(n.bind(n,2127)),"@site/docs/unraid-os/manual/security/flash-drive.md",2127],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"1c36a847":[()=>n.e(5289).then(n.bind(n,7732)),"@site/docs/unraid-os/manual/security/vpn.md",7732],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"277cf690":[()=>n.e(9821).then(n.bind(n,3593)),"@site/docs/unraid-os/manual/security/security.md",3593],"2b82781d":[()=>n.e(2321).then(n.t.bind(n,894,19)),"~docs/default/category-fr-unraidsidebar-category-contribute-23a.json",894],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"313b9001":[()=>n.e(559).then(n.bind(n,3283)),"@site/docs/unraid-os/manual/security/good-practices.md",3283],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"5f60a020":[()=>n.e(4863).then(n.bind(n,6260)),"@site/docs/unraid-os/manual/shares/disk-shares.md",6260],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"6728fbec":[()=>n.e(1941).then(n.t.bind(n,816,19)),"~docs/default/category-fr-unraidsidebar-category-getting-started-a3c.json",816],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"8944547a":[()=>Promise.all([n.e(532),n.e(5450)]).then(n.bind(n,3135)),"@site/docs/unraid-os/manual/shares/user-shares.md",3135],"8a89048a":[()=>n.e(1770).then(n.bind(n,8829)),"@site/docs/unraid-os/manual/shares/create-a-share.md",8829],"9343f1a6":[()=>n.e(9259).then(n.t.bind(n,8511,19)),"~docs/default/category-fr-unraidsidebar-category-tutorial-extras-20e.json",8511],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],"9d23aec8":[()=>n.e(1754).then(n.bind(n,6419)),"@site/docs/unraid-os/manual/shares/delete-a-share.md",6419],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],ac1b2a6b:[()=>n.e(7401).then(n.t.bind(n,6628,19)),"~docs/default/category-fr-unraidsidebar-category-tutorial-basics-416.json",6628],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],aed38285:[()=>n.e(1932).then(n.bind(n,3976)),"@site/docs/unraid-os/manual/shares/shares.md",3976],af985087:[()=>n.e(990).then(n.t.bind(n,8576,19)),"~docs/default/category-fr-unraidsidebar-category-unraid-connect-f9b.json",8576],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],b5650663:[()=>n.e(6622).then(n.t.bind(n,1612,19)),"~docs/default/category-fr-unraidsidebar-category-faq-bf2.json",1612],b58ca393:[()=>n.e(4023).then(n.t.bind(n,2623,19)),"~docs/default/category-fr-unraidsidebar-category-manual-af3.json",2623],b83fc473:[()=>n.e(7817).then(n.t.bind(n,6302,19)),"~docs/default/category-fr-unraidsidebar-category-legacy-documentation-3bf.json",6302],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],ca6b5a08:[()=>n.e(5516).then(n.t.bind(n,7821,19)),"~docs/default/category-fr-unraidsidebar-category-unraid-os-d58.json",7821],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],ce7902f7:[()=>n.e(4960).then(n.t.bind(n,8089,19)),"~docs/default/category-fr-unraidsidebar-category-zfs-b72.json",8089],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],e8c37b9f:[()=>n.e(7436).then(n.bind(n,1779)),"@site/docs/unraid-os/faq/redeem-license-activation-code.md",1779],ebae1b08:[()=>n.e(3481).then(n.t.bind(n,5558,19)),"~docs/default/category-fr-unraidsidebar-category-guides-5ea.json",5558],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f09ecf49:[()=>n.e(8629).then(n.t.bind(n,1267,19)),"~docs/default/category-fr-unraidsidebar-category-release-notes-01c.json",1267],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f7b0b541:[()=>n.e(2454).then(n.bind(n,7088)),"@site/docs/unraid-os/manual/shares/network-access.md",7088],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219],fee3ac30:[()=>n.e(7328).then(n.bind(n,8330)),"@site/docs/unraid-os/manual/security/data-encryption.md",8330]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/fr/search/",component:f("/fr/search/","657"),exact:!0},{path:"/fr/",component:f("/fr/","9ce"),routes:[{path:"/fr/",component:f("/fr/","772"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/contribute/",component:f("/fr/category/contribute/","d35"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/faq/",component:f("/fr/category/faq/","bde"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/getting-started/",component:f("/fr/category/getting-started/","84b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/guides/",component:f("/fr/category/guides/","19c"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/legacy-documentation/",component:f("/fr/category/legacy-documentation/","a13"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/manual/",component:f("/fr/category/manual/","1a2"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/release-notes/",component:f("/fr/category/release-notes/","275"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/tutorial---basics/",component:f("/fr/category/tutorial---basics/","9d3"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/tutorial---extras/",component:f("/fr/category/tutorial---extras/","d18"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/unraid-connect/",component:f("/fr/category/unraid-connect/","933"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/unraid-os/",component:f("/fr/category/unraid-os/","c31"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/category/zfs/",component:f("/fr/category/zfs/","bc6"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/connect/about/",component:f("/fr/connect/about/","9c1"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/connect/help/",component:f("/fr/connect/help/","21b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/connect/remote-access/",component:f("/fr/connect/remote-access/","389"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/intro/",component:f("/fr/contribute-to-docs/intro/","a51"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/congratulations/",component:f("/fr/contribute-to-docs/tutorial-basics/congratulations/","a3b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:f("/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/","175"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/create-a-document/",component:f("/fr/contribute-to-docs/tutorial-basics/create-a-document/","e0b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/create-a-page/",component:f("/fr/contribute-to-docs/tutorial-basics/create-a-page/","406"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-basics/markdown-features/",component:f("/fr/contribute-to-docs/tutorial-basics/markdown-features/","011"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:f("/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/","fa4"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/contribute-to-docs/tutorial-extras/translate-your-site/",component:f("/fr/contribute-to-docs/tutorial-extras/translate-your-site/","787"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/Articles/dual-boot-unraid-and-windows/",component:f("/fr/legacy/Articles/dual-boot-unraid-and-windows/","cfd"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:f("/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/","f12"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/Articles/upgrading-to-unraid-6/",component:f("/fr/legacy/Articles/upgrading-to-unraid-6/","a17"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/cache-disk/",component:f("/fr/legacy/FAQ/cache-disk/","e7f"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/check-disk-filesystems/",component:f("/fr/legacy/FAQ/check-disk-filesystems/","381"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/check-harddrive-speed/",component:f("/fr/legacy/FAQ/check-harddrive-speed/","c1b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/console/",component:f("/fr/legacy/FAQ/console/","795"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/parity-swap-procedure/",component:f("/fr/legacy/FAQ/parity-swap-procedure/","b78"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/Parity/",component:f("/fr/legacy/FAQ/Parity/","496"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/replacing-a-data-drive/",component:f("/fr/legacy/FAQ/replacing-a-data-drive/","81a"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/replacing-multiple-data-drives/",component:f("/fr/legacy/FAQ/replacing-multiple-data-drives/","f2a"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:f("/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","2b9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:f("/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/","352"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/shrink-array/",component:f("/fr/legacy/FAQ/shrink-array/","d19"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/terminal-access/",component:f("/fr/legacy/FAQ/terminal-access/","745"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:f("/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","567"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/transferring-files-within-the-unraid-server/",component:f("/fr/legacy/FAQ/transferring-files-within-the-unraid-server/","391"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/understanding-smart-reports/",component:f("/fr/legacy/FAQ/understanding-smart-reports/","a5b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/legacy/FAQ/usb-flash-drive-preparation/",component:f("/fr/legacy/FAQ/usb-flash-drive-preparation/","2ed"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/licensing-faq/",component:f("/fr/unraid-os/faq/licensing-faq/","d99"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/os-faq/",component:f("/fr/unraid-os/faq/os-faq/","5e9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/redeem-license-activation-code/",component:f("/fr/unraid-os/faq/redeem-license-activation-code/","c65"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/faq/unraid-account/",component:f("/fr/unraid-os/faq/unraid-account/","f76"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/guides/configuring-time-machine/",component:f("/fr/unraid-os/guides/configuring-time-machine/","45e"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/guides/wol-setup-for-unraid/",component:f("/fr/unraid-os/guides/wol-setup-for-unraid/","b63"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/additional-settings/",component:f("/fr/unraid-os/manual/additional-settings/","fa3"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/applications/",component:f("/fr/unraid-os/manual/applications/","f0d"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/changing-the-flash-device/",component:f("/fr/unraid-os/manual/changing-the-flash-device/","e82"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/docker-management/",component:f("/fr/unraid-os/manual/docker-management/","191"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/getting-started/",component:f("/fr/unraid-os/manual/getting-started/","bba"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/getting-started/manual-install-method/",component:f("/fr/unraid-os/manual/getting-started/manual-install-method/","a56"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/multi-language/",component:f("/fr/unraid-os/manual/multi-language/","528"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/security/",component:f("/fr/unraid-os/manual/security/","3f6"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/security/data-encryption/",component:f("/fr/unraid-os/manual/security/data-encryption/","18b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/security/flash-drive/",component:f("/fr/unraid-os/manual/security/flash-drive/","1a4"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/security/good-practices/",component:f("/fr/unraid-os/manual/security/good-practices/","a7a"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/security/secure-webgui-ssl/",component:f("/fr/unraid-os/manual/security/secure-webgui-ssl/","aa1"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/security/vpn/",component:f("/fr/unraid-os/manual/security/vpn/","917"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/shares/",component:f("/fr/unraid-os/manual/shares/","6e3"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/shares/create-a-share/",component:f("/fr/unraid-os/manual/shares/create-a-share/","1a8"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/shares/delete-a-share/",component:f("/fr/unraid-os/manual/shares/delete-a-share/","42e"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/shares/disk-shares/",component:f("/fr/unraid-os/manual/shares/disk-shares/","de1"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/shares/network-access/",component:f("/fr/unraid-os/manual/shares/network-access/","81d"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/shares/user-shares/",component:f("/fr/unraid-os/manual/shares/user-shares/","ece"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/storage-management/",component:f("/fr/unraid-os/manual/storage-management/","81c"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/tools/",component:f("/fr/unraid-os/manual/tools/","935"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/troubleshooting/",component:f("/fr/unraid-os/manual/troubleshooting/","4d2"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/upgrade-instructions/",component:f("/fr/unraid-os/manual/upgrade-instructions/","d04"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/users/",component:f("/fr/unraid-os/manual/users/","a26"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/vm-management/",component:f("/fr/unraid-os/manual/vm-management/","e4f"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/vm-support/",component:f("/fr/unraid-os/manual/vm-support/","8c4"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/what-is-unraid/",component:f("/fr/unraid-os/manual/what-is-unraid/","4aa"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/manual/zfs/placeholder/",component:f("/fr/unraid-os/manual/zfs/placeholder/","17d"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.0/",component:f("/fr/unraid-os/release-notes/6.10.0/","0cc"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.1/",component:f("/fr/unraid-os/release-notes/6.10.1/","679"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.2/",component:f("/fr/unraid-os/release-notes/6.10.2/","5ca"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.10.3/",component:f("/fr/unraid-os/release-notes/6.10.3/","083"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.0/",component:f("/fr/unraid-os/release-notes/6.11.0/","5c3"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.1/",component:f("/fr/unraid-os/release-notes/6.11.1/","52c"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.2/",component:f("/fr/unraid-os/release-notes/6.11.2/","9c9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.3/",component:f("/fr/unraid-os/release-notes/6.11.3/","222"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.4/",component:f("/fr/unraid-os/release-notes/6.11.4/","806"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.11.5/",component:f("/fr/unraid-os/release-notes/6.11.5/","c77"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.0/",component:f("/fr/unraid-os/release-notes/6.12.0/","ee9"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.1/",component:f("/fr/unraid-os/release-notes/6.12.1/","c46"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.2/",component:f("/fr/unraid-os/release-notes/6.12.2/","652"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.12.3/",component:f("/fr/unraid-os/release-notes/6.12.3/","2f1"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.9.0/",component:f("/fr/unraid-os/release-notes/6.9.0/","a9b"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.9.1/",component:f("/fr/unraid-os/release-notes/6.9.1/","b2e"),exact:!0,sidebar:"unraidSidebar"},{path:"/fr/unraid-os/release-notes/6.9.2/",component:f("/fr/unraid-os/release-notes/6.9.2/","0d2"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:f("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),N(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/fr/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/fr/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/fr/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/fr/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/fr/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/fr/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/fr/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/fr/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/fr/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/fr/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/fr/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/fr/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/fr/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/fr/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/fr/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/fr/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/fr/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/fr/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/fr/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/fr/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/fr/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/fr/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/fr/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/fr/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/fr/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/fr/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/fr/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/fr/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/fr/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/fr/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/fr/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/fr/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/fr/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/fr/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/fr/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/fr/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/fr/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/fr/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/fr/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/fr/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/data-encryption","path":"/fr/unraid-os/manual/security/data-encryption","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/flash-drive","path":"/fr/unraid-os/manual/security/flash-drive","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/good-practices","path":"/fr/unraid-os/manual/security/good-practices","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/secure-webgui-ssl","path":"/fr/unraid-os/manual/security/secure-webgui-ssl","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/security","path":"/fr/unraid-os/manual/security/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/vpn","path":"/fr/unraid-os/manual/security/vpn","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/create-a-share","path":"/fr/unraid-os/manual/shares/create-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/delete-a-share","path":"/fr/unraid-os/manual/shares/delete-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/disk-shares","path":"/fr/unraid-os/manual/shares/disk-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/network-access","path":"/fr/unraid-os/manual/shares/network-access","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/shares","path":"/fr/unraid-os/manual/shares/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/user-shares","path":"/fr/unraid-os/manual/shares/user-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/fr/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/fr/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/fr/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/fr/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/fr/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/fr/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/fr/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/fr/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/fr/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/fr/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/fr/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/fr/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/fr/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/fr/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/fr/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/fr/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/fr/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/fr/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/fr/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/fr/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/fr/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/fr/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/fr/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/fr/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/fr/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/fr/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/fr/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/fr/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/fr/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/fr/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/fr/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/fr/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/fr/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/fr/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/fr/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/fr/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/fr/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/fr/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/fr/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"fr","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var P=n(3768),N=n(3086);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(9200),j=n(1048);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(9871),je=n(8259);var ze=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function pt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([B.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(8259),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8259:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>f,hI:()=>x,jA:()=>h,lO:()=>k,oz:()=>S,s1:()=>w,vY:()=>E,xz:()=>p});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432),c=n(3609),d=n(9003);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l,_X:()=>s});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},3609:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d,o5:()=>f});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+f(e)}function F(e){n.go(e)}var B=0;function j(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,P)):0===B&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=A.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),p(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,R=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===f(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(f(t));-1===n&&(n=0);var r=D.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[f(I)];function M(e){t.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?window.addEventListener(k,P):0===F&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(f(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=D.indexOf(f(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=T.appendListener(e);return B(1),function(){B(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),v=f;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=f(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var P=_[0],N=x.slice(0,T),O=x.slice(T+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),u(t,D,C),S=s(t,D,new a(f,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),C>1){var M={cause:f+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in p(b))if(v in c){f[b]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(f.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),C=j("react.profiler"),T=j("react.provider"),A=j("react.context"),L=j("react.forward_ref"),R=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),F=j("react.offscreen"),B=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Pe(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function Be(){null===Te&&null===Ae||(Ie(),Pe())}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),Pt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Pt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function jt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?jt(10,t):e;case 10:return 0===(e=zt(192&~t))?jt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){Me||Ie();var a=Yt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||Be()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),mn=ln(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Fn,jn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Mr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,Be()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Pt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Pn;break;case Tt:case At:case Lt:s=yn;break;case Rt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==f&&(null!=(h=je(m,f))&&c.push(Dr(m,h,p)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",f="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",f="onPointerEnter",m="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=p,h=null,ta(a)===r&&((c=new c(f,m+"enter",u,n,a)).target=p,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(f=u,m=0,p=c=s;p;p=Fr(p))m++;for(p=0,h=f;h;h=Fr(h))p++;for(;0<m-p;)c=Fr(c),m--;for(;0<p-m;)f=Fr(f),p--;for(;m--;){if(c===f||null!==f&&c===f.alternate)break e;c=Fr(c),f=Fr(f)}c=null}else c=null;null!==s&&Br(i,l,s,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=je(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=je(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=je(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function jr(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(pa),ua(fa)}function va(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=fa.current,ca(fa,e),ca(pa,pa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,Pa=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},Ba=null,ja=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case Pa:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Pa;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==ja){var e=ja;ja=null,Ca(e)}Qa()}function Qa(){if(!za&&null!==Ba){za=!0;var e=0;try{var t=Ba;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(n){throw null!==Ba&&(Ba=Ba.slice(e+1)),_a(Pa,Va),n}finally{za=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,s);break e}f=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(p,f,s):m))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=f}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:fa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:fa.current,a.context=ha(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=p(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=f(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),Po=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ca(Po,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Io(){ua(Lo),ua(Ro),ua(Po)}function Do(e){No(Po.current);var t=No(Lo.current),n=pe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Mo(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Fo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(jo=e);$o(jo,n)}jo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,jo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jo=e}function Zo(e){if(e!==jo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=jo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=jo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Pi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,m=p.getSnapshot,h=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return pi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Pi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function ji(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:fa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var m=t.memoizedState;l!==d||f!==m||pa.current||io?("function"==typeof p&&(go(t,n,p,r),m=t.memoizedState),(u=io||vo(t,n,u,r,f,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ua(pa),ua(fa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Mo(t);var o=No(Po.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=jr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=jr)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Po.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Bl&&(Bl=3):(0!==Bl&&3!==Bl||(Bl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Qi(t),null===e&&Pr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Bl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Bo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ca(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ua(pa),ua(fa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=jr)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===D?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=jr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),Bl=0,jl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=jt(12,ss):e=jt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===Bl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Mt(u);var d=Dt;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=ys.bind(null,e),null===Ba?(Ba=[n],ja=_a(Pa,Qa)):Ba.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Cs();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Bl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=jl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Ft(e,t)))}else n=Ts(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=jl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ua(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ua(pa),ua(fa),Wo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ua(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,Bl=0,jl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Pi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Pl.current=null,null===n||null===n.return){Bl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),f=i;do{var p;if(p=13===f.tag){var m=f.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=f.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var b=new Set;b.add(u),f.updateQueue=b}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bl&&(Bl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var k=f.type,S=f.stateNode;if(0==(64&f.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}Ps(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Pi,null===e?Pi:e}function Ts(e,t){var n=Nl;Nl|=16;var r=Cs();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Rl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Bl}function As(){for(;null!==Il;)Rs(Il)}function Ls(){for(;null!==Il&&!Ta();)Rs(Il)}function Rs(e){var t=Ql(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Ps(e):Il=t,Pl.current=null}function Ps(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Bl&&(Bl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,zr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(f=d),b===u&&++h===c&&(p=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Is()}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=pr(y,S),o=pr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!zr,Ur=zr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));zs(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Wl=Wl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Bs)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Bs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));zs(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function js(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)js(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){js(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Bl||3===Bl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case P:return(e=Gs(19,n,t,a)).elementType=P,e.lanes=o,e;case F:return Ws(n,a,o,t);case B:return(e=Gs(24,n,t,a)).elementType=B,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Pr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=ji(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),jo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),ji(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,Pe,Ds,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return B(g.META,a.priority,r)+" "+B(g.LINK,o.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",a,r),link:B(g.LINK,c,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,o,r),script:B(g.SCRIPT,f,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var f={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,P="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),P=(0,l.Z)({},P,p));var N=(0,l.Z)({"aria-current":L&&a||null,className:R,style:P,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),f=(n(9864),n(3366)),p=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function N(){return P(b)}function O(){return P(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function P(){var e=R.current;if(null===e)throw Error(p(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=f((function(){e(t.unstable_now())}),n)},a=function(){p(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=R;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(D,u.startTime-n),s=!1}return s}finally{L=null,R=o,P=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/fr/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"Fermer","theme.BackToTopButton.buttonAriaLabel":"Retour au d\xe9but de la page","theme.CodeBlock.copied":"Copi\xe9","theme.CodeBlock.copy":"Copier","theme.CodeBlock.copyButtonAriaLabel":"Copier le code","theme.CodeBlock.wordWrapToggle":"Activer/d\xe9sactiver le retour \xe0 la ligne","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"Plier/D\xe9plier la cat\xe9gorie \'{label}\' de la barre lat\xe9rale","theme.ErrorPageContent.title":"Cette page a plant\xe9.","theme.ErrorPageContent.tryAgain":"R\xe9essayer","theme.NavBar.navAriaLabel":"Main","theme.NotFound.p1":"Nous n\'avons pas trouv\xe9 ce que vous recherchez.","theme.NotFound.p2":"Veuillez contacter le propri\xe9taire du site qui vous a li\xe9 \xe0 l\'URL d\'origine et leur faire savoir que leur lien est cass\xe9.","theme.NotFound.title":"Page introuvable","theme.TOCCollapsible.toggleButtonLabel":"Sur cette page","theme.admonition.caution":"attention","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"remarque","theme.admonition.tip":"astuce","theme.blog.archive.description":"Archive","theme.blog.archive.title":"Archive","theme.blog.paginator.navAriaLabel":"Pagination de la liste des articles du blog","theme.blog.paginator.newerEntries":"Nouvelles entr\xe9es","theme.blog.paginator.olderEntries":"Anciennes entr\xe9es","theme.blog.post.paginator.navAriaLabel":"Pagination des articles du blog","theme.blog.post.paginator.newerPost":"Article plus r\xe9cent","theme.blog.post.paginator.olderPost":"Article plus ancien","theme.blog.post.plurals":"Un article|{count} articles","theme.blog.post.readMore":"Lire plus","theme.blog.post.readMoreLabel":"En savoir plus sur {title}","theme.blog.post.readingTime.plurals":"Une minute de lecture|{readingTime} minutes de lecture","theme.blog.sidebar.navAriaLabel":"Navigation article de blog r\xe9cent","theme.blog.tagTitle":"{nPosts} tagu\xe9s avec \xab {tagName} \xbb","theme.colorToggle.ariaLabel":"Basculer entre le mode sombre et clair (actuellement {mode})","theme.colorToggle.ariaLabel.mode.dark":"mode sombre","theme.colorToggle.ariaLabel.mode.light":"mode clair","theme.common.editThisPage":"\xc9diter cette page","theme.common.headingLinkTitle":"Lien direct vers {heading}","theme.common.skipToMainContent":"Aller au contenu principal","theme.docs.DocCard.categoryDescription":"{count} \xe9l\xe9ments","theme.docs.breadcrumbs.home":"Page d\'accueil","theme.docs.breadcrumbs.navAriaLabel":"Fil d\'Ariane","theme.docs.paginator.navAriaLabel":"Pages de documentation","theme.docs.paginator.next":"Suivant","theme.docs.paginator.previous":"Pr\xe9c\xe9dent","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Fermer la barre de navigation","theme.docs.sidebar.collapseButtonAriaLabel":"R\xe9duire le menu lat\xe9ral","theme.docs.sidebar.collapseButtonTitle":"R\xe9duire le menu lat\xe9ral","theme.docs.sidebar.expandButtonAriaLabel":"D\xe9plier le menu lat\xe9ral","theme.docs.sidebar.expandButtonTitle":"D\xe9plier le menu lat\xe9ral","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Ouvrir/fermer la barre de navigation","theme.docs.tagDocListPageTitle":"{nDocsTagged} avec \\"{tagName}\\"","theme.docs.tagDocListPageTitle.nDocsTagged":"Un document tagu\xe9|{count} documents tagu\xe9s","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.latestVersionLinkLabel":"derni\xe8re version","theme.docs.versions.latestVersionSuggestionLabel":"Pour une documentation \xe0 jour, consultez la {latestVersionLink} ({versionLabel}).","theme.docs.versions.unmaintainedVersionLabel":"Ceci est la documentation de {siteTitle} {versionLabel}, qui n\'est plus activement maintenue.","theme.docs.versions.unreleasedVersionLabel":"Ceci est la documentation de la prochaine version {versionLabel} de {siteTitle}.","theme.lastUpdated.atDate":" le {date}","theme.lastUpdated.byUser":" par {user}","theme.lastUpdated.lastUpdatedAtBy":"Derni\xe8re mise \xe0 jour{atDate}{byUser}","theme.navbar.mobileLanguageDropdown.label":"Langues","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Retour au menu principal","theme.navbar.mobileVersionsDropdown.label":"Versions","theme.tags.tagsListLabel":"Tags :","theme.tags.tagsPageLink":"Voir tous les tags","theme.tags.tagsPageTitle":"Tags","theme.SearchBar.label":"Chercher","theme.SearchBar.seeAll":"Voir les {count} r\xe9sultats","theme.SearchModal.errorScreen.helpText":"Vous pouvez v\xe9rifier votre connexion r\xe9seau.","theme.SearchModal.errorScreen.titleText":"Impossible de r\xe9cup\xe9rer les r\xe9sultats","theme.SearchModal.footer.closeKeyAriaLabel":"Touche Echap","theme.SearchModal.footer.closeText":"fermer","theme.SearchModal.footer.navigateDownKeyAriaLabel":"Fl\xe8che vers le bas","theme.SearchModal.footer.navigateText":"naviguer","theme.SearchModal.footer.navigateUpKeyAriaLabel":"Fl\xe8che vers le haut","theme.SearchModal.footer.searchByText":"Recherche via","theme.SearchModal.footer.selectKeyAriaLabel":"Touche Entr\xe9e","theme.SearchModal.footer.selectText":"s\xe9lectionner","theme.SearchModal.noResultsScreen.noResultsText":"Aucun r\xe9sultat pour","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"Faites-le nous savoir.","theme.SearchModal.noResultsScreen.reportMissingResultsText":"Vous pensez que cette requ\xeate doit donner des r\xe9sultats\xa0?","theme.SearchModal.noResultsScreen.suggestedQueryText":"Essayez de chercher","theme.SearchModal.placeholder":"Rechercher des docs","theme.SearchModal.searchBox.cancelButtonText":"Annuler","theme.SearchModal.searchBox.resetButtonTitle":"Effacer la requ\xeate","theme.SearchModal.startScreen.favoriteSearchesTitle":"Favoris","theme.SearchModal.startScreen.noRecentSearchesText":"Aucune recherche r\xe9cente","theme.SearchModal.startScreen.recentSearchesTitle":"R\xe9cemment","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"Supprimer cette recherche des favoris","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"Supprimer cette recherche de l\'historique","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"Sauvegarder cette recherche","theme.SearchPage.algoliaLabel":"Recherche par Algolia","theme.SearchPage.documentsFound.plurals":"Un document trouv\xe9|{count} documents trouv\xe9s","theme.SearchPage.emptyResultsTitle":"Rechercher dans la documentation","theme.SearchPage.existingResultsTitle":"R\xe9sultats de recherche pour \xab {query} \xbb","theme.SearchPage.fetchingNewResults":"Chargement de nouveaux r\xe9sultats...","theme.SearchPage.inputLabel":"Chercher","theme.SearchPage.inputPlaceholder":"Tapez votre recherche ici","theme.SearchPage.noResultsText":"Aucun r\xe9sultat trouv\xe9","theme.IdealImageMessage.404error":"404. Image introuvable","theme.IdealImageMessage.error":"Erreur. Cliquez pour recharger","theme.IdealImageMessage.load":"Cliquez pour charger{sizeMessage}","theme.IdealImageMessage.loading":"Chargement ...","theme.IdealImageMessage.offline":"Votre navigateur est hors ligne. Image non charg\xe9e"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/fr/search/-657":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/fr/-9ce":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/fr/-772":{"__comp":"17896441","content":"6e7e0dfd"},"/fr/category/contribute/-d35":{"__comp":"14eb3368","categoryGeneratedIndex":"2b82781d"},"/fr/category/faq/-bde":{"__comp":"14eb3368","categoryGeneratedIndex":"b5650663"},"/fr/category/getting-started/-84b":{"__comp":"14eb3368","categoryGeneratedIndex":"6728fbec"},"/fr/category/guides/-19c":{"__comp":"14eb3368","categoryGeneratedIndex":"ebae1b08"},"/fr/category/legacy-documentation/-a13":{"__comp":"14eb3368","categoryGeneratedIndex":"b83fc473"},"/fr/category/manual/-1a2":{"__comp":"14eb3368","categoryGeneratedIndex":"b58ca393"},"/fr/category/release-notes/-275":{"__comp":"14eb3368","categoryGeneratedIndex":"f09ecf49"},"/fr/category/tutorial---basics/-9d3":{"__comp":"14eb3368","categoryGeneratedIndex":"ac1b2a6b"},"/fr/category/tutorial---extras/-d18":{"__comp":"14eb3368","categoryGeneratedIndex":"9343f1a6"},"/fr/category/unraid-connect/-933":{"__comp":"14eb3368","categoryGeneratedIndex":"af985087"},"/fr/category/unraid-os/-c31":{"__comp":"14eb3368","categoryGeneratedIndex":"ca6b5a08"},"/fr/category/zfs/-bc6":{"__comp":"14eb3368","categoryGeneratedIndex":"ce7902f7"},"/fr/connect/about/-9c1":{"__comp":"17896441","content":"bd5544b1"},"/fr/connect/help/-21b":{"__comp":"17896441","content":"54fe4512"},"/fr/connect/remote-access/-389":{"__comp":"17896441","content":"ba2ffba3"},"/fr/contribute-to-docs/intro/-a51":{"__comp":"17896441","content":"9c8e01a5"},"/fr/contribute-to-docs/tutorial-basics/congratulations/-a3b":{"__comp":"17896441","content":"06cd2fd6"},"/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/-175":{"__comp":"17896441","content":"e62fd64a"},"/fr/contribute-to-docs/tutorial-basics/create-a-document/-e0b":{"__comp":"17896441","content":"73c1707a"},"/fr/contribute-to-docs/tutorial-basics/create-a-page/-406":{"__comp":"17896441","content":"6937eda1"},"/fr/contribute-to-docs/tutorial-basics/markdown-features/-011":{"__comp":"17896441","content":"fd47d4b7"},"/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/-fa4":{"__comp":"17896441","content":"0993abe5"},"/fr/contribute-to-docs/tutorial-extras/translate-your-site/-787":{"__comp":"17896441","content":"f568d666"},"/fr/legacy/Articles/dual-boot-unraid-and-windows/-cfd":{"__comp":"17896441","content":"c5b893f4"},"/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/-f12":{"__comp":"17896441","content":"69f90a2c"},"/fr/legacy/Articles/upgrading-to-unraid-6/-a17":{"__comp":"17896441","content":"39304afb"},"/fr/legacy/FAQ/cache-disk/-e7f":{"__comp":"17896441","content":"88a1b883"},"/fr/legacy/FAQ/check-disk-filesystems/-381":{"__comp":"17896441","content":"5034631f"},"/fr/legacy/FAQ/check-harddrive-speed/-c1b":{"__comp":"17896441","content":"039cd775"},"/fr/legacy/FAQ/console/-795":{"__comp":"17896441","content":"2dd62328"},"/fr/legacy/FAQ/parity-swap-procedure/-b78":{"__comp":"17896441","content":"f2577e9f"},"/fr/legacy/FAQ/Parity/-496":{"__comp":"17896441","content":"54f4a7b0"},"/fr/legacy/FAQ/replacing-a-data-drive/-81a":{"__comp":"17896441","content":"74287a25"},"/fr/legacy/FAQ/replacing-multiple-data-drives/-f2a":{"__comp":"17896441","content":"d441ea6d"},"/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-2b9":{"__comp":"17896441","content":"6618ba01"},"/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/-352":{"__comp":"17896441","content":"036bad42"},"/fr/legacy/FAQ/shrink-array/-d19":{"__comp":"17896441","content":"9d093beb"},"/fr/legacy/FAQ/terminal-access/-745":{"__comp":"17896441","content":"e624f8a6"},"/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-567":{"__comp":"17896441","content":"67a4e8b6"},"/fr/legacy/FAQ/transferring-files-within-the-unraid-server/-391":{"__comp":"17896441","content":"38c3fa26"},"/fr/legacy/FAQ/understanding-smart-reports/-a5b":{"__comp":"17896441","content":"dec1eefe"},"/fr/legacy/FAQ/usb-flash-drive-preparation/-2ed":{"__comp":"17896441","content":"79722de7"},"/fr/unraid-os/faq/licensing-faq/-d99":{"__comp":"17896441","content":"26113f5d"},"/fr/unraid-os/faq/os-faq/-5e9":{"__comp":"17896441","content":"81b28c9f"},"/fr/unraid-os/faq/redeem-license-activation-code/-c65":{"__comp":"17896441","content":"e8c37b9f"},"/fr/unraid-os/faq/unraid-account/-f76":{"__comp":"17896441","content":"5565d3f9"},"/fr/unraid-os/guides/configuring-time-machine/-45e":{"__comp":"17896441","content":"f9ab548b"},"/fr/unraid-os/guides/wol-setup-for-unraid/-b63":{"__comp":"17896441","content":"0a18b2d8"},"/fr/unraid-os/manual/additional-settings/-fa3":{"__comp":"17896441","content":"1942e1e1"},"/fr/unraid-os/manual/applications/-f0d":{"__comp":"17896441","content":"7b378cd1"},"/fr/unraid-os/manual/changing-the-flash-device/-e82":{"__comp":"17896441","content":"0ca4c500"},"/fr/unraid-os/manual/docker-management/-191":{"__comp":"17896441","content":"4caccc33"},"/fr/unraid-os/manual/getting-started/-bba":{"__comp":"17896441","content":"b13723e0"},"/fr/unraid-os/manual/getting-started/manual-install-method/-a56":{"__comp":"17896441","content":"18ade0c5"},"/fr/unraid-os/manual/multi-language/-528":{"__comp":"17896441","content":"6b42df2b"},"/fr/unraid-os/manual/security/-3f6":{"__comp":"17896441","content":"277cf690"},"/fr/unraid-os/manual/security/data-encryption/-18b":{"__comp":"17896441","content":"fee3ac30"},"/fr/unraid-os/manual/security/flash-drive/-1a4":{"__comp":"17896441","content":"10869db1"},"/fr/unraid-os/manual/security/good-practices/-a7a":{"__comp":"17896441","content":"313b9001"},"/fr/unraid-os/manual/security/secure-webgui-ssl/-aa1":{"__comp":"17896441","content":"0a1bdeaa"},"/fr/unraid-os/manual/security/vpn/-917":{"__comp":"17896441","content":"1c36a847"},"/fr/unraid-os/manual/shares/-6e3":{"__comp":"17896441","content":"aed38285"},"/fr/unraid-os/manual/shares/create-a-share/-1a8":{"__comp":"17896441","content":"8a89048a"},"/fr/unraid-os/manual/shares/delete-a-share/-42e":{"__comp":"17896441","content":"9d23aec8"},"/fr/unraid-os/manual/shares/disk-shares/-de1":{"__comp":"17896441","content":"5f60a020"},"/fr/unraid-os/manual/shares/network-access/-81d":{"__comp":"17896441","content":"f7b0b541"},"/fr/unraid-os/manual/shares/user-shares/-ece":{"__comp":"17896441","content":"8944547a"},"/fr/unraid-os/manual/storage-management/-81c":{"__comp":"17896441","content":"55054ac6"},"/fr/unraid-os/manual/tools/-935":{"__comp":"17896441","content":"7c081f1b"},"/fr/unraid-os/manual/troubleshooting/-4d2":{"__comp":"17896441","content":"104dd0b4"},"/fr/unraid-os/manual/upgrade-instructions/-d04":{"__comp":"17896441","content":"7436a388"},"/fr/unraid-os/manual/users/-a26":{"__comp":"17896441","content":"40147886"},"/fr/unraid-os/manual/vm-management/-e4f":{"__comp":"17896441","content":"3d3d1f9d"},"/fr/unraid-os/manual/vm-support/-8c4":{"__comp":"17896441","content":"88941ca4"},"/fr/unraid-os/manual/what-is-unraid/-4aa":{"__comp":"17896441","content":"f0844d9f"},"/fr/unraid-os/manual/zfs/placeholder/-17d":{"__comp":"17896441","content":"5df36282"},"/fr/unraid-os/release-notes/6.10.0/-0cc":{"__comp":"17896441","content":"798531cc"},"/fr/unraid-os/release-notes/6.10.1/-679":{"__comp":"17896441","content":"b3a9d7ab"},"/fr/unraid-os/release-notes/6.10.2/-5ca":{"__comp":"17896441","content":"caa9baff"},"/fr/unraid-os/release-notes/6.10.3/-083":{"__comp":"17896441","content":"54219b20"},"/fr/unraid-os/release-notes/6.11.0/-5c3":{"__comp":"17896441","content":"096fb135"},"/fr/unraid-os/release-notes/6.11.1/-52c":{"__comp":"17896441","content":"6b97f0f9"},"/fr/unraid-os/release-notes/6.11.2/-9c9":{"__comp":"17896441","content":"a0c90937"},"/fr/unraid-os/release-notes/6.11.3/-222":{"__comp":"17896441","content":"d31ea43a"},"/fr/unraid-os/release-notes/6.11.4/-806":{"__comp":"17896441","content":"c8335b6e"},"/fr/unraid-os/release-notes/6.11.5/-c77":{"__comp":"17896441","content":"ae93aaeb"},"/fr/unraid-os/release-notes/6.12.0/-ee9":{"__comp":"17896441","content":"e1256ee6"},"/fr/unraid-os/release-notes/6.12.1/-c46":{"__comp":"17896441","content":"98a2ad9f"},"/fr/unraid-os/release-notes/6.12.2/-652":{"__comp":"17896441","content":"0ba4e87b"},"/fr/unraid-os/release-notes/6.12.3/-2f1":{"__comp":"17896441","content":"7a2d53ea"},"/fr/unraid-os/release-notes/6.9.0/-a9b":{"__comp":"17896441","content":"06988216"},"/fr/unraid-os/release-notes/6.9.1/-b2e":{"__comp":"17896441","content":"49332cbb"},"/fr/unraid-os/release-notes/6.9.2/-0d2":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/fr/assets/js/main.e6bd8ad0.js.LICENSE.txt b/fr/assets/js/main.f1d56603.js.LICENSE.txt similarity index 100% rename from fr/assets/js/main.e6bd8ad0.js.LICENSE.txt rename to fr/assets/js/main.f1d56603.js.LICENSE.txt diff --git a/fr/assets/js/runtime~main.1bad24bd.js b/fr/assets/js/runtime~main.1bad24bd.js new file mode 100644 index 000000000..04fb03a3e --- /dev/null +++ b/fr/assets/js/runtime~main.1bad24bd.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,b,d,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=c,r.c=t,e=[],r.O=(a,f,b,d)=>{if(!f){var c=1/0;for(i=0;i<e.length;i++){f=e[i][0],b=e[i][1],d=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&d||c>=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d<c&&(c=d));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,b,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(d,c),d},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",559:"313b9001",563:"6618ba01",879:"d441ea6d",909:"b3a9d7ab",967:"0a1bdeaa",990:"af985087",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1698:"49332cbb",1754:"9d23aec8",1770:"8a89048a",1791:"5df36282",1932:"aed38285",1941:"6728fbec",2121:"6e7e0dfd",2197:"935f2afb",2269:"54fe4512",2321:"2b82781d",2454:"f7b0b541",2697:"f0844d9f",2926:"54f4a7b0",3203:"67a4e8b6",3481:"ebae1b08",3563:"10869db1",3659:"6e6b2999",3923:"6937eda1",3967:"4caccc33",4023:"b58ca393",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",4863:"5f60a020",4960:"ce7902f7",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5289:"1c36a847",5450:"8944547a",5516:"ca6b5a08",5832:"caa9baff",5833:"7a2d53ea",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6596:"dec1eefe",6617:"81b28c9f",6622:"b5650663",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"fee3ac30",7401:"ac1b2a6b",7415:"ae93aaeb",7436:"e8c37b9f",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7748:"798531cc",7817:"b83fc473",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8629:"f09ecf49",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9259:"9343f1a6",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368",9821:"277cf690"}[e]||e)+"."+{53:"d177a698",322:"96af1fba",335:"8c393e13",347:"a5c3bf98",496:"946b4454",559:"ac3c6c89",563:"3dfb51df",879:"faf1d0b5",909:"19883f12",967:"67c90df9",990:"d86e7329",1036:"7f203165",1317:"66f2d29f",1367:"37a73256",1377:"51822ffc",1698:"89f393e0",1754:"54184a2d",1770:"df69773d",1791:"83651aa8",1932:"863e5bc8",1941:"f37b5ec0",2121:"35187e63",2153:"6676c42e",2197:"95f515d2",2269:"8b7d9c72",2321:"eb0f2cbe",2454:"dff5b32c",2697:"5c10117e",2926:"4c9e6ec0",3203:"44e17245",3481:"940f4546",3563:"dae8600a",3659:"4aef3ff2",3923:"821c4c2b",3967:"5982ae04",4023:"428256a7",4077:"31637838",4149:"77aa6e22",4248:"f946246d",4262:"50f572e9",4321:"d8131fc7",4399:"48ec78a2",4472:"5cb07451",4567:"2af37b56",4579:"2a529ab5",4618:"07818866",4622:"d89792a4",4688:"50af69d7",4710:"c92c720b",4813:"5bf370f5",4863:"51573a8c",4960:"35feefa7",5069:"92e8a38a",5078:"a071dbd9",5236:"82150db7",5275:"ef706b9f",5289:"3d007acd",5450:"62c05971",5516:"6648758b",5832:"820a7d6e",5833:"82a1c49a",6279:"c0c2c64a",6299:"4c4f8062",6305:"9d4a9db2",6385:"9bf402a8",6461:"a76e094f",6596:"f6f6f832",6617:"62e45f75",6622:"1e4bc7fa",6945:"e6ca558a",7044:"f9bdc3ba",7054:"301bbd54",7124:"73d9eaac",7317:"88a066f0",7328:"6f487de7",7401:"ebda4506",7415:"44f509bd",7436:"14d390cd",7537:"ce6949e6",7570:"009b3a71",7603:"86a2b2b8",7748:"7aea1eb2",7817:"69240311",7918:"63195e72",7920:"2a186628",8078:"53966658",8145:"b1d6c196",8298:"b331a868",8629:"d4c90447",8868:"f0ed35e3",8882:"f71df5f3",8894:"2f3d50a4",8925:"1c799028",9114:"1802a308",9185:"34beb868",9259:"b0eea592",9334:"dadfb5a6",9347:"6c2f36cf",9401:"b132ceca",9514:"fe92450b",9554:"c7d2fd09",9724:"62312122",9725:"47e24423",9817:"64ec88ed",9821:"163a9f3a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},d="docs:",r.l=(e,a,f,c)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+f),t.src=e),b[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var d=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/fr/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","313b9001":"559","6618ba01":"563",d441ea6d:"879",b3a9d7ab:"909","0a1bdeaa":"967",af985087:"990","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","49332cbb":"1698","9d23aec8":"1754","8a89048a":"1770","5df36282":"1791",aed38285:"1932","6728fbec":"1941","6e7e0dfd":"2121","935f2afb":"2197","54fe4512":"2269","2b82781d":"2321",f7b0b541:"2454",f0844d9f:"2697","54f4a7b0":"2926","67a4e8b6":"3203",ebae1b08:"3481","10869db1":"3563","6e6b2999":"3659","6937eda1":"3923","4caccc33":"3967",b58ca393:"4023","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813","5f60a020":"4863",ce7902f7:"4960","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","1c36a847":"5289","8944547a":"5450",ca6b5a08:"5516",caa9baff:"5832","7a2d53ea":"5833","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461",dec1eefe:"6596","81b28c9f":"6617",b5650663:"6622","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",fee3ac30:"7328",ac1b2a6b:"7401",ae93aaeb:"7415",e8c37b9f:"7436","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","798531cc":"7748",b83fc473:"7817","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298",f09ecf49:"8629","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","9343f1a6":"9259","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817","277cf690":"9821"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)f.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((f,d)=>b=e[a]=[f,d]));f.push(b[2]=d);var c=r.p+r.u(a),t=new Error;r.l(c,(f=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var d=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+c+")",t.name="ChunkLoadError",t.type=d,t.request=c,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var b,d,c=f[0],t=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(f);n<c.length;n++)d=c[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},f=self.webpackChunkdocs=self.webpackChunkdocs||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/fr/assets/js/runtime~main.a9e7a162.js b/fr/assets/js/runtime~main.a9e7a162.js deleted file mode 100644 index b02fff4b8..000000000 --- a/fr/assets/js/runtime~main.a9e7a162.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,b,f,c,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var b=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(b.exports,b,b.exports,r),b.loaded=!0,b.exports}r.m=d,r.c=t,e=[],r.O=(a,b,f,c)=>{if(!b){var d=1/0;for(i=0;i<e.length;i++){b=e[i][0],f=e[i][1],c=e[i][2];for(var t=!0,o=0;o<b.length;o++)(!1&c||d>=c)&&Object.keys(r.O).every((e=>r.O[e](b[o])))?b.splice(o--,1):(t=!1,c<d&&(d=c));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[b,f,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var d={};a=a||[null,b({}),b([]),b(b)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=b(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(c,d),c},r.d=(e,a)=>{for(var b in a)r.o(a,b)&&!r.o(e,b)&&Object.defineProperty(e,b,{enumerable:!0,get:a[b]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,b)=>(r.f[b](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",79:"90126b70",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",563:"6618ba01",879:"d441ea6d",909:"b3a9d7ab",990:"af985087",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1698:"49332cbb",1791:"5df36282",1941:"6728fbec",2121:"6e7e0dfd",2197:"935f2afb",2269:"54fe4512",2321:"2b82781d",2697:"f0844d9f",2926:"54f4a7b0",3203:"67a4e8b6",3481:"ebae1b08",3659:"6e6b2999",3923:"6937eda1",3967:"4caccc33",4023:"b58ca393",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4813:"26113f5d",4960:"ce7902f7",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5516:"ca6b5a08",5832:"caa9baff",5833:"7a2d53ea",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6596:"dec1eefe",6617:"81b28c9f",6622:"b5650663",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"a78d85c7",7401:"ac1b2a6b",7415:"ae93aaeb",7436:"e8c37b9f",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7748:"798531cc",7817:"b83fc473",7918:"17896441",7920:"1a4e3797",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8629:"f09ecf49",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9259:"9343f1a6",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9817:"14eb3368"}[e]||e)+"."+{53:"1e8e6a61",79:"a3f6e806",322:"96af1fba",335:"8c393e13",347:"a5c3bf98",496:"946b4454",563:"3dfb51df",879:"faf1d0b5",909:"19883f12",990:"d86e7329",1036:"7f203165",1317:"5de57aa5",1367:"9c8375cf",1377:"51822ffc",1698:"89f393e0",1791:"83651aa8",1941:"f37b5ec0",2121:"35187e63",2153:"6676c42e",2197:"409d144b",2269:"8b7d9c72",2321:"eb0f2cbe",2697:"b2aa73c5",2926:"4c9e6ec0",3203:"44e17245",3481:"940f4546",3659:"4aef3ff2",3923:"821c4c2b",3967:"6ec19246",4023:"77647b34",4077:"31637838",4149:"77aa6e22",4248:"f946246d",4262:"384ecc12",4321:"c0c2d7db",4399:"48ec78a2",4472:"5cb07451",4567:"86922bbf",4579:"2a529ab5",4618:"07818866",4622:"d89792a4",4688:"50af69d7",4710:"c92c720b",4813:"e5de3f41",4960:"35feefa7",5069:"1444274b",5078:"a071dbd9",5236:"82150db7",5275:"ef706b9f",5516:"6648758b",5832:"820a7d6e",5833:"82a1c49a",6279:"c0c2c64a",6299:"4c4f8062",6305:"9d4a9db2",6385:"9bf402a8",6461:"a76e094f",6596:"f6f6f832",6617:"c357452f",6622:"1e4bc7fa",6945:"e6ca558a",7044:"1891268c",7054:"301bbd54",7124:"73d9eaac",7317:"88a066f0",7328:"e5f7dbb4",7401:"ebda4506",7415:"44f509bd",7436:"e264fcc7",7537:"9a7e37fd",7570:"009b3a71",7603:"86a2b2b8",7748:"1cc97956",7817:"69240311",7918:"5d44835b",7920:"2a186628",8078:"53966658",8145:"b1d6c196",8298:"b331a868",8629:"d4c90447",8868:"f0ed35e3",8882:"f71df5f3",8894:"2f3d50a4",8925:"1c799028",9114:"1802a308",9185:"34beb868",9259:"b0eea592",9334:"dadfb5a6",9347:"6c2f36cf",9401:"b132ceca",9514:"010a8141",9554:"c7d2fd09",9724:"62312122",9725:"81e56057",9817:"3f60616a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="docs:",r.l=(e,a,b,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==b)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==c+b){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",c+b),t.src=e),f[e]=[a];var l=(a,b)=>{t.onerror=t.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(b))),a)return a(b)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/fr/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","90126b70":"79","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","6618ba01":"563",d441ea6d:"879",b3a9d7ab:"909",af985087:"990","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","49332cbb":"1698","5df36282":"1791","6728fbec":"1941","6e7e0dfd":"2121","935f2afb":"2197","54fe4512":"2269","2b82781d":"2321",f0844d9f:"2697","54f4a7b0":"2926","67a4e8b6":"3203",ebae1b08:"3481","6e6b2999":"3659","6937eda1":"3923","4caccc33":"3967",b58ca393:"4023","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","26113f5d":"4813",ce7902f7:"4960","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275",ca6b5a08:"5516",caa9baff:"5832","7a2d53ea":"5833","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461",dec1eefe:"6596","81b28c9f":"6617",b5650663:"6622","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",a78d85c7:"7328",ac1b2a6b:"7401",ae93aaeb:"7415",e8c37b9f:"7436","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603","798531cc":"7748",b83fc473:"7817","1a4e3797":"7920","74287a25":"8078","2dd62328":"8145","39304afb":"8298",f09ecf49:"8629","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","9343f1a6":"9259","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14eb3368":"9817"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,b)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)b.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((b,c)=>f=e[a]=[b,c]));b.push(f[2]=c);var d=r.p+r.u(a),t=new Error;r.l(d,(b=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=b&&("load"===b.type?"missing":b.type),d=b&&b.target&&b.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+d+")",t.name="ChunkLoadError",t.type=c,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,b)=>{var f,c,d=b[0],t=b[1],o=b[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(b);n<d.length;n++)c=d[n],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return r.O(i)},b=self.webpackChunkdocs=self.webpackChunkdocs||[];b.forEach(a.bind(null,0)),b.push=a.bind(null,b.push.bind(b))})()})(); \ No newline at end of file diff --git a/fr/category/contribute/index.html b/fr/category/contribute/index.html index db2a13c49..fd46253d6 100644 --- a/fr/category/contribute/index.html +++ b/fr/category/contribute/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contribute</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Contribute</h1><p>How to contribute to the Unraid Docs</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/intro/"><h2 class="text--truncate cardTitle_rnsV" title="Contributing to Unraid Documentation">📄️<!-- --> <!-- -->Contributing to Unraid Documentation</h2><p class="text--truncate cardDescription_PWke" title="Contribute to a Docs Page that already Exists">Contribute to a Docs Page that already Exists</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/tutorial---basics/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Basics">🗃️<!-- --> <!-- -->Tutorial - Basics</h2><p class="text--truncate cardDescription_PWke" title="5 éléments">5 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/tutorial---extras/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Extras">🗃️<!-- --> <!-- -->Tutorial - Extras</h2><p class="text--truncate cardDescription_PWke" title="2 éléments">2 éléments</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/faq/index.html b/fr/category/faq/index.html index 38d9fbdd8..8201f1d4e 100644 --- a/fr/category/faq/index.html +++ b/fr/category/faq/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/redeem-license-activation-code/">Redeem License Activation Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">FAQ</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">FAQ</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/faq/licensing-faq/"><h2 class="text--truncate cardTitle_rnsV" title="Licensing">📄️<!-- --> <!-- -->Licensing</h2><p class="text--truncate cardDescription_PWke" title="Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/faq/os-faq/"><h2 class="text--truncate cardTitle_rnsV" title="OS">📄️<!-- --> <!-- -->OS</h2><p class="text--truncate cardDescription_PWke" title="I Need Help with a Build / System Configuration. Where do I go?">I Need Help with a Build / System Configuration. Where do I go?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/faq/redeem-license-activation-code/"><h2 class="text--truncate cardTitle_rnsV" title="Redeem License Activation Code">📄️<!-- --> <!-- -->Redeem License Activation Code</h2><p class="text--truncate cardDescription_PWke" title="First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.">First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/faq/unraid-account/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Account">📄️<!-- --> <!-- -->Unraid Account</h2><p class="text--truncate cardDescription_PWke" title="What is an Unraid.net Account?">What is an Unraid.net Account?</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/release-notes/6.9.2/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">6.9.2</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Licensing</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/getting-started/index.html b/fr/category/getting-started/index.html index 85a42a558..4aae6e137 100644 --- a/fr/category/getting-started/index.html +++ b/fr/category/getting-started/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/guides/index.html b/fr/category/guides/index.html index b5e6660b4..beea76ac0 100644 --- a/fr/category/guides/index.html +++ b/fr/category/guides/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Guides</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Guides</h1><p>Unraid OS Guides</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/guides/configuring-time-machine/"><h2 class="text--truncate cardTitle_rnsV" title="Apple Time Machine">📄️<!-- --> <!-- -->Apple Time Machine</h2><p class="text--truncate cardDescription_PWke" title="Guide: Setting up a Time Machine Share on your Unraid Server">Guide: Setting up a Time Machine Share on your Unraid Server</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/guides/wol-setup-for-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="How To Setup Wake On LAN (WOL) for UNRAID">📄️<!-- --> <!-- -->How To Setup Wake On LAN (WOL) for UNRAID</h2><p class="text--truncate cardDescription_PWke" title="(assuming onboard NIC and WOL activated in motherboard's BIOS)">(assuming onboard NIC and WOL activated in motherboard's BIOS)</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Unraid Account</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Apple Time Machine</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/legacy-documentation/index.html b/fr/category/legacy-documentation/index.html index 779c486ea..106a90722 100644 --- a/fr/category/legacy-documentation/index.html +++ b/fr/category/legacy-documentation/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/fr/legacy/Articles/dual-boot-unraid-and-windows/">Articles</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/fr/legacy/FAQ/Parity/">FAQ</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Legacy Documentation</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Legacy Documentation</h1><p>Unraid OS Documentation ported from legacy.wiki.unraid.net</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/legacy/Articles/dual-boot-unraid-and-windows/"><h2 class="text--truncate cardTitle_rnsV" title="Articles">🗃️<!-- --> <!-- -->Articles</h2><p class="text--truncate cardDescription_PWke" title="3 éléments">3 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/legacy/FAQ/Parity/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="16 éléments">16 éléments</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/connect/remote-access/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Remote Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/manual/index.html b/fr/category/manual/index.html index a27ca6820..160d64882 100644 --- a/fr/category/manual/index.html +++ b/fr/category/manual/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">📄️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="Once you have assigned some devices to Unraid and started the array, you">Once you have assigned some devices to Unraid and started the array, you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 éléments">2 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">📄️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="This section covers various security-related aspects of Unraid">This section covers various security-related aspects of Unraid</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 éléments">1 éléments</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/what-is-unraid/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Overview</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">🗃️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="5 éléments">5 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">🗃️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="5 éléments">5 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 éléments">2 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 éléments">1 éléments</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Shares</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/release-notes/index.html b/fr/category/release-notes/index.html index 1b8fc0cbf..b63014325 100644 --- a/fr/category/release-notes/index.html +++ b/fr/category/release-notes/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="true" tabindex="0" href="/fr/unraid-os/release-notes/6.12.0/">6.12</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/release-notes/6.12.0/">6.12.0</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/release-notes/6.12.1/">6.12.1</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/release-notes/6.12.2/">6.12.2</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/release-notes/6.12.3/">6.12.3</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/fr/unraid-os/release-notes/6.11.0/">6.11</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/fr/unraid-os/release-notes/6.10.0/">6.10</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/fr/unraid-os/release-notes/6.9.0/">6.9</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Release Notes</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Release Notes</h1><p>Unraid Release Notes</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/release-notes/6.12.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.12">🗃️<!-- --> <!-- -->6.12</h2><p class="text--truncate cardDescription_PWke" title="4 éléments">4 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/release-notes/6.11.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.11">🗃️<!-- --> <!-- -->6.11</h2><p class="text--truncate cardDescription_PWke" title="6 éléments">6 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/release-notes/6.10.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.10">🗃️<!-- --> <!-- -->6.10</h2><p class="text--truncate cardDescription_PWke" title="4 éléments">4 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/release-notes/6.9.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.9">🗃️<!-- --> <!-- -->6.9</h2><p class="text--truncate cardDescription_PWke" title="3 éléments">3 éléments</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/unraid-os/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Unraid OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/release-notes/6.12.0/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Version 6.12.0 2023-06-14</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/tutorial---basics/index.html b/fr/category/tutorial---basics/index.html index 380221de7..30dfb9db2 100644 --- a/fr/category/tutorial---basics/index.html +++ b/fr/category/tutorial---basics/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Basics</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Basics</h1><p>5 minutes to learn the most important Docusaurus concepts.</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Page">📄️<!-- --> <!-- -->Create a Page</h2><p class="text--truncate cardDescription_PWke" title="Add Markdown or React files to src/pages to create a standalone page:">Add Markdown or React files to src/pages to create a standalone page:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Document">📄️<!-- --> <!-- -->Create a Document</h2><p class="text--truncate cardDescription_PWke" title="Documents are groups of pages connected through:">Documents are groups of pages connected through:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Blog Post">📄️<!-- --> <!-- -->Create a Blog Post</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...">Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/"><h2 class="text--truncate cardTitle_rnsV" title="Markdown Features">📄️<!-- --> <!-- -->Markdown Features</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus supports Markdown and a few additional features.">Docusaurus supports Markdown and a few additional features.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/tutorial-basics/congratulations/"><h2 class="text--truncate cardTitle_rnsV" title="Congratulations">📄️<!-- --> <!-- -->Congratulations</h2><p class="text--truncate cardDescription_PWke" title="You have just learned the basics of Docusaurus and made some changes to the initial template.">You have just learned the basics of Docusaurus and made some changes to the initial template.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Create a Page</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/tutorial---extras/index.html b/fr/category/tutorial---extras/index.html index 50e07c2a6..86343f0d5 100644 --- a/fr/category/tutorial---extras/index.html +++ b/fr/category/tutorial---extras/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Extras</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Extras</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/"><h2 class="text--truncate cardTitle_rnsV" title="Manage Docs Versions">📄️<!-- --> <!-- -->Manage Docs Versions</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus can manage multiple versions of your docs.">Docusaurus can manage multiple versions of your docs.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/"><h2 class="text--truncate cardTitle_rnsV" title="Translate your site">📄️<!-- --> <!-- -->Translate your site</h2><p class="text--truncate cardDescription_PWke" title="Let's translate docs/intro.md to French.">Let's translate docs/intro.md to French.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Congratulations</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/unraid-connect/index.html b/fr/category/unraid-connect/index.html index 3732f8a25..79ea26742 100644 --- a/fr/category/unraid-connect/index.html +++ b/fr/category/unraid-connect/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid Connect</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid Connect</h1><p>Unraid Connect Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/connect/about/"><h2 class="text--truncate cardTitle_rnsV" title="About Unraid Connect">📄️<!-- --> <!-- -->About Unraid Connect</h2><p class="text--truncate cardDescription_PWke" title="What is Unraid Connect?">What is Unraid Connect?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/connect/help/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Connect Help">📄️<!-- --> <!-- -->Unraid Connect Help</h2><p class="text--truncate cardDescription_PWke" title="How to Install">How to Install</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/connect/remote-access/"><h2 class="text--truncate cardTitle_rnsV" title="Remote Access">📄️<!-- --> <!-- -->Remote Access</h2><p class="text--truncate cardDescription_PWke" title="The Remote Access feature">The Remote Access feature</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">About</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/connect/about/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">About Unraid Connect</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/unraid-os/index.html b/fr/category/unraid-os/index.html index d9cf50d63..de4438b24 100644 --- a/fr/category/unraid-os/index.html +++ b/fr/category/unraid-os/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid OS</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid OS</h1><p>Unraid OS Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/release-notes/"><h2 class="text--truncate cardTitle_rnsV" title="Release Notes">🗃️<!-- --> <!-- -->Release Notes</h2><p class="text--truncate cardDescription_PWke" title="4 éléments">4 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/faq/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="4 éléments">4 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/guides/"><h2 class="text--truncate cardTitle_rnsV" title="Guides">🗃️<!-- --> <!-- -->Guides</h2><p class="text--truncate cardDescription_PWke" title="2 éléments">2 éléments</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/category/manual/"><h2 class="text--truncate cardTitle_rnsV" title="Manual">🗃️<!-- --> <!-- -->Manual</h2><p class="text--truncate cardDescription_PWke" title="17 éléments">17 éléments</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Home</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/release-notes/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Release Notes</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/category/zfs/index.html b/fr/category/zfs/index.html index ae42a85a0..41d22ddea 100644 --- a/fr/category/zfs/index.html +++ b/fr/category/zfs/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/fr/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/users/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/connect/about/index.html b/fr/connect/about/index.html index d5ca1dfc9..8fdfd141b 100644 --- a/fr/connect/about/index.html +++ b/fr/connect/about/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -22,7 +22,7 @@ Unraid Server with a suite of new features including Dynamic Remote Access, Server Deep Linking, Server management from the Connect UI, Online flash backups, Real-time monitoring, and much more!</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="launch-unraid-connect"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer"><strong>Launch Unraid Connect</strong></a><a href="#launch-unraid-connect" class="hash-link" aria-label="Lien direct vers launch-unraid-connect" title="Lien direct vers launch-unraid-connect">​</a></h2></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/about.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/unraid-connect/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/connect/help/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Unraid Connect Help</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-unraid-connect" class="table-of-contents__link toc-highlight"><strong>What is Unraid Connect?</strong></a></li><li><a href="#launch-unraid-connect" class="table-of-contents__link toc-highlight"><strong>Launch Unraid Connect</strong></a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/connect/help/index.html b/fr/connect/help/index.html index 6aad273f6..d39f377bd 100644 --- a/fr/connect/help/index.html +++ b/fr/connect/help/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -152,7 +152,7 @@ UPC please open a terminal window and type:</p><p><code>unraid-api restart</code></p><p>If you have other Unraid Connect Support related questions, please see our <a href="https://forums.unraid.net/" target="_blank" rel="noopener noreferrer">Unraid Connect user forum</a> or <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">contact us</a> to open a support ticket.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/help.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/connect/about/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">About Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/connect/remote-access/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Remote Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-to-install" class="table-of-contents__link toc-highlight"><strong>How to Install</strong></a></li><li><a href="#unraid-connect-dashboard" class="table-of-contents__link toc-highlight"><strong>Unraid Connect Dashboard</strong></a><ul><li><a href="#manage-your-server-from-within-the-connect-ui" class="table-of-contents__link toc-highlight"><strong>Manage Your Server From Within the Connect UI</strong></a></li><li><a href="#a-note-regarding-dns-rebinding-protection" class="table-of-contents__link toc-highlight">A note regarding DNS Rebinding Protection</a></li><li><a href="#how-to-access-your-server-when-dns-is-down" class="table-of-contents__link toc-highlight">How to access your server when DNS is down</a></li><li><a href="#how-to-disable-ssl-for-local-access" class="table-of-contents__link toc-highlight">How to disable SSL for local access</a></li></ul></li><li><a href="#automated-flash-backup" class="table-of-contents__link toc-highlight"><strong>Automated Flash Backup</strong></a><ul><li><a href="#enabling-flash-backup-optional" class="table-of-contents__link toc-highlight">Enabling Flash Backup (optional)</a></li><li><a href="#restoring-flash-backup" class="table-of-contents__link toc-highlight">Restoring Flash Backup</a></li></ul></li><li><a href="#server-deep-linking" class="table-of-contents__link toc-highlight"><strong>Server Deep Linking</strong></a></li><li><a href="#customizable-dashboard-server-banner-image-and-themes" class="table-of-contents__link toc-highlight"><strong>Customizable Dashboard, Server Banner Image and Themes</strong></a></li><li><a href="#license-management" class="table-of-contents__link toc-highlight"><strong>License Management</strong></a></li><li><a href="#language-localization" class="table-of-contents__link toc-highlight"><strong>Language Localization</strong></a></li><li><a href="#signing-out" class="table-of-contents__link toc-highlight">Signing Out</a></li><li><a href="#uninstalling-the-plugin" class="table-of-contents__link toc-highlight">Uninstalling the plugin</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a><ul><li><a href="#data-we-store" class="table-of-contents__link toc-highlight">Data We Store</a></li><li><a href="#flash-backups-are-not-encrypted" class="table-of-contents__link toc-highlight">Flash Backups are Not Encrypted</a></li><li><a href="#sensitive-data" class="table-of-contents__link toc-highlight">Sensitive Data</a></li></ul></li><li><a href="#connect-troubleshooting" class="table-of-contents__link toc-highlight">Connect Troubleshooting</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/connect/remote-access/index.html b/fr/connect/remote-access/index.html index f0f4181c0..82c93c6ea 100644 --- a/fr/connect/remote-access/index.html +++ b/fr/connect/remote-access/index.html @@ -9,16 +9,16 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-connect/"><span itemprop="name">Unraid Connect</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Remote Access</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Remote Access</h1><p><img loading="lazy" src="/fr/assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png" width="812" height="283" class="img_ev3q"></p><p>The Remote Access feature allows you to access your Unraid webgui from the Internet. If you need access to Docker containers, network drives, or other devices on your -network, you'll want to <a href="/fr/unraid-os/manual/security/#vpn">setup a +network, you'll want to <a href="/fr/unraid-os/manual/security.md/#vpn">setup a VPN</a> instead.</p><p><strong>Note: Before enabling remote access, consider your root password. Is it sufficiently complex? Update your root password on the Users page.</strong></p><p>Also note: <strong>Remote Access is an optional feature</strong>, and is not required to use the rest of Unraid Connect.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="remote-access---initial-setup">Remote Access - <strong>Initial Setup</strong><a href="#remote-access---initial-setup" class="hash-link" aria-label="Lien direct vers remote-access---initial-setup" title="Lien direct vers remote-access---initial-setup">​</a></h2><ol><li>From Unraid webGUI Navigate to <strong>Settings</strong> → <strong>Management Access</strong></li><li>Note the <strong>HTTPS port</strong>, it defaults to port 443. If you have Docker @@ -81,7 +81,7 @@ Internet connection drops you will likely lose access to your server's webgui. See <a href="/fr/connect/help/#how-to-access-your-server-when-dns-is-down">How to access your server when DNS is down</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/connect/help/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Unraid Connect Help</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/legacy-documentation/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Legacy Documentation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#remote-access---initial-setup" class="table-of-contents__link toc-highlight">Remote Access - <strong>Initial Setup</strong></a><ul><li><a href="#remote-access---choose-remote-access-type" class="table-of-contents__link toc-highlight">Remote Access - <strong>Choose Remote Access Type</strong></a></li></ul></li><li><a href="#dynamic-remote-access" class="table-of-contents__link toc-highlight"><strong>Dynamic Remote Access</strong></a><ul><li><a href="#dynamic-remote-access-usage" class="table-of-contents__link toc-highlight">Dynamic Remote Access Usage</a></li><li><a href="#configuring-upnp-applies-to-dynamic---upnp--always-on---upnp" class="table-of-contents__link toc-highlight">Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)</a></li><li><a href="#configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward" class="table-of-contents__link toc-highlight">Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/intro/index.html b/fr/contribute-to-docs/intro/index.html index e5a6ca969..ae5645b0f 100644 --- a/fr/contribute-to-docs/intro/index.html +++ b/fr/contribute-to-docs/intro/index.html @@ -9,15 +9,15 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contributing to Unraid Documentation</span><meta itemprop="position" content="2"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Contributing to Unraid Documentation</h1><p><strong>Contribute to a Docs Page that already Exists</strong> If you want to contribute to an Unraid Docs page that already exists, there is an "Edit this page" button at the bottom of every page.</p><p>Clicking this will take you to github, where you can click on the edit pencil in the far right to fork the repository, make edits on your own branch, and then commit Pull Requests to Main.</p><p>Unraid Docs are built using Docusaurus which uses <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features" target="_blank" rel="noopener noreferrer">Markdown</a>, so please use the proper formatting outlined there for <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#links" target="_blank" rel="noopener noreferrer">links</a>, <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#code-blocks" target="_blank" rel="noopener noreferrer">code blocks</a>, and <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#admonitions" target="_blank" rel="noopener noreferrer">admonitions</a>. </p><p><strong>Creating a New Docs Page</strong></p><p>To create a new Docs page, for example an Unraid Guide, in github, go to <a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides" target="_blank" rel="noopener noreferrer">docs/unraid-os/guides</a> and click "Add file" on the right to add a new Guides page. From there, name your file/guide and ensure it ends with ".md". Also, please ensure filenames are <em>lower case</em> and have <em>dashes separating-any-words</em> (Ex: wake-on-lan.md) Next, add the guide info and styling and then commit your changes. Then, a LimeTech employee will review and merge if everything looks good.</p><p>Thank you in advance for any and all submissions and edits. Making living technical documentation would be impossible without community involvement!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/intro.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/contribute/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Contribute</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/tutorial---basics/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Tutorial - Basics</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/tutorial-basics/congratulations/index.html b/fr/contribute-to-docs/tutorial-basics/congratulations/index.html index 0b6167bb7..daf1eb5cf 100644 --- a/fr/contribute-to-docs/tutorial-basics/congratulations/index.html +++ b/fr/contribute-to-docs/tutorial-basics/congratulations/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Congratulations</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Congratulations</h1><p>You have just learned the <strong>basics of Docusaurus</strong> and made some changes to the <strong>initial template</strong>.</p><p>Docusaurus has <strong>much more to offer</strong>!</p><p>Have <strong>5 more minutes</strong>? Take a look at <strong><a href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/">versioning</a></strong> and <strong><a href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/">i18n</a></strong>.</p><p>Anything <strong>unclear</strong> or <strong>buggy</strong> in this tutorial? <a href="https://github.com/facebook/docusaurus/discussions/4610" target="_blank" rel="noopener noreferrer">Please report it!</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-next">What's next?<a href="#whats-next" class="hash-link" aria-label="Lien direct vers What's next?" title="Lien direct vers What's next?">​</a></h2><ul><li>Read the <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">official documentation</a></li><li>Modify your site configuration with <a href="https://docusaurus.io/docs/api/docusaurus-config" target="_blank" rel="noopener noreferrer"><code>docusaurus.config.js</code></a></li><li>Add navbar and footer items with <a href="https://docusaurus.io/docs/api/themes/configuration" target="_blank" rel="noopener noreferrer"><code>themeConfig</code></a></li><li>Add a custom <a href="https://docusaurus.io/docs/styling-layout" target="_blank" rel="noopener noreferrer">Design and Layout</a></li><li>Add a <a href="https://docusaurus.io/docs/search" target="_blank" rel="noopener noreferrer">search bar</a></li><li>Find inspirations in the <a href="https://docusaurus.io/showcase" target="_blank" rel="noopener noreferrer">Docusaurus showcase</a></li><li>Get involved in the <a href="https://docusaurus.io/community/support" target="_blank" rel="noopener noreferrer">Docusaurus Community</a></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/congratulations.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Markdown Features</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/tutorial---extras/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Tutorial - Extras</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#whats-next" class="table-of-contents__link toc-highlight">What's next?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html b/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html index 2bca39003..0973893ba 100644 --- a/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html +++ b/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Blog Post</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Create a Blog Post</h1><p>Docusaurus creates a <strong>page for each blog post</strong>, but also a <strong>blog index page</strong>, a <strong>tag system</strong>, an <strong>RSS</strong> feed...</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-post">Create your first Post<a href="#create-your-first-post" class="hash-link" aria-label="Lien direct vers Create your first Post" title="Lien direct vers Create your first Post">​</a></h2><p>Create a file at <code>blog/2021-02-28-greetings.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">blog/2021-02-28-greetings.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">slug</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> greetings</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Greetings</span><span class="token front-matter-block front-matter yaml language-yaml tag" style="color:rgb(255, 121, 198)">!</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">authors</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Joel Marcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Co</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml">creator of Docusaurus 1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Sébastien Lorber</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Docusaurus maintainer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//sebastienlorber.com</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/slorber.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">tags</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token front-matter-block front-matter yaml language-yaml">greetings</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Congratulations, you have made your first post!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Feel free to play around and edit this post as much you like.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new blog post is now available at <a href="http://localhost:3000/blog/greetings" target="_blank" rel="noopener noreferrer">http://localhost:3000/blog/greetings</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Create a Document</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Markdown Features</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-post" class="table-of-contents__link toc-highlight">Create your first Post</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/tutorial-basics/create-a-document/index.html b/fr/contribute-to-docs/tutorial-basics/create-a-document/index.html index 6e5f8977c..0ca36fe83 100644 --- a/fr/contribute-to-docs/tutorial-basics/create-a-document/index.html +++ b/fr/contribute-to-docs/tutorial-basics/create-a-document/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Document</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Create a Document</h1><p>Documents are <strong>groups of pages</strong> connected through:</p><ul><li>a <strong>sidebar</strong></li><li><strong>previous/next navigation</strong></li><li><strong>versioning</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-doc">Create your first Doc<a href="#create-your-first-doc" class="hash-link" aria-label="Lien direct vers Create your first Doc" title="Lien direct vers Create your first Doc">​</a></h2><p>Create a Markdown file at <code>docs/hello.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new document is now available at <a href="http://localhost:3000/docs/hello" target="_blank" rel="noopener noreferrer">http://localhost:3000/docs/hello</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-the-sidebar">Configure the Sidebar<a href="#configure-the-sidebar" class="hash-link" aria-label="Lien direct vers Configure the Sidebar" title="Lien direct vers Configure the Sidebar">​</a></h2><p>Docusaurus automatically <strong>creates a sidebar</strong> from the <code>docs</code> folder.</p><p>Add metadata to customize the sidebar label and position:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_label</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml string" style="color:rgb(255, 121, 198)">"Hi!"</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_position</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml number">3</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It is also possible to create your sidebar explicitly in <code>sidebars.js</code>:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">sidebars.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">tutorialSidebar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"intro"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"hello"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"category"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">label</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Tutorial"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"tutorial-basics/create-a-document"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-document.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Create a Page</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Create a Blog Post</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-doc" class="table-of-contents__link toc-highlight">Create your first Doc</a></li><li><a href="#configure-the-sidebar" class="table-of-contents__link toc-highlight">Configure the Sidebar</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/tutorial-basics/create-a-page/index.html b/fr/contribute-to-docs/tutorial-basics/create-a-page/index.html index 23aac7200..f3e73c9e9 100644 --- a/fr/contribute-to-docs/tutorial-basics/create-a-page/index.html +++ b/fr/contribute-to-docs/tutorial-basics/create-a-page/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Page</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Create a Page</h1><p>Add <strong>Markdown or React</strong> files to <code>src/pages</code> to create a <strong>standalone page</strong>:</p><ul><li><code>src/pages/index.js</code> → <code>localhost:3000/</code></li><li><code>src/pages/foo.md</code> → <code>localhost:3000/foo</code></li><li><code>src/pages/foo/bar.js</code> → <code>localhost:3000/foo/bar</code></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-react-page">Create your first React Page<a href="#create-your-first-react-page" class="hash-link" aria-label="Lien direct vers Create your first React Page" title="Lien direct vers Create your first React Page">​</a></h2><p>Create a file at <code>src/pages/my-react-page.js</code>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-react-page.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"react"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">Layout</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"@theme/Layout"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">default</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">MyReactPage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">My React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">This is a React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-react-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-react-page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-markdown-page">Create your first Markdown Page<a href="#create-your-first-markdown-page" class="hash-link" aria-label="Lien direct vers Create your first Markdown Page" title="Lien direct vers Create your first Markdown Page">​</a></h2><p>Create a file at <code>src/pages/my-markdown-page.md</code>:</p><div class="language-mdx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-markdown-page.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-mdx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># My Markdown page</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is a Markdown page</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-markdown-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-markdown-page</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-page.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/tutorial---basics/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Tutorial - Basics</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Create a Document</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-react-page" class="table-of-contents__link toc-highlight">Create your first React Page</a></li><li><a href="#create-your-first-markdown-page" class="table-of-contents__link toc-highlight">Create your first Markdown Page</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/tutorial-basics/markdown-features/index.html b/fr/contribute-to-docs/tutorial-basics/markdown-features/index.html index 63100fcae..7e447910f 100644 --- a/fr/contribute-to-docs/tutorial-basics/markdown-features/index.html +++ b/fr/contribute-to-docs/tutorial-basics/markdown-features/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Markdown Features</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Markdown Features</h1><p>Docusaurus supports <strong><a href="https://daringfireball.net/projects/markdown/syntax" target="_blank" rel="noopener noreferrer">Markdown</a></strong> and a few <strong>additional features</strong>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="front-matter">Front Matter<a href="#front-matter" class="hash-link" aria-label="Lien direct vers Front Matter" title="Lien direct vers Front Matter">​</a></h2><p>Markdown documents have metadata at the top called <a href="https://jekyllrb.com/docs/front-matter/" target="_blank" rel="noopener noreferrer">Front Matter</a>:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">my-doc.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">id: my-doc-id</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">title: My document title</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">description: My document description</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">slug: /my-custom-url</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">## Markdown heading</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Markdown text with [links](./hello.md)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="links">Links<a href="#links" class="hash-link" aria-label="Lien direct vers Links" title="Lien direct vers Links">​</a></h2><p>Regular Markdown links are supported, using url paths or relative file paths.</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">/create-a-page</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">./create-a-page.md</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Result:</strong> Let's see how to <a href="/fr/contribute-to-docs/tutorial-basics/create-a-page/">Create a page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="images">Images<a href="#images" class="hash-link" aria-label="Lien direct vers Images" title="Lien direct vers Images">​</a></h2><p>Regular Markdown images are supported.</p><p>You can use absolute paths to reference images in the static directory (<code>static/img/docusaurus.png</code>):</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">/img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" alt="Docusaurus logo" src="data:image/png;base64,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" width="200" height="200" class="img_ev3q"></p><p>You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">./img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="code-blocks">Code Blocks<a href="#code-blocks" class="hash-link" aria-label="Lien direct vers Code Blocks" title="Lien direct vers Code Blocks">​</a></h2><p>Markdown code blocks are supported with Syntax highlighting.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">```jsx title="src/components/HelloDocusaurus.js"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">function HelloDocusaurus() {</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> return (</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> <h1>Hello, Docusaurus!</h1></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> )</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">```</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/components/HelloDocusaurus.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">HelloDocusaurus</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Hello, Docusaurus!</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="admonitions">Admonitions<a href="#admonitions" class="hash-link" aria-label="Lien direct vers Admonitions" title="Lien direct vers Admonitions">​</a></h2><p>Docusaurus has a special syntax to create admonitions and callouts:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::tip My tip</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Use this awesome feature option</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::danger Take care</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This action is dangerous</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="theme-admonition theme-admonition-tip alert alert--success admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>My tip</div><div class="admonitionContent_S0QG"><p>Use this awesome feature option</p></div></div><div class="theme-admonition theme-admonition-danger alert alert--danger admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Take care</div><div class="admonitionContent_S0QG"><p>This action is dangerous</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="mdx-and-react-components">MDX and React Components<a href="#mdx-and-react-components" class="hash-link" aria-label="Lien direct vers MDX and React Components" title="Lien direct vers MDX and React Components">​</a></h2><p><a href="https://mdxjs.com/" target="_blank" rel="noopener noreferrer">MDX</a> can make your documentation more <strong>interactive</strong> and allows using any <strong>React components inside Markdown</strong>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function maybe-class-name" style="color:rgb(80, 250, 123)">Highlight</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token parameter">children</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token parameter"> color</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=></span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">style</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">backgroundColor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> color</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">borderRadius</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'20px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'#fff'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">padding</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'10px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">cursor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'pointer'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=></span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">alert</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)">You clicked the color </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)"> with label </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">children</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#25c2a0</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Docusaurus green</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#1877F2</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Facebook blue</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is <span style="background-color:#25c2a0;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Docusaurus green</span> !</p><p>This is <span style="background-color:#1877F2;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Facebook blue</span> !</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Create a Blog Post</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Congratulations</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#front-matter" class="table-of-contents__link toc-highlight">Front Matter</a></li><li><a href="#links" class="table-of-contents__link toc-highlight">Links</a></li><li><a href="#images" class="table-of-contents__link toc-highlight">Images</a></li><li><a href="#code-blocks" class="table-of-contents__link toc-highlight">Code Blocks</a></li><li><a href="#admonitions" class="table-of-contents__link toc-highlight">Admonitions</a></li><li><a href="#mdx-and-react-components" class="table-of-contents__link toc-highlight">MDX and React Components</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html b/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html index 8255f290e..c9e43d978 100644 --- a/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html +++ b/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manage Docs Versions</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Manage Docs Versions</h1><p>Docusaurus can manage multiple versions of your docs.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-a-docs-version">Create a docs version<a href="#create-a-docs-version" class="hash-link" aria-label="Lien direct vers Create a docs version" title="Lien direct vers Create a docs version">​</a></h2><p>Release a version 1.0 of your project:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run docusaurus docs:version </span><span class="token number">1.0</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The <code>docs</code> folder is copied into <code>versioned_docs/version-1.0</code> and <code>versions.json</code> is created.</p><p>Your docs now have 2 versions:</p><ul><li><code>1.0</code> at <code>http://localhost:3000/docs/</code> for the version 1.0 docs</li><li><code>current</code> at <code>http://localhost:3000/docs/next/</code> for the <strong>upcoming, unreleased docs</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-version-dropdown">Add a Version Dropdown<a href="#add-a-version-dropdown" class="hash-link" aria-label="Lien direct vers Add a Version Dropdown" title="Lien direct vers Add a Version Dropdown">​</a></h2><p>To navigate seamlessly across versions, add a version dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"docsVersionDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The docs version dropdown appears in your navbar:</p><p><img loading="lazy" alt="Docs Version Dropdown" src="/fr/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="update-an-existing-version">Update an existing version<a href="#update-an-existing-version" class="hash-link" aria-label="Lien direct vers Update an existing version" title="Lien direct vers Update an existing version">​</a></h2><p>It is possible to edit versioned docs in their respective folder:</p><ul><li><code>versioned_docs/version-1.0/hello.md</code> updates <code>http://localhost:3000/docs/hello</code></li><li><code>docs/hello.md</code> updates <code>http://localhost:3000/docs/next/hello</code></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/tutorial---extras/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Tutorial - Extras</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Translate your site</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-a-docs-version" class="table-of-contents__link toc-highlight">Create a docs version</a></li><li><a href="#add-a-version-dropdown" class="table-of-contents__link toc-highlight">Add a Version Dropdown</a></li><li><a href="#update-an-existing-version" class="table-of-contents__link toc-highlight">Update an existing version</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/contribute-to-docs/tutorial-extras/translate-your-site/index.html b/fr/contribute-to-docs/tutorial-extras/translate-your-site/index.html index 469cebe1e..04fbd433a 100644 --- a/fr/contribute-to-docs/tutorial-extras/translate-your-site/index.html +++ b/fr/contribute-to-docs/tutorial-extras/translate-your-site/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Basics' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="Plier/Déplier la catégorie 'Tutorial - Extras' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Translate your site</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Translate your site</h1><p>Let's translate <code>docs/intro.md</code> to French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-i18n">Configure i18n<a href="#configure-i18n" class="hash-link" aria-label="Lien direct vers Configure i18n" title="Lien direct vers Configure i18n">​</a></h2><p>Modify <code>docusaurus.config.js</code> to add support for the <code>fr</code> locale:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">i18n</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">defaultLocale</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">locales</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"fr"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="translate-a-doc">Translate a doc<a href="#translate-a-doc" class="hash-link" aria-label="Lien direct vers Translate a doc" title="Lien direct vers Translate a doc">​</a></h2><p>Copy the <code>docs/intro.md</code> file to the <code>i18n/fr</code> folder:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">mkdir</span><span class="token plain"> -p i18n/fr/docusaurus-plugin-content-docs/current/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">cp</span><span class="token plain"> docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Translate <code>i18n/fr/docusaurus-plugin-content-docs/current/intro.md</code> in French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="start-your-localized-site">Start your localized site<a href="#start-your-localized-site" class="hash-link" aria-label="Lien direct vers Start your localized site" title="Lien direct vers Start your localized site">​</a></h2><p>Start your site on the French locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run start -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Your localized site is accessible at <a href="http://localhost:3000/fr/" target="_blank" rel="noopener noreferrer">http://localhost:3000/fr/</a> and the <code>Getting Started</code> page is translated.</p><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>attention</div><div class="admonitionContent_S0QG"><p>In development, you can only use one locale at a same time.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-locale-dropdown">Add a Locale Dropdown<a href="#add-a-locale-dropdown" class="hash-link" aria-label="Lien direct vers Add a Locale Dropdown" title="Lien direct vers Add a Locale Dropdown">​</a></h2><p>To navigate seamlessly across languages, add a locale dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"localeDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The locale dropdown now appears in your navbar:</p><p><img loading="lazy" alt="Locale Dropdown" src="/fr/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="build-your-localized-site">Build your localized site<a href="#build-your-localized-site" class="hash-link" aria-label="Lien direct vers Build your localized site" title="Lien direct vers Build your localized site">​</a></h2><p>Build your site for a specific locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Or build your site to include all the locales at once:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/translate-your-site.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#configure-i18n" class="table-of-contents__link toc-highlight">Configure i18n</a></li><li><a href="#translate-a-doc" class="table-of-contents__link toc-highlight">Translate a doc</a></li><li><a href="#start-your-localized-site" class="table-of-contents__link toc-highlight">Start your localized site</a></li><li><a href="#add-a-locale-dropdown" class="table-of-contents__link toc-highlight">Add a Locale Dropdown</a></li><li><a href="#build-your-localized-site" class="table-of-contents__link toc-highlight">Build your localized site</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/index.html b/fr/index.html index c9dff0c13..068888cdb 100644 --- a/fr/index.html +++ b/fr/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div id="__docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Home</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Home</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-documentation">Unraid Documentation<a href="#unraid-documentation" class="hash-link" aria-label="Lien direct vers Unraid Documentation" title="Lien direct vers Unraid Documentation">​</a></h2><p>Welcome! Some of the documentation here is still a work in progress, while the old documentation in the <a href="/fr/category/legacy-documentation/">Legacy Documentation section</a> is actively being updated and edited to reflect accurate, up-to-date information.</p><p>If you'd like to contribute to these docs, feel free to open a PR by clicking <em>Edit this page</em> at the bottom of any page, or using the link in the footer. Thank you in advance for helping to keep these docs accurate and living.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="documentation-categories">Documentation Categories<a href="#documentation-categories" class="hash-link" aria-label="Lien direct vers Documentation Categories" title="Lien direct vers Documentation Categories">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-os"><a href="/fr/category/unraid-os/">Unraid OS</a><a href="#unraid-os" class="hash-link" aria-label="Lien direct vers unraid-os" title="Lien direct vers unraid-os">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-connect"><a href="/fr/category/unraid-connect/">Unraid Connect</a><a href="#unraid-connect" class="hash-link" aria-label="Lien direct vers unraid-connect" title="Lien direct vers unraid-connect">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="legacy-documentation"><a href="/fr/category/legacy-documentation/">Legacy Documentation</a><a href="#legacy-documentation" class="hash-link" aria-label="Lien direct vers legacy-documentation" title="Lien direct vers legacy-documentation">​</a></h3></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/docs-home.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/unraid-os/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Unraid OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#unraid-documentation" class="table-of-contents__link toc-highlight">Unraid Documentation</a></li><li><a href="#documentation-categories" class="table-of-contents__link toc-highlight">Documentation Categories</a><ul><li><a href="#unraid-os" class="table-of-contents__link toc-highlight">Unraid OS</a></li><li><a href="#unraid-connect" class="table-of-contents__link toc-highlight">Unraid Connect</a></li><li><a href="#legacy-documentation" class="table-of-contents__link toc-highlight">Legacy Documentation</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/Articles/dual-boot-unraid-and-windows/index.html b/fr/legacy/Articles/dual-boot-unraid-and-windows/index.html index 7ed0b5952..57b343bbf 100644 --- a/fr/legacy/Articles/dual-boot-unraid-and-windows/index.html +++ b/fr/legacy/Articles/dual-boot-unraid-and-windows/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -58,7 +58,7 @@ installing lilo to the MBR.</p><p>When done, edit /etc/lilo.conf to your liking.</p><p>Finally, format the cache partition (partition1) with ReiserFS.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="finish">Finish<a href="#finish" class="hash-link" aria-label="Lien direct vers Finish" title="Lien direct vers Finish">​</a></h2><p>Now start Unraid by booting the flash, and assigning the cache drive.</p><p>You can boot Windows or Linux by changing the BIOS settings, or using the appropriate key at boot time key to get a boot menu, or you can also edit the syslinux config on the flash to give you multi-boot options.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/dual-boot-unraid-and-windows.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/legacy-documentation/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Legacy Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-do-this" class="table-of-contents__link toc-highlight">Why do this?</a></li><li><a href="#what-you-need" class="table-of-contents__link toc-highlight">What you need</a></li><li><a href="#preparation" class="table-of-contents__link toc-highlight">Preparation</a></li><li><a href="#partition-disk" class="table-of-contents__link toc-highlight">Partition Disk</a></li><li><a href="#install-windows" class="table-of-contents__link toc-highlight">Install Windows</a></li><li><a href="#check-partition-order-after-windows-install" class="table-of-contents__link toc-highlight">Check Partition Order After Windows Install</a></li><li><a href="#install-linux" class="table-of-contents__link toc-highlight">Install Linux</a></li><li><a href="#finish" class="table-of-contents__link toc-highlight">Finish</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html b/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html index d4cb0b415..0666f1033 100644 --- a/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html +++ b/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -33,7 +33,7 @@ numbered partition in the list (for recovery).</li><li>Type 'delete partition override' and press enter.</li><li>Right-click the start menu and select 'Disk Management'</li><li>Right-click on the partition you wish to extend and click 'Extend Partition'</li><li>Follow the on-screen prompts to complete the process.</li></ul><p><img loading="lazy" src="/fr/assets/images/Resize_vdisk_3_(extend_partition_in_disk_management)-62c649acdf42616193f2d6c889504ea9.PNG" width="1132" height="896" class="img_ev3q"> <img loading="lazy" src="/fr/assets/images/Resize_vdisk_4_(partition_has_been_extended_in_disk_management)-335d91d19a6c04b5d3e115c4d8149dcb.PNG" width="1131" height="896" class="img_ev3q"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#guide" class="table-of-contents__link toc-highlight">Guide</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/Articles/upgrading-to-unraid-6/index.html b/fr/legacy/Articles/upgrading-to-unraid-6/index.html index 03bf5dd5a..4a63d5dac 100644 --- a/fr/legacy/Articles/upgrading-to-unraid-6/index.html +++ b/fr/legacy/Articles/upgrading-to-unraid-6/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -98,7 +98,7 @@ earlier.</p><h1>From version 5.x or earlier</h1><p>Please see <a href="https://forums.unraid.net/forum/index.php?topic=41061.0" target="_blank" rel="noopener noreferrer">this forum post</a> for information on upgrading.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/upgrading-to-unraid-6.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Parity</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#possible-upgrade-issues" class="table-of-contents__link toc-highlight">Possible upgrade issues</a><ul><li><a href="#the-new-release-does-not-show-up-after-clicking-check-for-updates-button" class="table-of-contents__link toc-highlight">The new release does not show up after clicking <em>Check for Updates</em> button</a></li><li><a href="#my-array--docker-apps-are-taking-a-really-long-time-to-start-after-the-upgrade" class="table-of-contents__link toc-highlight">My array / docker apps are taking a really long time to start after the upgrade</a></li><li><a href="#my-containers-arent-working-right-after-the-upgrade" class="table-of-contents__link toc-highlight">My containers aren't working right after the upgrade</a></li><li><a href="#my-vms-get-an-error-of-cannot-get-interface-mtu" class="table-of-contents__link toc-highlight">My VMs get an error of "cannot get interface MTU..."</a></li><li><a href="#vnc-access-to-my-vms-is-not-working-or-performing-poorly" class="table-of-contents__link toc-highlight">VNC access to my VMs is not working or performing poorly</a></li><li><a href="#my-ovmf-vm-doesnt-boot-correctly" class="table-of-contents__link toc-highlight">My OVMF VM doesn't boot correctly</a></li><li><a href="#trying-to-start-my-vm-gives-a-invalid-machine-type-error" class="table-of-contents__link toc-highlight">Trying to start my VM gives a "Invalid Machine Type" error</a></li><li><a href="#poor-vm-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VM performance after upgrading</a></li><li><a href="#poor-vnc-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VNC performance after upgrading</a></li></ul></li><li><a href="#checking-your-existing-version" class="table-of-contents__link toc-highlight">Checking your existing version</a></li><li><a href="#checking-for-sufficient-free-space" class="table-of-contents__link toc-highlight">Checking for sufficient free space</a></li><li><a href="#checking-your-network-bridge-name" class="table-of-contents__link toc-highlight">Checking your network bridge name</a></li><li><a href="#checking-your-vm-network-bridge-settings" class="table-of-contents__link toc-highlight">Checking your VM network bridge settings</a></li><li><a href="#post-installation-procedures" class="table-of-contents__link toc-highlight">Post installation procedures</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/Parity/index.html b/fr/legacy/FAQ/Parity/index.html index 64706ffb7..2becce20e 100644 --- a/fr/legacy/FAQ/Parity/index.html +++ b/fr/legacy/FAQ/Parity/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ errors, with minimal impact on performance.(Requires Clarification that this is actually used)</p><p>Further discussion: <a href="https://forums.unraid.net/forum/index.php?topic=2634.msg21695#msg21695" target="_blank" rel="noopener noreferrer">1</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/Parity.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Cache Disk</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-parity-works" class="table-of-contents__link toc-highlight">How parity works</a></li><li><a href="#reconstructing-data" class="table-of-contents__link toc-highlight">Reconstructing data</a></li><li><a href="#checking-parity" class="table-of-contents__link toc-highlight">Checking parity</a></li><li><a href="#parity-disk" class="table-of-contents__link toc-highlight">Parity disk</a><ul><li><a href="#size" class="table-of-contents__link toc-highlight">Size</a></li><li><a href="#performance" class="table-of-contents__link toc-highlight">Performance</a></li></ul></li><li><a href="#dual-parity" class="table-of-contents__link toc-highlight">Dual parity</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/cache-disk/index.html b/fr/legacy/FAQ/cache-disk/index.html index 72034a90d..45a301c28 100644 --- a/fr/legacy/FAQ/cache-disk/index.html +++ b/fr/legacy/FAQ/cache-disk/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -134,7 +134,7 @@ you will want a cache drive that is larger than 100 GB. If you attempt a data transfer that is larger than the size of your cache drive, the transfer will fail.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/cache-disk.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Parity</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Checking and fixing file systems</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#adding-a-cache-disk-to-the-array" class="table-of-contents__link toc-highlight">Adding a cache disk to the array</a></li><li><a href="#cache-settings" class="table-of-contents__link toc-highlight">Cache settings</a></li><li><a href="#speed" class="table-of-contents__link toc-highlight">Speed</a><ul><li><a href="#perceived-write-speed-increases" class="table-of-contents__link toc-highlight">Perceived write speed increases</a></li><li><a href="#actual-write-speed-increases" class="table-of-contents__link toc-highlight">Actual write speed increases</a></li></ul></li><li><a href="#the-mover" class="table-of-contents__link toc-highlight">The Mover</a></li><li><a href="#other-uses-for-a-cache-disk" class="table-of-contents__link toc-highlight">Other uses for a cache disk</a><ul><li><a href="#warm-spare" class="table-of-contents__link toc-highlight">Warm spare</a></li><li><a href="#running-other-software-on-top-of-unraid" class="table-of-contents__link toc-highlight">Running other software on top of Unraid</a></li><li><a href="#scratch-space" class="table-of-contents__link toc-highlight">Scratch space</a></li></ul></li><li><a href="#disadvantages-of-a-cache-disk" class="table-of-contents__link toc-highlight">Disadvantages of a cache disk</a><ul><li><a href="#wasted-hdd-and-hdd-slot" class="table-of-contents__link toc-highlight">'Wasted' HDD and HDD slot</a></li><li><a href="#short-term-risk-of-data-loss" class="table-of-contents__link toc-highlight">Short-term risk of data loss</a></li></ul></li><li><a href="#hardware" class="table-of-contents__link toc-highlight">Hardware</a><ul><li><a href="#purpose" class="table-of-contents__link toc-highlight">Purpose</a></li><li><a href="#amount-of-data" class="table-of-contents__link toc-highlight">Amount of data</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/check-disk-filesystems/index.html b/fr/legacy/FAQ/check-disk-filesystems/index.html index d9af97d18..5eb976a64 100644 --- a/fr/legacy/FAQ/check-disk-filesystems/index.html +++ b/fr/legacy/FAQ/check-disk-filesystems/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -575,7 +575,7 @@ recommend you read both, for more details.</li><li><em>You may want to print this out ahead of time.</em></li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"> root@Tower:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">~</span><span class="token comment" style="color:rgb(98, 114, 164)"># reiserfsck --rebuild-sb /dev/md6</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfsck </span><span class="token number">3.6</span><span class="token plain">.19 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2003</span><span class="token plain"> www.namesys.com</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you are using the latest reiserfsprogs and it fails **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** please email bug reports to reiserfs-list@namesys.com, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** providing as much information as possible -- your **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** hardware, kernel, patches, settings, all reiserfsck **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** messages </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including version</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">, the reiserfsck logfile, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** check the syslog </span><span class="token function" style="color:rgb(80, 250, 123)">file</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> any related information. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you would like advice on using this program, support **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** is available </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$25</span><span class="token plain"> at www.namesys.com/support.html. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will check superblock and rebuild it </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> needed</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will put log info to </span><span class="token string" style="color:rgb(255, 121, 198)">'stdout'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to run this program?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">N/Yes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">note need to </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">type</span><span class="token plain"> Yes</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> you </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">:**Yes**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfs_open: the reiserfs superblock cannot be found on</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> /dev/md6.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> what the version of ReiserFS </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> you use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token plain">-4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain">.x</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">>=</span><span class="token number">3.5</span><span class="token plain">.9 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">introduced </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> the middle of </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">if you use linux </span><span class="token number">2.2</span><span class="token plain">, choose this one</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator"><</span><span class="token plain"> </span><span class="token number">3.5</span><span class="token plain">.9 converted to new </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">don</span><span class="token string" style="color:rgb(255, 121, 198)">'t choose if unsure)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token string" style="color:rgb(255, 121, 198)"> (4) < 3.5.9 (this is very old format, don'</span><span class="token plain">t choose </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> unsure</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">X</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">exit</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **1**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Enter block size </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">4096</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **4096**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> No journal device was specified. </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">If journal is not available,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> re-run with </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">--no-journal-available option specified</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is journal default? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">y</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Did you use resizer</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **n**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: no uuid found, a new uuid was generated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">b0894fe9-3850-4d57-b70b-a419cbf3823e</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: You either have a corrupted journal or have just</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> changed the start of the partition with some partition table</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> editor. If you are sure that the start of the partition is ok,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild the journal header.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to rebuild the journal header? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Reiserfs super block </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> block </span><span class="token number">16</span><span class="token plain"> on 0x906 of </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain"> with</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> standard journal</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Count of blocks on the device: </span><span class="token number">97677824</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Number of bitmaps: </span><span class="token number">2981</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocksize: </span><span class="token number">4096</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Free blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">count of blocks - used </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">journal, bitmaps, data,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reserved</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> blocks</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Root block: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Filesystem is NOT clean</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Tree height: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Hash </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> used to </span><span class="token function" style="color:rgb(80, 250, 123)">sort</span><span class="token plain"> names: not </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Objectid map size </span><span class="token number">0</span><span class="token plain">, max </span><span class="token number">972</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Journal parameters:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Device </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Magic </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Size </span><span class="token number">8193</span><span class="token plain"> blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including </span><span class="token number">1</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> journal header</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">first block </span><span class="token number">18</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max transaction length </span><span class="token number">1024</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max batch size </span><span class="token number">900</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max commit age </span><span class="token number">30</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocks reserved by journal: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Fs state field: 0x1:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> some corruptions exist.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> sb_version: </span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> inode generation number: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> UUID: b0894fe9-3850-4d57-b70b-a419cbf3823e</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> LABEL:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Set flags </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> SB:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is this ok ? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It should be quick. When this completes, hopefully successfully, rerun the <strong>reiserfsck <!-- -->-<!-- -->-check</strong> on the drive, and proceed according to the instructions that it gives you.</p><p><em>-<!-- -->-<!-- -->- work in progress <!-- -->-<!-- -->-<!-- -->-</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-disk-filesystems.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Cache Disk</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Check Harddrive Speed</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-this-the-right-page" class="table-of-contents__link toc-highlight">Is this the right page?</a></li><li><a href="#drive-names-and-symbols" class="table-of-contents__link toc-highlight">Drive names and symbols</a></li><li><a href="#which-section" class="table-of-contents__link toc-highlight">Which section?</a></li><li><a href="#checking-and-fixing-drives-in-the-webgui" class="table-of-contents__link toc-highlight">Checking and fixing drives in the webGui</a><ul><li><a href="#preparing-to-test" class="table-of-contents__link toc-highlight">Preparing to test</a></li><li><a href="#running-the-test" class="table-of-contents__link toc-highlight">Running the test</a></li><li><a href="#running-the-repair" class="table-of-contents__link toc-highlight">Running the repair</a><ul><li><a href="#for-reiserfs-drives" class="table-of-contents__link toc-highlight">For ReiserFS drives</a></li><li><a href="#for-xfs-drives" class="table-of-contents__link toc-highlight">For XFS drives</a></li><li><a href="#for-btrfs-drives-and-pools" class="table-of-contents__link toc-highlight">For BTRFS drives and pools</a></li></ul></li><li><a href="#running-the-repair-continued" class="table-of-contents__link toc-highlight">Running the repair (continued)</a></li><li><a href="#after-the-test-and-repair" class="table-of-contents__link toc-highlight">After the test and repair</a></li><li><a href="#additional-comments" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-xfs" class="table-of-contents__link toc-highlight">Drives formatted with XFS</a><ul><li><a href="#preparing-to-run-xfs_repair" class="table-of-contents__link toc-highlight">Preparing to run xfs_repair</a></li><li><a href="#running-xfs_repair" class="table-of-contents__link toc-highlight">Running xfs_repair</a></li><li><a href="#after-running-xfs_repair" class="table-of-contents__link toc-highlight">After running xfs_repair</a></li><li><a href="#additional-comments-1" class="table-of-contents__link toc-highlight">Additional comments</a></li><li><a href="#redoing-a-drive-formatted-with-xfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with XFS</a></li></ul></li><li><a href="#drives-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Drives formatted with BTRFS</a><ul><li><a href="#experimental-btrfs-recovery" class="table-of-contents__link toc-highlight">Experimental BTRFS recovery</a></li><li><a href="#redoing-a-drive-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with BTRFS</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v5-or-later" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v5 or later</a><ul><li><a href="#preparing-to-run-reiserfsck" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-2" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v4" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v4</a><ul><li><a href="#preparing-to-run-reiserfsck-1" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck-1" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck-1" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-3" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#xfs_repair" class="table-of-contents__link toc-highlight">xfs_repair</a></li><li><a href="#btrfs-scrub" class="table-of-contents__link toc-highlight">btrfs scrub</a></li><li><a href="#reiserfsck" class="table-of-contents__link toc-highlight">reiserfsck</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/check-harddrive-speed/index.html b/fr/legacy/FAQ/check-harddrive-speed/index.html index 58227783d..010a01ff9 100644 --- a/fr/legacy/FAQ/check-harddrive-speed/index.html +++ b/fr/legacy/FAQ/check-harddrive-speed/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -26,7 +26,7 @@ thread</a>. The script creates reports and graphs of drive read speeds, at multiple points across the surface of each drive.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-harddrive-speed.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Checking and fixing file systems</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/console/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Console</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/console/index.html b/fr/legacy/FAQ/console/index.html index baa818d82..f740ccbb0 100644 --- a/fr/legacy/FAQ/console/index.html +++ b/fr/legacy/FAQ/console/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -183,7 +183,7 @@ line into <code>/boot/config/go</code> similar to <code>/boot/macros</code>.</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token shebang important">#!/bin/bash</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set dn like Windows dir/o-d, newest files first</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias dn='ls -Aogt --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set ds like dn plus Windows dir/s, newest files first, include all subdirs</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ds='ls -AogtR --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># start tail of syslog with plenty of lines</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias tale='tail -f --lines=200 /var/log/syslog'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># an attempt to emulate the old Norton FF (FileFind)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ff='find . -wholename '/proc' -prune -o -name '"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set screen blanking (if idle for 10 minutes) and monitor to standby (if idle for 30 minutes)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">/bin/setterm -blank </span><span class="token number">10</span><span class="token plain"> -powersave powerdown -powerdown </span><span class="token number">30</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>When these macros are added to <code>/etc/profile</code>, they are available in any console you open, whether by SSH or Telnet or at the physical console on the UnRAID machine.</p><p>UnRAID already includes one macro - <code>v</code> is aliased to <code>ls -l</code>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/console.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Check Harddrive Speed</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#basics-of-console-usage" class="table-of-contents__link toc-highlight">Basics of Console Usage</a></li><li><a href="#console-commands-for-hard-drives" class="table-of-contents__link toc-highlight">Console Commands for Hard Drives</a><ul><li><a href="#hdparm" class="table-of-contents__link toc-highlight">hdparm</a></li><li><a href="#smartctl" class="table-of-contents__link toc-highlight">smartctl</a></li><li><a href="#other-hard-drive-commands" class="table-of-contents__link toc-highlight">other hard drive commands</a></li></ul></li><li><a href="#console-commands-for-networking" class="table-of-contents__link toc-highlight">Console Commands for Networking</a></li><li><a href="#console-commands-for-system-management" class="table-of-contents__link toc-highlight">Console Commands for System Management</a><ul><li><a href="#to-cleanly-stop-the-array-from-the-command-line" class="table-of-contents__link toc-highlight">To cleanly Stop the array from the command line</a></li></ul></li><li><a href="#console-commands-for-files-and-folders" class="table-of-contents__link toc-highlight">Console Commands for Files and Folders</a></li><li><a href="#console-commands-for-system-information" class="table-of-contents__link toc-highlight">Console Commands for System Information</a><ul><li><a href="#cpu-info" class="table-of-contents__link toc-highlight">CPU Info</a></li><li><a href="#memory-info" class="table-of-contents__link toc-highlight">Memory Info</a></li><li><a href="#sensor-info" class="table-of-contents__link toc-highlight">Sensor Info</a></li><li><a href="#network-info" class="table-of-contents__link toc-highlight">Network Info</a></li><li><a href="#other-hardware-info" class="table-of-contents__link toc-highlight">Other Hardware Info</a></li><li><a href="#version-info" class="table-of-contents__link toc-highlight">Version Info</a></li></ul></li><li><a href="#command-macros" class="table-of-contents__link toc-highlight">Command Macros</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/parity-swap-procedure/index.html b/fr/legacy/FAQ/parity-swap-procedure/index.html index 257d9fd8e..3551df365 100644 --- a/fr/legacy/FAQ/parity-swap-procedure/index.html +++ b/fr/legacy/FAQ/parity-swap-procedure/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -113,7 +113,7 @@ starting and stopping the array one time.</p><ol><li>Stop the array.</li><li>Power down the unit.</li><li>Replace the parity disk with the new bigger one.</li><li>Replace the failed disk with your old parity disk.</li><li>Power up the unit.</li><li>Start the array.</li><li>When you start the array, the system will first copy the parity information to the new parity disk, and then reconstruct the contents of the failed disk.</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/parity-swap-procedure.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/console/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Console</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Replacing a Data Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/replacing-a-data-drive/index.html b/fr/legacy/FAQ/replacing-a-data-drive/index.html index 74bb0258d..6fc8f8069 100644 --- a/fr/legacy/FAQ/replacing-a-data-drive/index.html +++ b/fr/legacy/FAQ/replacing-a-data-drive/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -54,7 +54,7 @@ array on-line, start Data-Rebuild, and then expand the file system."</li><li>Hefty disk activity and main page will show lots of reading on "the other" disks and writing on new disk as data is being rebuilt.</li><li>End</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-a-data-drive.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/replacing-multiple-data-drives/index.html b/fr/legacy/FAQ/replacing-multiple-data-drives/index.html index 618c6283c..8240400f7 100644 --- a/fr/legacy/FAQ/replacing-multiple-data-drives/index.html +++ b/fr/legacy/FAQ/replacing-multiple-data-drives/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -61,7 +61,7 @@ slot assignments of the new drive or any other drives at this point.</p></li><li><p>Start array and let parity rebuild.</p></li></ol><p><strong>Important! If any user shares are set to include/exclude specific disks, don't forget to update these settings to reflect the new drive numbering.</strong></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-multiple-data-drives.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Replacing a Data Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#faster-method" class="table-of-contents__link toc-highlight">Faster Method</a></li><li><a href="#safer-method" class="table-of-contents__link toc-highlight">Safer Method</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html b/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html index 80c09cf9b..2c2fc095f 100644 --- a/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html +++ b/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -108,7 +108,7 @@ If wrong, you may have to select different sensors or <a href="http://linux.die.net/man/5/sensors.conf" target="_blank" rel="noopener noreferrer">customize</a> the <strong>sensors.conf</strong> file.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#setting-up-sensing-for-v6" class="table-of-contents__link toc-highlight">Setting up sensing for v6</a></li><li><a href="#setting-up-sensing-for-older-versions" class="table-of-contents__link toc-highlight">Setting up sensing for older versions</a><ul><li><a href="#step-1-open-a-console" class="table-of-contents__link toc-highlight">Step 1: Open a console</a></li><li><a href="#step-2-run-sensors" class="table-of-contents__link toc-highlight">Step 2: Run sensors</a></li><li><a href="#step-3-note-the-devices" class="table-of-contents__link toc-highlight">Step 3: Note the devices</a></li><li><a href="#step-4-note-the-sensors" class="table-of-contents__link toc-highlight">Step 4: Note the sensors</a></li><li><a href="#step-5-create-sensorsconf" class="table-of-contents__link toc-highlight">Step 5: Create sensors.conf</a></li><li><a href="#step-6-prepare-sensors-detect" class="table-of-contents__link toc-highlight">Step 6: Prepare sensors-detect</a></li><li><a href="#step-7-run-sensors-detect" class="table-of-contents__link toc-highlight">Step 7: Run sensors-detect</a></li><li><a href="#step-8-note-the-drivers" class="table-of-contents__link toc-highlight">Step 8: Note the drivers</a></li><li><a href="#step-9-add-modprobes-to-go" class="table-of-contents__link toc-highlight">Step 9: Add modprobes to go</a></li><li><a href="#step-10-add-the-copy-instruction-to-go" class="table-of-contents__link toc-highlight">Step 10: Add the copy instruction to go</a></li><li><a href="#step-11-reboot-and-check" class="table-of-contents__link toc-highlight">Step 11: Reboot and check</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html b/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html index b440cc24c..1a36de67a 100644 --- a/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html +++ b/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -72,7 +72,7 @@ be lost (unless previously backed up elsewhere.)</p><p>10<!-- -->.<!-- --> Edit 'go' file to call script</p><ul><li>I added the following lines to my go script to initiate the sleep script during boot:</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># Execute s3.sh sleep script</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">fromdos </span><span class="token operator"><</span><span class="token plain"> /boot/custom/bin/s3.sh </span><span class="token operator">|</span><span class="token plain"> at now + </span><span class="token number">1</span><span class="token plain"> minute</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ul><li>Make sure you adjust file directory structure as necessary depending upon where you saved your <strong>s3.sh</strong> script.</li></ul><p>11<!-- -->.<!-- --> Re-boot / test</p><p>Good luck!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Shrink Array</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/shrink-array/index.html b/fr/legacy/FAQ/shrink-array/index.html index c94343b38..079c86ed4 100644 --- a/fr/legacy/FAQ/shrink-array/index.html +++ b/fr/legacy/FAQ/shrink-array/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -147,7 +147,7 @@ write" (sometimes known as "turbo write" because it runs significantly faster) with the following command at the command line </em>after<!-- -->*<!-- --> the array is started:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">mdcmd </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"> md_write_method </span><span class="token number">1</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copier le code" title="Copier" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/shrink-array.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Terminal Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#for-unraid-v62-and-later" class="table-of-contents__link toc-highlight">For Unraid v6.2 and later</a><ul><li><a href="#the-remove-drives-then-rebuild-parity-method" class="table-of-contents__link toc-highlight">The "Remove Drives Then Rebuild Parity" Method</a></li><li><a href="#the-clear-drive-then-remove-drive-method" class="table-of-contents__link toc-highlight">The "Clear Drive Then Remove Drive" Method</a></li></ul></li><li><a href="#for-unraid-v60-and-61-and-possibly-50" class="table-of-contents__link toc-highlight">For Unraid v6.0 and 6.1 and possibly 5.0</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/terminal-access/index.html b/fr/legacy/FAQ/terminal-access/index.html index 6df4f8502..c2746fdba 100644 --- a/fr/legacy/FAQ/terminal-access/index.html +++ b/fr/legacy/FAQ/terminal-access/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -124,7 +124,7 @@ server"</a></li><li><a href="/fr/legacy/FAQ/console/">Console</a> - basics of console usage, plus commands for drives, networking, system management, files and folders, and system information</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/terminal-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Shrink Array</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#ssh" class="table-of-contents__link toc-highlight">SSH</a></li><li><a href="#telnet" class="table-of-contents__link toc-highlight">Telnet</a><ul><li><a href="#using-telnet" class="table-of-contents__link toc-highlight">Using Telnet</a></li></ul></li><li><a href="#putty" class="table-of-contents__link toc-highlight">PuTTY</a></li><li><a href="#opening-a-terminal-session-with-the-windows-telnet-tool" class="table-of-contents__link toc-highlight">Opening a terminal session with the Windows Telnet tool</a></li><li><a href="#related-links" class="table-of-contents__link toc-highlight">Related links</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html b/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html index 0614db1a9..409970f15 100644 --- a/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html +++ b/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -41,7 +41,7 @@ that have been created as part of this job. This can be rectified by running the 'New Permissions' job from the tools menu in the web admin after the copy process has completed.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Terminal Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#another-method-using-netcat-and-tar" class="table-of-contents__link toc-highlight">Another method using Netcat and Tar</a></li><li><a href="#unicode-issues" class="table-of-contents__link toc-highlight">Unicode issues</a></li><li><a href="#permission-issues-after-copying" class="table-of-contents__link toc-highlight">Permission issues after copying</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/transferring-files-within-the-unraid-server/index.html b/fr/legacy/FAQ/transferring-files-within-the-unraid-server/index.html index 3458c129e..1f15b99ed 100644 --- a/fr/legacy/FAQ/transferring-files-within-the-unraid-server/index.html +++ b/fr/legacy/FAQ/transferring-files-within-the-unraid-server/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -74,7 +74,7 @@ structure.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="wildcards">Wildcards<a href="#wildcards" class="hash-link" aria-label="Lien direct vers Wildcards" title="Lien direct vers Wildcards">​</a></h3><p>Wildcards are available as well. For example, if you want to copy all of the files from Disk 2 over to Disk 3, use the <strong>mv</strong> command like this:</p><p><code>mv /mnt/disk2/* /mnt/disk3</code></p><p>In this example, all files and folders on Disk 2 would be relocated over to Disk 3 in the exact same folder structure as it was on Disk 2.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Understanding SMART Reports</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#midnight-commander---easy-to-use-gui-tool" class="table-of-contents__link toc-highlight">Midnight Commander - Easy to Use GUI Tool</a></li><li><a href="#move-files-overnight" class="table-of-contents__link toc-highlight">Move Files Overnight</a></li><li><a href="#unix-commands" class="table-of-contents__link toc-highlight">Unix Commands</a><ul><li><a href="#copying-files" class="table-of-contents__link toc-highlight">Copying files</a></li><li><a href="#moving-files" class="table-of-contents__link toc-highlight">Moving files</a></li><li><a href="#quotes" class="table-of-contents__link toc-highlight">Quotes</a></li><li><a href="#wildcards" class="table-of-contents__link toc-highlight">Wildcards</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/understanding-smart-reports/index.html b/fr/legacy/FAQ/understanding-smart-reports/index.html index 4d1b9cfce..5a955c8ac 100644 --- a/fr/legacy/FAQ/understanding-smart-reports/index.html +++ b/fr/legacy/FAQ/understanding-smart-reports/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -217,7 +217,7 @@ MyMain thread; an UnMENU plugin; after installing UnMENU, install this next; has a Smart View that provides color-coded SMART info for all drives</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/understanding-smart-reports.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prologue" class="table-of-contents__link toc-highlight">Prologue</a></li><li><a href="#introduction-to-smart" class="table-of-contents__link toc-highlight">Introduction to SMART</a></li><li><a href="#smart-report-structure" class="table-of-contents__link toc-highlight">SMART report structure</a><ul><li><a href="#general-information-section" class="table-of-contents__link toc-highlight">General information section</a></li><li><a href="#smart-overall-health-test" class="table-of-contents__link toc-highlight">SMART overall health test</a></li><li><a href="#smart-parameters-section" class="table-of-contents__link toc-highlight">SMART parameters section</a></li><li><a href="#smart-attributes-section" class="table-of-contents__link toc-highlight">SMART attributes section</a></li><li><a href="#error-log-section" class="table-of-contents__link toc-highlight">Error Log section</a></li><li><a href="#test-results-section" class="table-of-contents__link toc-highlight">Test results section</a></li></ul></li><li><a href="#table-of-attributes" class="table-of-contents__link toc-highlight">Table of attributes</a><ul><li><a href="#1-raw_read_error_rate" class="table-of-contents__link toc-highlight">1 Raw_Read_Error_Rate</a></li><li><a href="#3-spin_up_time" class="table-of-contents__link toc-highlight">3 Spin_Up_Time</a></li><li><a href="#4-start_stop_count" class="table-of-contents__link toc-highlight">4 Start_Stop_Count</a></li><li><a href="#5-reallocated_sector_ct" class="table-of-contents__link toc-highlight">5 Reallocated_Sector_Ct</a></li><li><a href="#7-seek_error_rate" class="table-of-contents__link toc-highlight">7 Seek_Error_Rate</a></li><li><a href="#9-power_on_hours" class="table-of-contents__link toc-highlight">9 Power_On_Hours</a></li></ul></li><li><a href="#additional-info" class="table-of-contents__link toc-highlight">Additional info</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/legacy/FAQ/usb-flash-drive-preparation/index.html b/fr/legacy/FAQ/usb-flash-drive-preparation/index.html index 8566b44e8..f981b20e0 100644 --- a/fr/legacy/FAQ/usb-flash-drive-preparation/index.html +++ b/fr/legacy/FAQ/usb-flash-drive-preparation/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ flash drive, check <a href="http://www.weethet.nl/english/hardware_bootfromusbstick.php" target="_blank" rel="noopener noreferrer">here</a>, near the bottom of the page. Also see -<a href="/fr/unraid-os/manual/getting-started.md/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="Lien direct vers If the Flash will not boot, read over the following tips" title="Lien direct vers If the Flash will not boot, read over the following tips">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about +<a href="/fr/unraid-os/manual/getting-started/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="Lien direct vers If the Flash will not boot, read over the following tips" title="Lien direct vers If the Flash will not boot, read over the following tips">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about the geometry or configuration of the USB flash drive. Some combinations of motherboard, BIOS, and flash drive do not work, or only work after more advanced 'modifications'. The following tips are what users have @@ -165,7 +165,7 @@ instructions, using Ubuntu or similar, can be found here: <a href="http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/" target="_blank" rel="noopener noreferrer">http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/</a>.</p></li><li><p>And last of all, try upgrading the BIOS of your motherboard. A later BIOS may have better support for booting from USB.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Understanding SMART Reports</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/contribute/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Contribute</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#usb-flash-drives" class="table-of-contents__link toc-highlight">USB Flash Drives</a></li><li><a href="#instructions" class="table-of-contents__link toc-highlight">Instructions</a><ul><li><a href="#windows-xp" class="table-of-contents__link toc-highlight">Windows XP</a></li><li><a href="#windows-vista-and-windows-7" class="table-of-contents__link toc-highlight">Windows Vista and Windows 7</a></li><li><a href="#macos-x" class="table-of-contents__link toc-highlight">MacOS X</a></li></ul></li><li><a href="#booting-unraid-server" class="table-of-contents__link toc-highlight">Booting Unraid Server</a></li><li><a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="table-of-contents__link toc-highlight">If the Flash will not boot, read over the following tips</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/search/index.html b/fr/search/index.html index 5b3b05713..fcc349166 100644 --- a/fr/search/index.html +++ b/fr/search/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/search/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><h1>Rechercher dans la documentation</h1><form class="row"><div class="col searchQueryColumn_RTkw col--12"><input type="search" name="q" class="searchQueryInput_u2C7" placeholder="Tapez votre recherche ici" aria-label="Chercher" autocomplete="off" autofocus=""></div></form><div class="row"><div class="col col--8 searchResultsColumn_JPFH"></div><div class="col col--4 text--right searchLogoColumn_rJIA"><a target="_blank" rel="noopener noreferrer" href="https://www.algolia.com/" aria-label="Recherche par Algolia"><svg viewBox="0 0 168 24" class="algoliaLogo_rT1R"><g fill="none"><path class="algoliaLogoPathFill_WdUC" d="M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"></path><path fill="#5468FF" d="M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"></path><path fill="white" d="M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"></path></g></svg></a></div></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/sitemap.xml b/fr/sitemap.xml index 5e7a8048b..0b5a81158 100644 --- a/fr/sitemap.xml +++ b/fr/sitemap.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/fr/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/fr/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/security/data-encryption/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/security/flash-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/security/good-practices/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/security/secure-webgui-ssl/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/security/vpn/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/shares/create-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/shares/delete-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/shares/disk-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/shares/network-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/shares/user-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/fr/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file diff --git a/fr/unraid-os/faq/licensing-faq/index.html b/fr/unraid-os/faq/licensing-faq/index.html index e8e87b351..799449a32 100644 --- a/fr/unraid-os/faq/licensing-faq/index.html +++ b/fr/unraid-os/faq/licensing-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -20,7 +20,7 @@ corner of the page.</p><p>You can also purchase a <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">license activation code directly from our website</a> and redeem the code for a license later when your server is up and running. The activation code will be on -your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="Lien direct vers How to Redeem a License Activation Code" title="Lien direct vers How to Redeem a License Activation Code">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/fr/unraid-os/manual/getting-started.md/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) +your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="Lien direct vers How to Redeem a License Activation Code" title="Lien direct vers How to Redeem a License Activation Code">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/fr/unraid-os/manual/getting-started/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) For Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key." Select the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile. If you have any issues or questions with the above, there is also a walk through video: <a href="https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2" target="_blank" rel="noopener noreferrer">Activation Code Instructional Video</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-upgrade-my-unraid-license">How do I Upgrade my Unraid License?<a href="#how-do-i-upgrade-my-unraid-license" class="hash-link" aria-label="Lien direct vers How do I Upgrade my Unraid License?" title="Lien direct vers How do I Upgrade my Unraid License?">​</a></h2><p>If you want or need to upgrade your license to a higher tier, upgrades @@ -76,7 +76,7 @@ to them. There will also be an invoice download link upon completion of the checkout.</p><p>For bulk OEM/reseller pricing of 10 licenses or more, <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">please contact us</a>!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/faq/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">FAQ</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates" class="table-of-contents__link toc-highlight">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</a></li><li><a href="#how-do-i-purchase-unraid" class="table-of-contents__link toc-highlight">How do I Purchase Unraid?</a></li><li><a href="#how-to-redeem-a-license-activation-code" class="table-of-contents__link toc-highlight">How to Redeem a License Activation Code</a></li><li><a href="#how-do-i-upgrade-my-unraid-license" class="table-of-contents__link toc-highlight">How do I Upgrade my Unraid License?</a></li><li><a href="#what-does-unlimited-mean-for-trial-and-pro-licenses" class="table-of-contents__link toc-highlight">What does "Unlimited" mean for trial and Pro licenses?</a></li><li><a href="#what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license" class="table-of-contents__link toc-highlight">What Happens if my USB Fails? Do I Have to Repurchase a License?</a></li><li><a href="#how-do-i-manually-install-my-license-keyfile-to-my-usb-flash" class="table-of-contents__link toc-highlight">How do I Manually Install my License keyfile to my USB Flash?</a></li><li><a href="#im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do" class="table-of-contents__link toc-highlight">I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?</a></li><li><a href="#how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have" class="table-of-contents__link toc-highlight">How do I determine what registration type (Basic, Plus, or Pro) I have?</a></li><li><a href="#unraid-os-trial" class="table-of-contents__link toc-highlight">Unraid OS Trial</a><ul><li><a href="#can-i-transfer-my-trial-key-to-a-new-flash-device" class="table-of-contents__link toc-highlight">Can I Transfer my Trial Key to a New Flash Device?</a></li><li><a href="#how-do-i-extend-my-unraid-trial" class="table-of-contents__link toc-highlight">How Do I Extend My Unraid Trial?</a></li></ul></li><li><a href="#im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that" class="table-of-contents__link toc-highlight">I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/faq/os-faq/index.html b/fr/unraid-os/faq/os-faq/index.html index 7adf71ecd..5a8545faa 100644 --- a/fr/unraid-os/faq/os-faq/index.html +++ b/fr/unraid-os/faq/os-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -43,12 +43,7 @@ able to simply re-assign them all and start the array.</p><p>You may need to reconfigure your shares, users, and other system settings, but your data should be intact.</p><p>If you cannot remember your drive assignments, <a href="https://forums.unraid.net/forum/55-general-support/" target="_blank" rel="noopener noreferrer">please post on the forum for further assistance (under General -Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="Lien direct vers What Should I do if I have Forgotten my Root Password?" title="Lien direct vers What Should I do if I have Forgotten my Root Password?">​</a></h2><p>To reset your <a href="/fr/unraid-os/manual/getting-started.md/#connecting-to-the-unraid-webgui">root -password</a>:</p><ol><li>Shutdown your server.</li><li>Plug your USB flash into a laptop or another computer.</li><li>Open the USB folder and delete the files "config/shadow" and -"config/smbpasswd". <em>(DO NOT delete "config/passwd).</em> This will -reset all user passwords, including the root user to blank.</li><li>Now, safely eject your USB and reboot it on your Unraid server and -you’re in. You can then set a new password in the Users tab of the -Unraid webgui.</li></ol><p><em>Important: this process only works for user passwords. If you encrypt +Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="Lien direct vers What Should I do if I have Forgotten my Root Password?" title="Lien direct vers What Should I do if I have Forgotten my Root Password?">​</a></h2><p>See <a href="/fr/unraid-os/manual/troubleshooting/#lost-root-password">Lost Root Password</a></p><p><em>Important: this process only works for user passwords. If you encrypt your drives and forget this password, unfortunately you are hosed. There is no way for Lime Technology or anyone to recover this password. Please remember it or write it down in a secure, locked place!</em></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?<a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="hash-link" aria-label="Lien direct vers How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?" title="Lien direct vers How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?">​</a></h2><ol><li>Ensure there is no data on the system that you want or need.</li><li>Stop the array and shut down the server.</li><li>Remove the USB flash device.</li><li>Using a Windows or Mac computer, reformat the flash using the USB @@ -114,7 +109,7 @@ each time to perform the swap and rebuilds. This will ensure the devices are not written during the process. At the end of the process, the original storage device should be intact.</p><p>Also highly recommend downloading flash backup: Main/Flash/Flash Backup</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Licensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Redeem License Activation Code</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#i-need-help-with-a-build--system-configuration-where-do-i-go" class="table-of-contents__link toc-highlight">I Need Help with a Build / System Configuration. Where do I go?</a></li><li><a href="#does-unraid-support-hardware-based-raid-controllers" class="table-of-contents__link toc-highlight">Does Unraid Support Hardware-based RAID Controllers?</a></li><li><a href="#can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms" class="table-of-contents__link toc-highlight">Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?</a></li><li><a href="#my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration" class="table-of-contents__link toc-highlight">My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?</a></li><li><a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="table-of-contents__link toc-highlight">What Should I do if I have Forgotten my Root Password?</a></li><li><a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="table-of-contents__link toc-highlight">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?</a></li><li><a href="#whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do" class="table-of-contents__link toc-highlight">Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?</a></li><li><a href="#how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device" class="table-of-contents__link toc-highlight">How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?</a></li><li><a href="#whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports" class="table-of-contents__link toc-highlight">What's the best way to add more storage to a system above what the built-in controller supports?</a></li><li><a href="#does-unraid-support-various-raid-types-such-as-raid15610" class="table-of-contents__link toc-highlight">Does Unraid support various RAID types such as RAID1/5/6/10?</a></li><li><a href="#my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support" class="table-of-contents__link toc-highlight">My system is crashing but my logs don't contain the event. What do I do to obtain support?</a></li><li><a href="#is-there-any-way-to-disable-the-br0-bridge" class="table-of-contents__link toc-highlight">Is there any way to disable the br0 bridge?</a></li><li><a href="#how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method" class="table-of-contents__link toc-highlight">How do I enable UEFI boot mode if I configured my flash device using the manual method?</a></li><li><a href="#im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine" class="table-of-contents__link toc-highlight">I'm having problems passing through my RTX-class GPU to a virtual machine</a></li><li><a href="#does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them" class="table-of-contents__link toc-highlight">Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?</a></li><li><a href="#i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that" class="table-of-contents__link toc-highlight">I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/faq/redeem-license-activation-code/index.html b/fr/unraid-os/faq/redeem-license-activation-code/index.html index 7cad90271..3c0848640 100644 --- a/fr/unraid-os/faq/redeem-license-activation-code/index.html +++ b/fr/unraid-os/faq/redeem-license-activation-code/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/faq/redeem-license-activation-code/">Redeem License Activation Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/faq/"><span itemprop="name">FAQ</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Redeem License Activation Code</span><meta itemprop="position" content="3"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Redeem License Activation Code</h1><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website</a>. Your unique activation code will be on your purchase receipt.</p><p>Next, follow our <a href="/fr/unraid-os/faq/manual/getting-started.md/">Getting Started</a> guide to set up an Unraid server.</p><p>Once your server is up and running:</p><ol><li>Login to your Unraid server's webgui. (<a href="http://tower" target="_blank" rel="noopener noreferrer">http://tower</a> or +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/faq/redeem-license-activation-code/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/faq/redeem-license-activation-code/">Redeem License Activation Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/faq/"><span itemprop="name">FAQ</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Redeem License Activation Code</span><meta itemprop="position" content="3"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Redeem License Activation Code</h1><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website</a>. Your unique activation code will be on your purchase receipt.</p><p>Next, follow our <a href="/fr/unraid-os/manual/getting-started/">Getting Started</a> guide to set up an Unraid server.</p><p>Once your server is up and running:</p><ol><li>Login to your Unraid server's webgui. (<a href="http://tower" target="_blank" rel="noopener noreferrer">http://tower</a> or <a href="http://tower.local" target="_blank" rel="noopener noreferrer">http://tower.local</a> from Mac by default)</li><li>For Unraid 6.10 and newer, Sign in to your Unraid.net account (or <a href="https://account.unraid.net/" target="_blank" rel="noopener noreferrer">create one</a>) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to @@ -27,7 +27,7 @@ Codes are one-time use for generating your Unraid license keyfile.</em></li></ol><p>If you have any issues or questions with the above, there is also a walk through video: <a href="https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2" target="_blank" rel="noopener noreferrer">Activation Code Instructional Video</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/redeem-license-activation-code.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Unraid Account</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/faq/unraid-account/index.html b/fr/unraid-os/faq/unraid-account/index.html index 557f7c686..fb824c74b 100644 --- a/fr/unraid-os/faq/unraid-account/index.html +++ b/fr/unraid-os/faq/unraid-account/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -21,7 +21,7 @@ <a href="/fr/connect/about/">Unraid Connect</a>. This account is <em>not the same</em> as your server's root password that you use to login to the Unraid webgui.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/unraid-account.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Redeem License Activation Code</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/guides/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Guides</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-an-unraidnet-account" class="table-of-contents__link toc-highlight">What is an Unraid.net Account?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/guides/configuring-time-machine/index.html b/fr/unraid-os/guides/configuring-time-machine/index.html index 64418bc49..9c1f2e858 100644 --- a/fr/unraid-os/guides/configuring-time-machine/index.html +++ b/fr/unraid-os/guides/configuring-time-machine/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -59,7 +59,7 @@ there, simply follow the instructions above!</p><p>For more info on Time Machine shares, be sure to also check out Space Invader One's excellent video on <a href="https://www.youtube.com/watch?v=5J955nNIdo0&feature=youtu.be" target="_blank" rel="noopener noreferrer">Unraid Shares and MacOS!</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/configuring-time-machine.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/guides/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Guides</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#guide-setting-up-a-time-machine-share-on-your-unraid-server" class="table-of-contents__link toc-highlight">Guide: Setting up a Time Machine Share on your Unraid Server</a></li><li><a href="#create-a-time-machine-backup-on-your-unraid-server" class="table-of-contents__link toc-highlight">Create a Time Machine Backup on your Unraid Server</a></li><li><a href="#unraid-and-time-machine-setup" class="table-of-contents__link toc-highlight">Unraid and Time Machine Setup</a></li><li><a href="#creating-multiple-time-machine-shares-for-different-peoplemacs" class="table-of-contents__link toc-highlight">Creating Multiple Time Machine Shares for Different People/Macs</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/guides/wol-setup-for-unraid/index.html b/fr/unraid-os/guides/wol-setup-for-unraid/index.html index 5b61e481c..2abe7c1c3 100644 --- a/fr/unraid-os/guides/wol-setup-for-unraid/index.html +++ b/fr/unraid-os/guides/wol-setup-for-unraid/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/guides/"><span itemprop="name">Guides</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">How To Setup Wake On LAN (WOL) for UNRAID</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>How To Setup Wake On LAN (WOL) for UNRAID</h1><p>(assuming onboard NIC and WOL activated in motherboard's BIOS)</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="put-to-sleep">Put to sleep<a href="#put-to-sleep" class="hash-link" aria-label="Lien direct vers Put to sleep" title="Lien direct vers Put to sleep">​</a></h2><ol><li>Webterminal or SSH into server</li><li>Type <code>ifconfig</code> and note IP-address and MAC-Address (ether) of used NIC</li><li>Type <code>ethtool -s eth0 wol g</code></li><li>Type <code>echo -n mem > /sys/power/state</code></li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wake-up-using">Wake up using<a href="#wake-up-using" class="hash-link" aria-label="Lien direct vers Wake up using" title="Lien direct vers Wake up using">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="macos--linux--windows">MacOS / Linux / Windows<a href="#macos--linux--windows" class="hash-link" aria-label="Lien direct vers MacOS / Linux / Windows" title="Lien direct vers MacOS / Linux / Windows">​</a></h3><ol><li>Download "MiniWOL2" from <a href="https://www.tweaking4all.com/home-theatre/miniwol2/" target="_blank" rel="noopener noreferrer">https://www.tweaking4all.com/home-theatre/miniwol2/</a> and install</li><li>Click miniicon, push "Add" button and name the device to wake (Alias in Menu)</li><li>Set "IPv4 Address" (manually or select from ARP List) and "MAC-Address" (manually or click on 'detect') in appropriate fields</li><li>Set "Broadcast" 255.255.255.255</li><li>Push "Test" to wake-up device (needs to be in sleep mode: see above)</li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="windows-alternative">Windows: (ALTERNATIVE)<a href="#windows-alternative" class="hash-link" aria-label="Lien direct vers Windows: (ALTERNATIVE)" title="Lien direct vers Windows: (ALTERNATIVE)">​</a></h3><ol><li>Download "wolcmd.exe" from <a href="https://www.depicus.com/wake-on-lan/wake-on-lan-cmd" target="_blank" rel="noopener noreferrer">https://www.depicus.com/wake-on-lan/wake-on-lan-cmd</a> and unpack</li><li>Open command line prompt and cd to dowload directory</li><li>Type <code>wolcmd.exe <ether> <ip-dest> 255.255.255.255</code></li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="linux-alternative">Linux: (ALTERNATIVE)<a href="#linux-alternative" class="hash-link" aria-label="Lien direct vers Linux: (ALTERNATIVE)" title="Lien direct vers Linux: (ALTERNATIVE)">​</a></h3><ol><li>Type <code>wakeonlan <MAC-Address></code> OR</li><li>Type <code>wol <MAC-Address></code></li></ol><p>For Guide assistance, see: <a href="https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/" target="_blank" rel="noopener noreferrer">https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/wol-setup-for-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Apple Time Machine</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/manual/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Manual</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#put-to-sleep" class="table-of-contents__link toc-highlight">Put to sleep</a></li><li><a href="#wake-up-using" class="table-of-contents__link toc-highlight">Wake up using</a><ul><li><a href="#macos--linux--windows" class="table-of-contents__link toc-highlight">MacOS / Linux / Windows</a></li><li><a href="#windows-alternative" class="table-of-contents__link toc-highlight">Windows: (ALTERNATIVE)</a></li><li><a href="#linux-alternative" class="table-of-contents__link toc-highlight">Linux: (ALTERNATIVE)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/additional-settings/index.html b/fr/unraid-os/manual/additional-settings/index.html index 3ad9f1c89..f99086e62 100644 --- a/fr/unraid-os/manual/additional-settings/index.html +++ b/fr/unraid-os/manual/additional-settings/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to further refine your setup by customizing your IP address, hostname, disk tunables, and other settings. This section goes over the various settings you can configure from the Unraid webGui. All settings controls @@ -65,7 +65,7 @@ workgroup, or even join an active directory domain.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="ftp-file-transfer-protocol">FTP (File Transfer Protocol)<a href="#ftp-file-transfer-protocol" class="hash-link" aria-label="Lien direct vers FTP (File Transfer Protocol)" title="Lien direct vers FTP (File Transfer Protocol)">​</a></h2><p>Users can connect via FTP if they are added to the <strong>FTP user(s)</strong> field on this page. If no users are added, the FTP service will not be started.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="syslog">Syslog<a href="#syslog" class="hash-link" aria-label="Lien direct vers Syslog" title="Lien direct vers Syslog">​</a></h2><p>Users can set up logging of the syslog to permanent storage</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wireguard">WireGuard<a href="#wireguard" class="hash-link" aria-label="Lien direct vers WireGuard" title="Lien direct vers WireGuard">​</a></h2><p>WireGuard VPN Server</p><p>Users can set up a VPN connection using -<a href="/fr/unraid-os/manual/security/#wireguard%22">WireGuard</a> for secure connections +<a href="/fr/unraid-os/manual/additional-settings/security.md/#wireguard%22">WireGuard</a> for secure connections to/from the internet</p><p><a href="https://www.wireguard.com/" target="_blank" rel="noopener noreferrer">"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="confirmations">Confirmations<a href="#confirmations" class="hash-link" aria-label="Lien direct vers Confirmations" title="Lien direct vers Confirmations">​</a></h2><p>From here, you can disable the need for confirmations to perform various tasks.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="display-settings">Display Settings<a href="#display-settings" class="hash-link" aria-label="Lien direct vers Display Settings" title="Lien direct vers Display Settings">​</a></h2><p>Customize the appearance of the Unraid webGui from this page. This includes adjusting the date and time format, number format, toggles for @@ -121,7 +121,7 @@ <strong>Scheduler</strong> settings page of the Unraid GUI. Typically they are related to enhancing/tuning the <strong>Parity Check</strong> or <strong>Mover</strong> functionality although this is not mandated.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Troubleshooting</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Changing the Flash Device</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#cpu-isolation" class="table-of-contents__link toc-highlight">CPU Isolation</a></li><li><a href="#date--time" class="table-of-contents__link toc-highlight">Date & Time</a></li><li><a href="#disk-settings" class="table-of-contents__link toc-highlight">Disk Settings</a></li><li><a href="#docker" class="table-of-contents__link toc-highlight">Docker</a></li><li><a href="#identification" class="table-of-contents__link toc-highlight">Identification</a></li><li><a href="#network-settings" class="table-of-contents__link toc-highlight">Network Settings</a></li><li><a href="#global-share-settings" class="table-of-contents__link toc-highlight">Global Share Settings</a></li><li><a href="#ups-settings" class="table-of-contents__link toc-highlight">UPS Settings</a></li><li><a href="#vm-manager" class="table-of-contents__link toc-highlight">VM Manager</a></li><li><a href="#afp-apple-file-protocol" class="table-of-contents__link toc-highlight">AFP (Apple File Protocol)</a></li><li><a href="#nfs-network-file-system" class="table-of-contents__link toc-highlight">NFS (Network File System)</a></li><li><a href="#smb-server-message-block" class="table-of-contents__link toc-highlight">SMB (Server Message Block)</a></li><li><a href="#ftp-file-transfer-protocol" class="table-of-contents__link toc-highlight">FTP (File Transfer Protocol)</a></li><li><a href="#syslog" class="table-of-contents__link toc-highlight">Syslog</a></li><li><a href="#wireguard" class="table-of-contents__link toc-highlight">WireGuard</a></li><li><a href="#confirmations" class="table-of-contents__link toc-highlight">Confirmations</a></li><li><a href="#display-settings" class="table-of-contents__link toc-highlight">Display Settings</a></li><li><a href="#notifications-settings" class="table-of-contents__link toc-highlight">Notifications Settings</a></li><li><a href="#scheduler" class="table-of-contents__link toc-highlight">Scheduler</a><ul><li><a href="#parity-checks-read-checks" class="table-of-contents__link toc-highlight">Parity Checks (Read Checks)</a><ul><li><a href="#notes" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#mover" class="table-of-contents__link toc-highlight">Mover</a><ul><li><a href="#notes-1" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#other" class="table-of-contents__link toc-highlight">Other</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/applications/index.html b/fr/unraid-os/manual/applications/index.html index 08d55eb97..a91c4e2bf 100644 --- a/fr/unraid-os/manual/applications/index.html +++ b/fr/unraid-os/manual/applications/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or extending the base capabilities. One of the great strengths of Unraid is the ability for it to easily be made to function as more than a basic NAS system.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Lien direct vers Overview" title="Lien direct vers Overview">​</a></h2><p>A number of mechanisms are provided by which the capability of an Unraid @@ -236,8 +236,8 @@ Unraid. The port to be used for such clients is displayed in the Unraid GUI on the VM tab when a VM is running. Using such an alternative client can work in cases where the NoVNC client does -not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/multi-language/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Multi-Language Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/security/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Security</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/changing-the-flash-device/index.html b/fr/unraid-os/manual/changing-the-flash-device/index.html index 5142e71ef..7616e0eff 100644 --- a/fr/unraid-os/manual/changing-the-flash-device/index.html +++ b/fr/unraid-os/manual/changing-the-flash-device/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a PC or Mac, you should use the <a href="https://unraid.net/download" target="_blank" rel="noopener noreferrer">USB Flash Creator tool</a> for the easiest and most streamlined experience.</p><p>Alternatively, if you are using a Linux system or if the USB Flash @@ -147,7 +147,7 @@ include/exclude then you will need to look at the contents of the individual data drives to make sure these are as you want them (and correct them if not).</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/changing-the-flash-device.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/additional-settings/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Additional Settings</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/category/getting-started/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Getting Started</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-replace-your-usb-flash-boot-device" class="table-of-contents__link toc-highlight">Why replace your USB Flash boot device?</a></li><li><a href="#what-if-i-cant-backup-my-device" class="table-of-contents__link toc-highlight">What if I can't backup my device?</a></li><li><a href="#changing-a-flash-device-before-purchasing" class="table-of-contents__link toc-highlight">Changing a Flash Device Before Purchasing</a></li><li><a href="#using-the-flash-creator" class="table-of-contents__link toc-highlight">Using the Flash Creator</a></li><li><a href="#manual-method" class="table-of-contents__link toc-highlight">Manual Method</a></li><li><a href="#notes-about-replacing-your-registration-key" class="table-of-contents__link toc-highlight">Notes About Replacing your Registration Key</a></li><li><a href="#warning-on-sandisk-brand-usbs" class="table-of-contents__link toc-highlight">Warning on Sandisk Brand USBs</a></li><li><a href="#what-to-do-if-you-have-no-backup-and-do-not-know-your-disk-assignments" class="table-of-contents__link toc-highlight">What to do if you have no backup and do not know your disk assignments</a><ul><li><a href="#option-1" class="table-of-contents__link toc-highlight">Option 1</a></li><li><a href="#option-2-if-you-have-the-unassigned-devices-plugin-installed" class="table-of-contents__link toc-highlight">Option 2 If you have the Unassigned Devices plugin installed</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/docker-management/index.html b/fr/unraid-os/manual/docker-management/index.html index 6928af640..2ebaf2c8b 100644 --- a/fr/unraid-os/manual/docker-management/index.html +++ b/fr/unraid-os/manual/docker-management/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application with its own isolated operating Linux environment, isolating compatibility or coexistence conflicts with other applications. If you want more information on docker and its underlying technology than is @@ -246,8 +246,8 @@ useful for testing out alternate versions before upgrading.</li><li>Click the <strong>Advanced View</strong> toggle on the top right when viewing the Docker page or adding applications to see additional configuration options.</li><li>Learn more about Docker containers from our <a href="https://forums.unraid.net/forum/47-docker-containers/" target="_blank" rel="noopener noreferrer">helpful user -community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Shares</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/storage-management/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Storage Management</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/getting-started/index.html b/fr/unraid-os/manual/getting-started/index.html index 584c688ec..0a4792183 100644 --- a/fr/unraid-os/manual/getting-started/index.html +++ b/fr/unraid-os/manual/getting-started/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, boot the system, and configure your first array. The entire process should take less than 15 minutes.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Lien direct vers Prerequisites" title="Lien direct vers Prerequisites">​</a></h2><p>Before we begin:</p><ul><li>You should have your server assembled and connected via power and Ethernet.</li><li>You should have a monitor and keyboard attached for the initial @@ -113,7 +113,7 @@ field.</p><p>It is <strong>strongly</strong> recommended that you make use of this feature as the information available via that route is likely to be more extensive and up-to-date than any documentation.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="security-best-practices">Security Best Practices<a href="#security-best-practices" class="hash-link" aria-label="Lien direct vers Security Best Practices" title="Lien direct vers Security Best Practices">​</a></h3><p>Your Unraid server is likely to end up containing data that is valuable -to you so it can be a good idea to review the <a href="/fr/unraid-os/manual/security/">Security Good +to you so it can be a good idea to review the <a href="/fr/unraid-os/manual/security.md/">Security Good Practices</a> part of the documentation to ensure you are not doing something that may leave your system open to attack while leaving your valuable data at risk.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="advanced-bios-configuration-guide">Advanced BIOS Configuration Guide<a href="#advanced-bios-configuration-guide" class="hash-link" aria-label="Lien direct vers Advanced BIOS Configuration Guide" title="Lien direct vers Advanced BIOS Configuration Guide">​</a></h2><p><img loading="lazy" src="/fr/assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg" width="300" height="187" class="img_ev3q"> @@ -207,7 +207,7 @@ can click for a 15 day extension. You can do this a total of two times before you must decide if you would like to purchase Unraid or not.</p><p><em>Note: You cannot change the USB flash device for Unraid Trials if you wish to continue where you left off.</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/category/getting-started/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/getting-started/manual-install-method/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Manual Install Method</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#quick-install-guide" class="table-of-contents__link toc-highlight">Quick Install Guide</a></li><li><a href="#initial-setup" class="table-of-contents__link toc-highlight">Initial Setup</a><ul><li><a href="#connecting-to-the-unraid-webgui" class="table-of-contents__link toc-highlight">Connecting to the Unraid webGui</a></li></ul></li><li><a href="#setting-a-root-password" class="table-of-contents__link toc-highlight">Setting a Root Password</a><ul><li><a href="#registering-and-installing-your-key" class="table-of-contents__link toc-highlight">Registering and Installing Your Key</a></li></ul></li><li><a href="#utilizing-unraid-connect" class="table-of-contents__link toc-highlight">Utilizing Unraid Connect</a></li><li><a href="#assigning-devices-to-the-array-and-pools" class="table-of-contents__link toc-highlight">Assigning Devices to the Array and Pool(s)</a></li><li><a href="#starting-the-array-and-formatting-your-devices" class="table-of-contents__link toc-highlight">Starting the Array and Formatting Your Devices</a></li><li><a href="#stopping-array-shutting-down-and-rebooting" class="table-of-contents__link toc-highlight">Stopping Array, Shutting Down, and Rebooting</a></li><li><a href="#important-considerations" class="table-of-contents__link toc-highlight">Important Considerations</a><ul><li><a href="#backing-up-the-flash-drive" class="table-of-contents__link toc-highlight">Backing Up the Flash Drive</a></li><li><a href="#using-the-built-in-help" class="table-of-contents__link toc-highlight">Using the built-in help</a></li><li><a href="#security-best-practices" class="table-of-contents__link toc-highlight">Security Best Practices</a></li></ul></li><li><a href="#advanced-bios-configuration-guide" class="table-of-contents__link toc-highlight">Advanced BIOS Configuration Guide</a></li><li><a href="#boot-mode-selector-syslinux" class="table-of-contents__link toc-highlight">Boot Mode Selector (Syslinux)</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a></li><li><a href="#faq" class="table-of-contents__link toc-highlight">F.A.Q</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/getting-started/manual-install-method/index.html b/fr/unraid-os/manual/getting-started/manual-install-method/index.html index 04a66b417..012c63fef 100644 --- a/fr/unraid-os/manual/getting-started/manual-install-method/index.html +++ b/fr/unraid-os/manual/getting-started/manual-install-method/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Install Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Install Method</h1><p>If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Install Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Install Method</h1><p>If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, it is possible to manually format and prepare a bootable USB flash device. <strong>Note: this method only works for devices 32GB and <em>smaller</em>.</strong></p><ul><li>Plug the USB flash device into your Mac or PC.</li><li>Format the device using the FAT32 file system. It must <strong>not</strong> be ex-FAT or NTFS. If your drive is larger than 32GB then you need to use @@ -29,8 +29,8 @@ admin password when prompted.</li></ul></li><li><strong>Linux</strong>:<ul><li>copy <strong>make_bootable_linux</strong> file to hard drive</li><li>unmount (not eject) USB drive</li><li>run the following command from wherever you unpacked it to on your Linux system:</li><li>sudo bash ./make_bootable_linux</li></ul></li></ul></li></ul><p><strong>NOTE</strong>: during the process of running this script, the flash device may seem to disappear and reappear on your workstation a few times – -this is expected behavior.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/security/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Security</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +this is expected behavior.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/tools/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Tools</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/multi-language/index.html b/fr/unraid-os/manual/multi-language/index.html index 677d564b2..03537f751 100644 --- a/fr/unraid-os/manual/multi-language/index.html +++ b/fr/unraid-os/manual/multi-language/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/fr/assets/js/runtime~main.a9e7a162.js" as="script"> -<link rel="preload" href="/fr/assets/js/main.e6bd8ad0.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/fr/opensearch.xml"><link rel="stylesheet" href="/fr/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/fr/assets/js/runtime~main.1bad24bd.js" as="script"> +<link rel="preload" href="/fr/assets/js/main.f1d56603.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Lien direct vers Introduction" title="Lien direct vers Introduction">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> +<div role="region" aria-label="Aller au contenu principal"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Aller au contenu principal</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="Fermer" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Ouvrir/fermer la barre de navigation" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/fr/"><div class="navbar__logo"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/fr/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>Français</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-label="Basculer entre le mode sombre et clair (actuellement mode sombre)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Chercher"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Chercher</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Retour au début de la page" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/fr/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/fr/category/unraid-os/">Unraid OS</a><button aria-label="Plier/Déplier la catégorie 'Unraid OS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/release-notes/">Release Notes</a><button aria-label="Plier/Déplier la catégorie 'Release Notes' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/faq/">FAQ</a><button aria-label="Plier/Déplier la catégorie 'FAQ' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/guides/">Guides</a><button aria-label="Plier/Déplier la catégorie 'Guides' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/fr/category/manual/">Manual</a><button aria-label="Plier/Déplier la catégorie 'Manual' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/shares/">Shares</a><button aria-label="Plier/Déplier la catégorie 'Shares' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/unraid-os/manual/security/">Security</a><button aria-label="Plier/Déplier la catégorie 'Security' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/fr/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/getting-started/">Getting Started</a><button aria-label="Plier/Déplier la catégorie 'Getting Started' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/fr/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/fr/category/zfs/">ZFS</a><button aria-label="Plier/Déplier la catégorie 'ZFS' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/unraid-connect/">Unraid Connect</a><button aria-label="Plier/Déplier la catégorie 'Unraid Connect' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/legacy-documentation/">Legacy Documentation</a><button aria-label="Plier/Déplier la catégorie 'Legacy Documentation' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/fr/category/contribute/">Contribute</a><button aria-label="Plier/Déplier la catégorie 'Contribute' de la barre latérale" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Fil d'Ariane"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Page d'accueil" class="breadcrumbs__link" href="/fr/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/fr/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">Sur cette page</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Lien direct vers Introduction" title="Lien direct vers Introduction">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> introduced the mechanism to <a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">support multiple languages</a> in the Unraid webGUI.</p><p>You can now download, install, and use the Unraid OS in the following @@ -53,8 +53,8 @@ forums</a> to get help or help others in your mother tongue.</p><p>Please see the <a href="https://forums.unraid.net/forum/75-multi-language-section/" target="_blank" rel="noopener noreferrer">Multi-Language Section</a> to -take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/applications/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">Community Applications</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/fr/assets/js/runtime~main.a9e7a162.js"></script> -<script src="/fr/assets/js/main.e6bd8ad0.js"></script> +take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Éditer cette page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Pages de documentation"><a class="pagination-nav__link pagination-nav__link--prev" href="/fr/unraid-os/manual/security/vpn/"><div class="pagination-nav__sublabel">Précédent</div><div class="pagination-nav__label">VPN</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/fr/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">Suivant</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/fr/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/fr/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/fr/assets/js/runtime~main.1bad24bd.js"></script> +<script src="/fr/assets/js/main.f1d56603.js"></script> </body> </html> \ No newline at end of file diff --git a/fr/unraid-os/manual/security/data-encryption/index.html b/fr/unraid-os/manual/security/data-encryption/index.html new file mode 100644 index 000000000..81e9ef785 --- /dev/null +++ b/fr/unraid-os/manual/security/data-encryption/index.html @@ -0,0 +1,22 @@ +<!doctype html> +<html lang="fr" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-unraid-os/manual/security/data-encryption"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.4.1"> +<title data-rh="true">Data Encryption | Unraid Docs + + + + + + + + + + +

    +

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly.

    The home page for LUKS can be found here

    Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives.


    To encrypt a drive (Note that this will erase any content already on the drive).

    1. Go to the Main tab.
    2. Stop the array.
    3. Select the drive.
    4. In File system type change the file system to the encrypted type that you want.
    5. Select Apply to commit the change.
    6. Select Done to return to the Main tab. The drive will now show as unmountable and the option to format unmountable drives will be present.
    7. Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.

    Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted.

    attention

    Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/security/flash-drive/index.html b/fr/unraid-os/manual/security/flash-drive/index.html new file mode 100644 index 000000000..aa1be3cb0 --- /dev/null +++ b/fr/unraid-os/manual/security/flash-drive/index.html @@ -0,0 +1,22 @@ + + + + + +Flash Drive | Unraid Docs + + + + + + + + + + +
    +

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.

    Backups

    If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change.

    You can easily achieve this from the Unraid webGUI:

    1. Select the flash drive on the Main tab.
    2. In the Flash Device Settings section select the Flash Backup button.
    3. The system will now create a ZIP file that is a backup of the contents of the flash drive.
    4. When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason, use this backup as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the Main tab.

    • *Network visibility: You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location.

    There are a few ways to handle this:

    1. Copy the files to a location from which they can be executed.

      • The location /usr/local/bin is a good choice if you want the files on the default search path.
      • You can copy the files into position when booting by adding appropriate commands to the config/go file on the flash drive.
      • Give the files execute permission after copying them.
    2. For scripts, prefix the script name with the command that runs the script (e.g. bash path-to-script).

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/security/good-practices/index.html b/fr/unraid-os/manual/security/good-practices/index.html new file mode 100644 index 000000000..74e9fe7dc --- /dev/null +++ b/fr/unraid-os/manual/security/good-practices/index.html @@ -0,0 +1,26 @@ + + + + + +Good Practices | Unraid Docs + + + + + + + + + + +
    +

    Good Practices

    We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.

    #1 Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the Users tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI.

    astuce

    There is a plugin available in Community Apps called Dynamix Password Validator. This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in.

    You could also use this webpage to get a very quick assessment of the strength of any specific password.

    #2 Review port mappings on your router

    Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk.

    Here are just a few ports you should be extra careful with when forwarding:

    • Port 80: Used to access the webGUI without SSL - unless you've rebound access to another port on the Management Access settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you're doing. If you want to make the webGUI remotely accessible, install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.
    • Port 443: Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the Unraid Connect plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate. +Consider making life easier for yourself and utilize the Unraid Connect plugin to enable simple, safe, and secure remote access to your Unraid systems.
    • Port 445: Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a WireGuard VPN to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this.
    • Port 111/2049: Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS.
    • Port 22/23: Used by Telnet and SSH for console access. +Especially dangerous for users that don't have a root password set. +Similar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols.
    • Ports in the 57xx range: These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the Unraid Connect plugin. +This ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.
    astuce

    Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.

    #3 Never put your server in your network's DMZ

    We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.

    Never, ever, do this.

    #4 Set security on your shares to private

    The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares.

    #5 Don't expose the flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents.

    #6 Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to Tools > Update OS to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the Settings > Notifications page.

    #7 Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet.

    A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used.

    An alternative for making the webGUI remotely accessible is to install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/security/index.html b/fr/unraid-os/manual/security/index.html index 32735e4e5..99872fe25 100644 --- a/fr/unraid-os/manual/security/index.html +++ b/fr/unraid-os/manual/security/index.html @@ -1,535 +1,22 @@ - + -Security | Unraid Docs +Security | Unraid Docs - - - + + +
    -

    Security

    This section covers various security-related aspects of Unraid

    Good Practices

    An Unraid server is likely to contain data that is sensitive or that a -user would hate to lose. Since most users will have their home network -connected to the internet then precautions should be taken to avoid an -Unraid server being compromised by malicious actors trying to access -them remotely.

    The following simple guidelines will help avoid many common pitfalls -that some user encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are -safe.

    There is also a forum -thread -that discusses this topic.

    Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by -default. This is to ensure you can quickly and easily access the -management console immediately after initial installation. However, this -doesn't mean you shouldn't set one. Doing this is simple. Just -navigate to the Users tab and click on root. Now set a password. From -then on, you will be required to authenticate anytime you attempt to -login to the webGui.

    In addition, there is a plugin available in Community Apps called -Dynamix Password Validator. This plugin will provide guidance on how -strong of a password you're creating based on complexity rules (how -many capital vs. lowercase letters, numbers, symbols, and overall -password length are used to judge this). Consider installing this for -extra guidance on password strength. Once installed it is available in -the settings for any user to give guidance on the strength of any -password you type in.

    You could also use this web -page to get a very quick -assessment of the strength of any specific password.

    Review port mappings on your router

    Forwarding ports to your server is required for specific services that -you want to be Internet-accessible such as Plex, FTP servers, game -servers, VoIP servers, etc. But forwarding the wrong ports can expose -your server to significant security risk. Here are just a few ports you -should be extra careful with when forwarding:

    • Port 80: Used to access the webGui without SSL (unless you've -rebound access to another port on the Management Access settings -page). Forwarding this port by default will allow you to access the -webGui remotely, but without SSL securing the connection, devices in -between your browser and the server could "sniff" the packets to -see what you're doing. If you want to make the webGui remotely -accessible, install the Unraid Connect plugin, which can provide a -secure remote access solution that utilizes SSL to ensure your -connection is fully encrypted.

    • Port 443: Used to access the webGui with SSL. This is only -better than port 80 if you have a root password set. If no root -password is set and you forward this port, unauthorized users can -connect to your webGui and have full access to your server. In -addition, if you forward this port without using the Unraid Connect -plugin, attempts to connect to the webGui through a browser will -present a security warning due to the lack of an SSL certificate. -Consider making life easier for yourself and utilize the Unraid Connect -plugin to enable simple, safe, and secure remote access to your -Unraid systems.

    • Port 445: Used for SMB (shares). If you forward this port to -your server, any public shares can be connected to by any user over -the internet. Generally speaking, it is never advisable to expose -SMB shares directly over the internet. If you need the ability to -access your shares remotely, we suggest utilizing a WireGuard VPN to -create a secure tunnel between your device and the server. In -addition, if the flash device itself is exported using SMB and this -port is forwarded, its contents can easily be deleted and your paid -key could easily be stolen. Just don't do this.

    • Port 111/2049: Used for NFS (shares). While NFS is disabled by -default, if you are making use of this protocol, just make sure you -aren't forwarding these ports through your router. Similar to SMB, -just utilize WireGuard to create a secure tunnel from any remote -devices that need to connect to the server over NFS.

    • Port 22/23: Used by Telnet and SSH for console access. -Especially dangerous for users that don't have a root password set. -Similar to SMB, we don't recommend forwarding these ports at all, -but rather, suggest users leverage a WireGuard VPN connection for -the purposes of connecting using either of these protocols.

    • Ports in the 57xx range: These ports are generally used by VMs -for VNC access. While you can forward these ports to enable VNC -access remotely for your VMs, the better and easier way to do this -is through installing the Unraid Connect plugin. -This ensures that those connections -are secure via SSL and does not require individual ports to be -forwarded for each VM.

    Generally speaking, you really shouldn't need to forward many ports to -your server. If you see a forwarding rule you don't understand, -consider removing it, see if anyone complains, and if so, you can always -put it back.

    Never ever ever put your server in the DMZ

    No matter how locked down you think you have your server, it is never -advisable to place it in the DMZ on your network. By doing so, you are -essentially forwarding every port on your public IP address to your -server directly, allowing all locally accessible services to be remotely -accessible as well. Regardless of how "locked down" you think you -actually have the server, placing it in the DMZ exposes it to -unnecessary risks. Never ever do this.

    Consider setting shares to private with users and passwords

    The convenience of password-less share access is pretty great. We know -that and its why we don't require you to set passwords for your shares. -However, there is a security risk posed to your data when you do this, -even if you don't forward any ports to your server and have a strong -root password. If another device on your network such as a PC, Mac, -phone, tablet, IoT device, etc. were to have its security breached, it -could be used to make a local connection to your server's shares. By -default, shares are set to be publicly readable/writeable, which means -those rogue devices can be used to steal, delete, or encrypt the data -within them. In addition, malicious users could also use this method to -put data on your server that you don't want. It is for these reasons -that if you are going to create public shares, we highly recommend -setting access to read-only. Only authorized users with a strong -password should be able to write data to your shares.

    Don't expose the Flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if -you need to make advanced changes to your system such as modifying the -go file in the config directory. However, the flash device itself -contains the files needed to boot Unraid as well as your configuration -data (disk assignments, shares, etc). Exposing this share publicly can -be extremely dangerous, so we advise against doing so unless you -absolutely have to, and when you do, it is advised to do so privately, -requiring a username and password to see and modify the contents.

    Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current -with the latest release(s) is vital to ensuring security. There are -constant security notices (CVEs) published for the various components -used in Unraid OS. We here at Lime Technology do our best to ensure all -vulnerabilities are addressed in a timely manner with software updates. -However, these updates are useless to you if you don't apply them in a -timely manner as well. Keeping your OS up-to-date is easy. Just navigate -to Tools -> Update OS to check for and apply any updates. You can -configure notifications to prompt you when a new update is available -from the Settings -> Notifications page.

    Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be -administered remotely but this should never be done by simply exposing -exposing the Unraid webGui to the internet.

    A frequent way to secure such a connection is to use VPN technology. -Unraid includes as standard the WireGuard VPN and an OpenVPN plugin and -Docker container is also available. In addition many routers have built -in VPN support which can be used.

    An alternative for making the webGui remotely accessible is to install -the Unraid Connect plugin, which can provide a secure remote access solution -that utilizes SSL to ensure your connection is fully encrypted.

    Securing webGui connections (SSL)

    Using wildcard SSL Certificates provisioned by Let's -Encrypt, Unraid OS 6.10 improves the security -of the SSL implementation for both local access and Unraid Connect Remote Access.

    A few details before we begin

    Some terms:

    • servername can be changed on the Settings -> Identification -page. It defaults to "tower".
    • localTLD can be changed on the Settings -> Management Access -page. It defaults to "local".
    • Use SSL/TLS can be changed on the Settings -> Management Access -page. It defaults to "No".
    • HTTP port can be changed on the Settings -> Management Access -page. It defaults to "80". If you change this, add :[HTTP port] to any of the http URLs in the scenarios below. (example: -http://tower.local:8080)
    • HTTPS port can be changed on the Settings -> Management Access -page. It defaults to "443". If you change this, add :[HTTPS port] to any of the https URLs in the scenarios below. (example: -https://tower.local:3443)
    • certificate refers to either a self-signed SSL Certificate, or a -SSL certificate issued by a Certificate Authority (Let's Encrypt)
    • lan-ip is your server's LAN IP address with dots changed to -dashes (example 192-168-100-1)
    • wan-ip is your internet-facing IP address with dots changed to -dashes (example 136-26-144-139)
    • hash is a random 40 character hex string (160 bits) uniquely -assigned to your server when a certificate is first issued

    Caveats of using a self-signed certificate: Note that browsers will -show a certificate error because they cannot verify the authenticity of -self-signed certificates. All traffic will be encrypted once users -acknowledge the browser warning.

    How would you like to access the Unraid webGui while on your LAN?

    Http only

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to No
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Traffic between the browser and the server will not be encrypted

    Https with Self-signed certificate

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • All traffic will be encrypted
    • Unraid will manage the certificate for you. See "Caveats of using a -self-signed certificate" above.

    Https with Myunraid.net certificate - with fallback URL if DNS is unavailable

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate)
    • Leave Use SSL/TLS set to either No or Yes
    • Press Provision
    • Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Your primary URLs when Use SSL/TLS set to Yes. Note that these -URLs use a self-signed certificate (See "Caveats of using a -self-signed certificate" above)
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • Your alternate URL will be -https://[lan-ip].[hash].myunraid.net (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net). This personal link -is shown in the Certificate subject field on the Management Access -page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted if using https.
    • Unraid will manage the certificates for you.
    • If at any point DNS resolution becomes unavailable, the alternate -URL may not resolve. In this case use the primary URL as a fallback.

    Https with Myunraid.net certificate - with no fallback URL

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate if you run the use_ssl command mentioned -below)
    • Press Provision
    • If DNS Rebinding is not an issue, the "Strict" option for Use -SSL/TLS will be available.
    • Set Use SSL/TLS to Strict (this was previously called "Auto", -but "Strict" is more descriptive)
    • Your URL will be https://[lan-ip].[hash].myunraid.net -(example: https://192-168-100-1.a1b2c3d4e5.myunraid.net) This -personal link is shown in the Certificate subject field on the -Management Access page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted
    • Unraid will manage the certificates for you.
    • Note: If at any point DNS resolution becomes unavailable (e.g., your -Internet goes down), use telnet, SSH or local keyboard/monitor to -login. Then:
      • type use_ssl no to access the webgui via -http://[servername].[localTLD] or http://[ipaddress]
      • type use_ssl yes to access the webgui via -https://[servername].[localTLD] or https://[ipaddress] -using a self-signed certificate (See -"Caveats of using a self-signed certificate" above)
      • Once DNS resolution is available again, change Use SSL/TLS -back to Strict

    Redirects

    When accessing http://[ipaddress] or -http://[servername].[localTLD] , the behavior will change -depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to -https://[lan-ip].[hash].myunraid.net However, this behavior -makes it more difficult to access your server when DNS is -unavailable (i.e. your Internet goes down). If that happens see the -note under HTTPS with Myunraid.net certificate - with no fallback -URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to -https://[ipaddress] or https://[servername].[localTLD] -as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the http url will load -directly.

    Note: for the redirects to work, you must start from http urls not https -urls.

    Unraid Connect Remote Access

    • Install the Unraid Connect plugin
    • Navigate to the Settings -> Management Access page
    • Click Provision if you haven't already
    • Regardless of the value of Use SSL/TLS, you will have the option -to access the server using -https://[lan-ip].[hash].myunraid.net:[wan-port] (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net).
    • Navigate to Settings -> Management Access -> Unraid Connect page
    • Set Allow Remote Access to yes
    • Set the WAN port you want to use. For added security we -recommend you choose a random port over 1000 rather than using the -default of 443. i.e. something like 13856, 48653, etc
    • Click Apply
    • Setup your router to port forward the WAN port you specified to -the LAN IP address and HTTPS port used by the server. There is a -note on the screen telling you the exact port and IP to use.
    • Press the Check button. If the port is forwarded correctly you -will see a message saying "Your Unraid Server is reachable from the -Internet"
    • To access your server using Remote Access, login to the Unraid Connect -Dashboard and click the Remote Access link. The URL will be -https://[wan-ip].[hash].myunraid.net:[wan-port] (example: -https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856).

    Custom Certificates

    Https with Custom certificate - with option to have Unraid Connect Remote Access

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • Set the LocalTLD to the domain name used in the "Subject" of -the certificate.
    • Your URL will be https://[servername].[localTLD] (example: -https://tower.mydomain.com). You are responsible for managing DNS -for this URL.
    • You are responsible for managing the certificate. Upload it to -/boot/config/ssl/certs/[servername]_unraid_bundle.pem
    • The certificate must be valid for [servername].[localTLD] -(example: tower.mydomain.com). For a wildcard cert it must be -*.[localTLD] (example: *.mydomain.com). This url can be -specified in either the "Subject" of the certificate or one of the -"Subject Alternative Name" fields (prior to 6.10.3, only the -"Subject" field was used). If you find that Unraid deletes your -certificate, it is because the server's url is not specified in the -certificate.
    • All traffic will be encrypted
    • (optional) If desired, see the Unraid Connect Remote Access section -above

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the -array. It does this using the Linux LUKS (Linux Unified Key System) -encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a -standard on-disk-format, it does not only facilitate compatibility among -distributions but also provides secure management of multiple user -passwords. In contrast to an existing solution, LUKS stores all -necessary setup information in the partition header, enabling the user -to transport or migrate their data seamlessly.

    The home page for LUKS can be found -here

    Because it is a Linux standard drives that are encrypted using LUKS can -be read on any standard Linux system even when removed from Unraid as -long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting -all drives being used by Unraid. The key for the encryption can be -either a pass phrase, or provided via a key file. When using a key file -it is a good idea to use something like an image as there is no chance -of that ever being guessed. You must make sure that you do not lose the -encryption key as without it you will not be able to access the data on -encrypted drives.

    To encrypt a drive (Note that this will erase any content already on the -drive).

    • Stop the array
    • Click on the drive on the Main tab
    • change the file system to the encrypted type that you want to use
    • click Apply to commit the change
    • click Done to return to the Main tab
    • the drive will now show as unmountable and the option to format -unmountable drives will be present. Check that the drive is the one -you are expecting to be encrypted and if it is correct go ahead and -format it.

    Once you have set up encryption then it will be necessary to provide the -encryption key when starting the array. Once this has been done and the -array successfully started then you can access the data without being -aware of the fact that any drive is encrypted.

    CAUTION: Encrypting data is good from a security perspective, but users -should be aware of the fact that it can complicate recovering from -certain types of hardware failure without data loss. On that basis only -use encryption if you feel you have a real need for it, and ideally make -sure you have a good system for backing up any important data.

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains -all the configuration information relating to an Unraid server. You -therefore want to consider the security of the information it contains -and how it is accessed.

    Backups

    If a flash drive ever fails for any reason then as long as you have a -backup getting the Unraid server back into normal operation is an easy -process. It is recommended that you make a backup whenever you make a -significant configuration change.

    You easily achieve this from the Unraid GUI by:

    1. Click on the flash drive on the Main tab in the GUI.
    2. In the Flash Device Settings section click on the Flash Backup -button.
    3. The system will now start creating a zip file that is a backup of -the contents of the flash drive
    4. When the zip file has been created your browser should prompt you to -provide the location where you want the backup saved to. It is -recommended that this is a location off the Unraid server so that it -is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason this -backup can be used as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control -access over the network as is the case for other shares on an Unraid -system. The difference is that you set this up by clicking on the -flash device on the Main tab in the GUI rather than doing it via -the Shares tab.

    • Network visibility: You can specify whether the flash drive -should even be accessible via the network, and if it is accessible -whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any -access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with -Unraid 6.8 files on the flash drive can no longer be given execute -permission.

    The implication of this is that if a user has their own custom scripts -(or programs) stored on the flash drive they can no longer be executed -from that location. There are a number of ways to handle this:

    • Copy the files to a location from which they can be executed
      • The location /usr/local/bin is a good choice if you want the -files on the default search path.
      • You can copy the files into position when booting by adding -appropriate commands to the config/go file on the flash drive.
      • Remember to give the files execute permission after copying -them.
    • For scripts precede the script name with the command that runs the -script (e.g. bash path-to-script)

    VPN

    Unraid servers are not hardened against attack via the network so -should NEVER be exposed directly to the internet.

    • One exception is the WireGuard VPN service introduced in Unraid 6.8 -explicitly to address secure access to/from the internet.
    • If running Docker containers are exposed to the internet then the -security of these needs to be assessed on a case-by-case basis.

    You may need to contact the developer of the container to determine -how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a -'sandboxed' environment so the level of access to the content of -your disks is constrained to what you allow in the path mapping -settings for the container.

    • If running VMs that are exposed to the internet then you need to -apply the same security to these that you would apply to a physical -PC attached to the local LAN.

    If you want to make secure connections between an Unraid server and the -Internet then you want to use a technology known as VPN (Virtual Private -Network). VPN works on a client/server model where you have a server -that accepts incoming connections and a client that initiates such -connections.

    In simplistic terms, the idea behind VPN connections is to set up an -encrypted 'tunnel' between the client and server ends so that no -malicious players can intercept or eavesdrop on your interactions. Such -tunnels are set up so that only authorized users are able to make such -connections. More information on VPN as a technology can be found in -this wiki -article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the -commonest use case and many users want to be able to safely access -their Unraid servers (and potentially their whole home LAN) when -away from home. When running in this mode the server end of the VPN -link will either be running on the user's router (if it supports -such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you -want applications running on Unraid to access the internet. This -could be to access generic internet content or to access another -server located remotely to the Unraid server. If in is generic -access to the internet then it is highly likely that the server end -of such connection will be via a commercial VPN provider. When -running in this mode Unraid will be acting as the client end of any -VPN link.

    There are a wide variety of VPN solutions available both free and -commercial.

    Router

    Many modern routers have a VPN server built-in as standard (typically -based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of -not needing any other component on your home LAN to be operational for -the VPN to function. Once setup it should allow you to access all -devices on your home LAN in a similar manner to when you are directly -connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow -connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN -then you can search Community Applications for a plugin or docker -container that meets your requirements. You may also find the -SpaceInvaderOne YouTube -video of use in setting it -up.

    It is expected that with the introduction of WireGuard support in -Unraid 6.8 that WireGuard will become the favored way of setting up a -VPN connection to an Unraid server.

    WireGuard

    Overview

    Unraid 6.8 introduces built-in support for WireGuard VPN connections. The -intention is to make it as easy as possible for Unraid users to set up -VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to -add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid -boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be -better than OpenVPN.

    More information about WireGuard can be found on the WireGuard web -site. It should be noted that WireGuard is -still labeled as ''experimental'' by its developers but many users are -already finding that it appears to be robust enough for real-world use. -A number of the commercial VPN services are working on adding WireGuard -support so they must deem it to be mature enough for this to make sense -to them.

    The initial Unraid implementation includes adding the WireGuard kernel -modules to the standard Unraid distribution and starting the WireGuard -services as part of the Unraid boot process, but does not yet have the -management of WireGuard built-in. At the moment the GUI part is offered -as a separate plugin, but it is intended that it will be integrated into -Unraid in the future. This approach allows for quick updates and -enhancements without dependency on Unraid version releases. The Unraid -WireGuard GUI plugin can be installed via Community Applications, and -when it is installed you will find that an entry called VPN Manager -is added to the GUI under Settings->Network Services

    Note that the Unraid WireGuard plugin is still evolving so in the event -of a discrepancy between what is described here and the following forum -threads then it is likely that the thread is correct and this wiki needs -updating to bring it inline. These threads are also the appropriate -place to ask questions regarding Unraid's WireGuard implementation.

    What can you do with WireGuard? Let's walk through each of the -connection types:

    • Remote access to server: Use your phone or computer to remotely -access your Unraid server, including:

      • Unraid administration via the webgui
      • Access dockers, VMs, and network shares as though you were -physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", -allowing you to access your entire LAN as well.

    • Server to server access: Allows two Unraid servers to connect to -each other.

    • LAN to LAN access: Builds on "Server to server access", -allowing two entire networks to communicate. May require additional -settings, TBD.

    • Server hub & spoke access: Builds on "Remote access to -server", except that all of the VPN clients can connect to each -other as well. Note that all traffic passes through the server.

    • LAN hub & spoke access: Builds on "Server hub & spoke access", -allowing you to access your entire LAN as well.

    • VPN tunneled access: Route traffic for specific Dockers and VMs -through a commercial WireGuard VPN provider (see this guide)

    • Remote tunneled access: Securely access the Internet from -untrusted networks by routing all of your traffic through the VPN -and out Unraid's Internet connection

    The following diagram attempts to show these different connection types -in a graphical format

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your -trusted devices can VPN into your home network to access Unraid and the -other systems on your network.

    Prerequisites
    • You must be running Unraid 6.8 with the Dynamix WireGuard plugin -installed via the Apps tab (Community Applications).

    • Be aware that WireGuard is technically classified as experimental. -It has not gone through a full security audit yet and has not -reached 1.0 status. But it is the first open-source VPN solution -that is extremely simple to install, fast, and designed from the -ground up to be secure.

    • Understand that giving someone VPN access to your LAN is just like -giving them physical access to your LAN, except they have it 24x7 -when you aren't around to supervise. Only give access to people and -devices that you trust, and make certain that the configuration -details (particularly the private keys) are not passed around -insecurely. Regardless of the "connection type" you choose, assume -that anyone who gets access to this configuration information will -be able to get full access to your network.

    • This guide works great for simple networks. But if you have Dockers -with custom IPs or VMs with strict networking requirements, please -see the "Complex Networks" section below.

    • Unraid will automatically configure your WireGuard clients to -connect to Unraid using your current public IP address, which will -work until that IP address changes. To future-proof the setup, you -can use Dynamic DNS instead. There are many ways to do this, -probably the easiest is described in this 2 minute video from -SpaceInvaderOne.

    • If your router has UPnP enabled, Unraid will be able to -automatically forward the port for you. If not, you will need to -know how to configure your router to forward a port.

    • You will need to install WireGuard on a client system. It is -available for many operating systems as mentioned at WireGuard -clients. Android or iOS make -good first client systems because you can get all the details via QR -code.

    Setting up the Unraid side of the VPN tunnel
    • First, go to Settings -> Network Settings -> Interface eth0. If -"Enable bridging" is "Yes", then WireGuard will work as -described below. If bridging is disabled, then none of the "Peer -type of connections" that involve the local LAN will work properly. -As a general rule, bridging should be enabled in Unraid.

    • If UPnP is enabled on your router and you want to use it in Unraid, -go to Settings -> Management Access and confirm "Use UPnP" is set -to Yes
    • On Unraid go to Settings -> VPN Manager

    • Give the VPN Tunnel a name, such as "MyHome VPN"
    • Press "Generate Keypair". This will generate a set of public and -private keys for Unraid. Take care not to inadvertently share the -private key with anyone (such as in a screenshot like this)
    • By default, the local endpoint will be configured with your current -public IP address. If you chose to setup DDNS earlier, change the IP -address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to -change this unless you already have WireGuard running elsewhere on -your network.
    • Hit Apply
    • If Unraid detects that your router supports UPnP, it will -automatically setup port forwarding for you:

    • If you see a note that says "configure your router for port -forwarding..." you will need to login to your router and setup the -port forward as directed by the note:

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports -should be set to the value Unraid provides. If your router -interface asks you to put in a range, use the same port for both -the starting and ending values. Be sure to specify that it is a -UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of -your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, -i.e. "how to port forward Asus RT-AC68U"
    • Note that after hitting Apply, the public and private keys are -removed from view. If you ever need to access them, click the -"key" icon on the right-hand side.

    • Similarly, you can access other advanced settings by pressing the -"down chevron" on the right-hand side. They are beyond the scope -of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to -Active to start WireGuard. You can optionally set the tunnel to -Autostart when Unraid boots.

    There have been cases where this step has been omitted and users -end up wondering why the WireGuard VPN link is not working!

    Defining a Peer (client)
    • Click "Add Peer"

    • Give it a name, such as "MyAndroid"
    • For the initial connection type, choose "Remote access to LAN". -This will give your device access to Unraid and other items on your -network.
    • Click "Generate Keypair" to generate public and private keys for -the client. The private key will be given to the client/peer, but -take care not to share it with anyone else (such as in a screenshot -like this)
    • For an additional layer of security, click "Generate Key" to -generate a preshared key. Again, this should only be shared with -this client/peer.
    • Click Apply.
    • Note: Technically, the peer should generate these keys and not -give the private key to Unraid. You are welcome to do that, but it -is less convenient as the config files Unraid generates will not be -complete and you will have to finish configuring the client -manually.
    Caution

    It can be a little risky to add a new client ("peer") to WireGuard if -you are already connected remotely using WireGuard as adding a new peer -sometimes toggles the WireGuard tunnel off which will render you -unable to reconnect. This is because a configuration change is made -effective by inactivating the tunnel with the current (old) -configuration and next activating it with the updated (new) -configuration. If there is any sort of configuration conflict at this -point the tunnel stays inactive, and you can no longer connect to the -Unraid server

    Configuring a Peer (client)
    • Click the "eye" icon to view the peer configuration. If the button -is not clickable, you need to apply or reset your unsaved changes -first.

    • If you are setting up a mobile device, choose the "Create from QR -code" option in the mobile app and take a picture of the QR code. -Give it a name and make the connection. The VPN tunnel starts almost -instantaneously, once it is up you can open a browser and connect to -Unraid or another system on your network. Be careful not to share -screenshots of the QR code with anyone, or they will be able to use -it to access your VPN.
    • If you are setting up another type of device, download the file and -transfer it to the remote computer via trusted email or dropbox, -etc. Then unzip it and load the configuration into the client. -Protect this file, anyone who has access to it will be able to -access your VPN.
    About DNS

    The Dynamix WireGuard plugin includes a "Peer DNS Server" option

    If you are having trouble with DNS resolution on the WireGuard client, -return to the VPN Manager page in Unraid and switch from Basic to -Advanced mode, add the IP address of your desired DNS server into the -"Peer DNS Server" field, then install the updated config file on the -client. You may want to use the IP address of the router on the LAN you -are connecting to, or you could use a globally available IP like 8.8.8.8

    This is required for "Remote tunneled access" mode if the client's -original DNS server is no longer accessible after all traffic is routed -through the tunnel.

    If you are using any of the split tunneling modes, adding a DNS server -may provide name resolution on the remote network, although you will -lose name resolution on the client's local network in the process. The -simplest solution is to add a hosts file on the client that provides -name resolution for both networks.

    Complex Networks

    The instructions above should work out of the box for simple networks. -With "Use NAT" defaulted to Yes, all network traffic on Unraid uses -Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Dockers with custom IPs or VMs with strict -networking requirements, things may not work right (I know, kind of -vague, but feel free to read the two WireGuard threads for examples)

    A partial solution is:

    • In the WireGuard config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the -WireGuard "Local tunnel network pool" through the IP address of -your Unraid system. For instance, for the default pool of -10.253.0.0/24 you should add this static route:
      • Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)
      • Gateway: <IP address of your Unraid system>
    • Note that this covers the entire class B 10.253.x.x network, so you -can add other WireGuard tunnels without having to modify your router -setup again.

    With these changes, your network should work normally. However, your -WireGuard clients still may not be able to access Dockers on custom IPs -or VMs. If you find a solution to this, please ask questions in the -forum threads mentioned earlier.

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be -invisible! There aren't really any error messages if things aren't -working, it either works or it doesn't. It cannot be detected by a port -scanner.

    If you can't connect, it will mainly be an exercise in double-checking -your work:

    • Confirm that the tunnel is active (!)
    • Confirm that your DDNS is pointed at your current public IP address, -and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router -to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your -clients, you will need to set the clients up again so they have the -latest config.
    • Be sure you save your changes before you press "View Peer Config", -otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    - For your first client, setup a phone using its data connection (not -wifi). This eliminates issues related to the client network, and the QR -code is the easiest way to transfer settings. Once you have it working -from your phone, move on to other clients.

    • Disable any energy-saving features on the client, phones in particular -may not use VPNs properly when in low power mode. Also, you may need to -disable any "Data Saver" features on the phone so that VPN is not -throttled. See this post. -- If your "Peer type of connection" includes one of the LAN options but -you can only access Unraid, go to Settings -> Network Settings and see -whether "Enable bridging" is yes.  If bridging is disabled, you will not -be able to access your LAN over WireGuard.
    • If you are connecting from another network over the Internet, be -sure that the networks on both sides use different subnets. You -can't connect two networks that both use 192.168.1.0/24, for -instance.
    • If you can connect from some locations but not others, keep in mind -that the "broken" remote locations may have a firewall that blocks -UDP traffic. Hopefully, WireGuard will support TCP in the future, -but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm -that the "Local tunnel network pool" is not already in use on your -network or on one of the networks you are connecting to. If there is -a conflict you will need to change it to a different private network -(10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | -192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webgui for some reason and you need -to prevent a WireGuard tunnel from automatically starting, delete -this file from your flash drive and reboot:

    /boot/config/wireguard/autostart

    • Note that if you have Dockers with custom IPs or VMs with strict -networking requirements, you will likely have issues. Please see the -"Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection -from an Unraid server to a commercial VPN provider. If you are trying to -access your Unraid network from a remote location, see the section on -making inbound connections. There is a forum -thread -discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. A few are listed -below but this is not intended to be an exhaustive list. No endorsement -is implied, you need to research and determine which one meets your -needs.

    Note that with the current state of WireGuard, VPN providers cannot -guarantee the same amount of privacy as they can with OpenVPN. See -here for more detail. -Typically the objections are not around security, but around the fact -that it is harder for them to guarantee that they cannot track you.

    Configuring VPN tunneled access
    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" -button and select the file on your hard drive. This will create a -new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. -Click Apply.
    • Note: You do not need to forward any ports through your router for -this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN -tunnel.
      • In the future it may be possible to restrict it so that only -specific Dockers use the VPN tunnel. Until then, you may need to -disable the tunnel in order to check for plugin updates or -perform other Unraid administrative tasks.
      • Note that currently, Unraid will ignore any DNS server that is -specified in the downloaded config file. Unraid's DNS should be -set to something that will work whether the tunnel is up or -down, such as 8.8.8.8 and 8.8.4.4
    Testing the tunnel
    • Using Community Applications, install a browser such as the -jlesage/Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should -see that your IP address is in the country you selected when you -signed up with the provider

    Support

    WireGuard is a new feature in Unraid so the forum is the place to -ask questions and get the most up-to-date information on using -WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - +

    Security

    An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.

    The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are safe.

    There is also a forum thread that discusses this topic.

    + + \ No newline at end of file diff --git a/fr/unraid-os/manual/security/secure-webgui-ssl/index.html b/fr/unraid-os/manual/security/secure-webgui-ssl/index.html new file mode 100644 index 000000000..e82c3aac4 --- /dev/null +++ b/fr/unraid-os/manual/security/secure-webgui-ssl/index.html @@ -0,0 +1,22 @@ + + + + + +Securing webGUI connections (SSL) | Unraid Docs + + + + + + + + + + +
    +

    Securing webGUI connections (SSL)

    As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.

    SSL parameters

    When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server.

    ParameterDescription
    servernameCan be changed in Settings > Identification. The default value is tower.
    localTLDCan be changed in Settings > Management Access. Default value is local.
    Use SSL/TLSCan be changed in Settings > Management Access. Default value is No.
    HTTP portCan be changed in Settings > Management Access. Default value is 80. If you change this, add :[HTTP port] to any of the HTTP URLs in the scenarios below. (example: http://tower.local:8080)
    HTTPS portCan be changed in Settings > Management Access page. It defaults to "443". If you change this, add :[HTTPS port] to any of the HTTPS URLs in the scenarios below. (example: https://tower.local:3443)
    certificateRefers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)
    lan-ipThis is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)
    wan-ipThis is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)
    hashThis is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued

    How to access the Unraid server webGUI on your LAN

    HTTP-only

    With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to No.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution.
    4. Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    5. Select Apply.

    HTTPS with self-signed certificate

    With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to Yes.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution
    4. Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    5. Select Apply.
    info

    When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.


    HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable

    You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down.

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate).
    3. Leave Use SSL/TLS set to either No or Yes.
    4. Press Provision.
    5. Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    6. Your primary URLs when Use SSL/TLS set to Yes. Note that these URLs use a self-signed certificate.
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    7. Your alternate URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the Unraid Connect plugin it will also be shown on the Connect dashboard.

    HTTPS with Myunraid.net certificate and with no fallback URL

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the use_ssl command mentioned below).
    3. Press Provision.
    4. If DNS Rebinding is not an issue, the Strict option for Use SSL/TLS will be available.
    5. Set Use SSL/TLS to Strict (or Auto in earlier versions of Unraid).
    6. Your URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the optional Unraid Connect plugin it will also be shown on the Connect dashboard.
    attention

    If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:

    • Type use_ssl no to access the webGUI via http://[servername].[localTLD] or http://[ipaddress].
    • Type use_ssl yes to access the webGUI via https://[servername].[localTLD] or https://[ipaddress] using a self-signed certificate (See HTTPS with a self-signed certificate above).
    • Once DNS resolution is available again, change Use SSL/TLS back to Strict.

    Redirects

    When you access http://[ipaddress] or http://[servername].[localTLD], the behavior will change depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to https://[lan-ip].[hash].myunraid.net However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under HTTPS with Myunraid.net certificate - with no fallback URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to https://[ipaddress] or https://[servername].[localTLD] as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the HTTP URL will load directly.
    astuce

    For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.


    Unraid Connect remote access

    Looking for setup instructions for Unraid Connect remote access? See our dedicated page.


    Custom certificates

    HTTPS with custom certificate - with option to have Unraid Connect Remote Access

    1. Navigate to the Settings > Management Access page.
    2. Set Use SSL/TLS to Yes.
    3. Set the LocalTLD to the domain name used in the "Subject" of the certificate.
    4. Your URL will be https://[servername].[localTLD] (example: https://tower.mydomain.com). You are responsible for managing DNS for this URL.
    5. You are responsible for managing the certificate. Upload it to /boot/config/ssl/certs/[servername]_unraid_bundle.pem.
    6. The certificate must be valid for [servername].[localTLD] (example: tower.mydomain.com). For a wildcard cert it must be *.[localTLD] (example: *.mydomain.com). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server's URL is not specified in the certificate.
    7. As an option, use Unraid Connect Remote Access.
    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/security/vpn/index.html b/fr/unraid-os/manual/security/vpn/index.html new file mode 100644 index 000000000..ff43a463f --- /dev/null +++ b/fr/unraid-os/manual/security/vpn/index.html @@ -0,0 +1,27 @@ + + + + + +VPN | Unraid Docs + + + + + + + + + + +
    +

    VPN

    attention

    Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.

    If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections.

    In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in this wiki article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.

    There are a wide variety of VPN solutions available both free and commercial.

    Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN.

    Router

    Many modern routers have a VPN server built-in as standard (typically based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the SpaceInvaderOne YouTube video of use in setting it up.

    WireGuard

    Overview

    Wireguard logo

    Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN.
    • The interface is available under Settings > VPN Manager.

    More information about WireGuard can be found on the WireGuard website.

    What can you do with WireGuard? Let's walk through each of the connection types:

    • Remote access to server: Use your phone or computer to remotely access your Unraid server, including:
      • Unraid administration via the webGUI
      • Access Docker containers, VMs, and network shares as though you were physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", allowing you to access your entire LAN as well.
    • Server to server access: Allows two Unraid servers to connect to each other.
    • LAN to LAN access: Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.
    • Server hub & spoke access: Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.
    • LAN hub & spoke access: Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.
    • VPN tunneled access: Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider.
    • Remote tunneled access: Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.

    The following diagram attempts to show these different connection types in a graphical format

    Connection Types

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network.

    Implementation considerations

    • Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren't around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.
    • This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the Complex Networks section.
    • Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this 2 minute video from SpaceInvaderOne.
    • If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port.
    • You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at WireGuard clients. Android or iOS make good first client systems because you can get all the details via QR code.

    Setting up the Unraid side of the VPN tunnel

    • If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -> Management Access and confirm "Use UPnP" is set to Yes
    • On Unraid go to Settings > VPN Manager

    Initial setup screen

    • Give the VPN Tunnel a name, for example MyHome VPN.
    • Select Generate Keypair. This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this).
    • By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network.
    • Select Apply.
    • If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:

    UPnP available

    • If you see a note that says "configure your router for port forwarding..." you will need to login to your router and setup the port forward as directed by the note:

    UPnP not available

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".
    • Note that after Apply, the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.

    Key icon

    • Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.

    Activate switch

    Defining a Peer (client)

    1. Select Add Peer. +Add Peer
    2. Give it a name, such as MyAndroid.
    3. For the initial connection type, choose Remote access to LAN. This will give your device access to Unraid and other items on your network.
    4. Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)
    5. For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.
    6. Click Apply.
    info

    Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.

    attention

    It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.

    Configuring a Peer (client)

    • Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.

    Peer area - Eye icon

    Peer details popup

    • If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.
    • If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.

    About DNS

    Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net.

    Short names such as "tower" probably won't work, nor any DNS entries managed by the router.

    To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don't forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8

    This is particularly important for "Remote tunneled access" mode if the client's original DNS server is no longer accessible after all traffic is routed through the tunnel.

    Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection.

    Complex Networks

    The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:

    • In the WireGuard tunnel config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:
      • Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)
      • Gateway / Next Hop: IP address of your Unraid system
      • Distance: 1 (your router may not have this option)
      • If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"
    • Navigate to Settings > Docker Settings and set Host access to custom networks to Enabled

    Configurations to avoid

    There are some configurations you'll want to avoid, here is how a few key settings interact:

    • With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (this is the "simple network" setup assumed by the guide above)
    • With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this config)
    • With "Use NAT" = No and no static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this, if "Use NAT" = No, you really need to add a static route in your router)
    • With "Use NAT" = No and "Host access to custom networks" = disabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (You've come this far, just set "Host access to custom networks" to enabled you're set)
    • With "Use NAT" = No and "Host access to custom networks" = enabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - accessible!
      • (woohoo! the recommended setup for complex networks)

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner.

    If you can't connect, it will mainly be an exercise in double-checking your work:

    • Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.
    • Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config.
    • Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    • For your first client, setup a phone using its data connection (not wifi). This eliminates issues related to the client network, and the QR code is the easiest way to transfer settings. Once you have it working from your phone, move on to other clients.
    • If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection.
    • Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.
    • If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance.
    • If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.
    • If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | 192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot: +/boot/config/wireguard/autostart
    • Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on +making inbound connections. There is a forum thread discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs.

    Note that any provider that requires a custom WireGuard client will not work with Unraid.

    Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see here for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you.

    Configuring “VPN tunneled access for Docker”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • The “Peer type of access” will default to “VPN tunneled access for docker”. There are no settings to change, except perhaps to give it a local name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers
    • Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a "DNS" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.
    Testing the Docker tunnel
    info

    The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.

    Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel before the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.

    • Using Community Applications, install a Firefox Docker container
    • When setting up the container, set the “Network Type” to “Custom: wg2” (or whatever the name of the tunnel was in the previous step)
    • Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.: +--dns=8.8.8.8 +(if you don't set this, the container may leak your ISP's DNS server)
    • The rest of the defaults should be fine, apply the changes and start the container
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider
    • Also visit https://www.dnsleaktest.com/ and run a test, confirm that it only finds IPs related to the DNS provider you specified.
    • Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.

    Configuring “VPN tunneled access for system”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN tunnel.
      • You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks.
      • Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled.
      • Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4
    Testing the System tunnel
    • Using Community Applications, install a Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider

    Support

    The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/shares/create-a-share/index.html b/fr/unraid-os/manual/shares/create-a-share/index.html new file mode 100644 index 000000000..caca32a1b --- /dev/null +++ b/fr/unraid-os/manual/shares/create-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Create a new share | Unraid Docs + + + + + + + + + + +
    +

    Create a new share

    When you create a new share, plan ahead.

    1. On the Shares tab select Add Share.

    2. Enter a name for your share in Share name

      Share names

      The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so media, Media, and MEDIA would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be.

    3. (Optional) Enter a description for the share in the Comments field. This is visible when viewed over the network.

    4. Set a Minimum free space value, in kilobytes, if you plan to use the setting, otherwise leave it empty.

    5. Select the Primary storage for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.

    6. Select the Allocation method: high-water, fill-up, or most-free, depending on your use case. You can read about the differences here.

    7. Select the Split level method for your data. You can find more information split level, here.

    8. In Included disks choose which disks will be available to the share. By default, all disks will be included.

    9. In Excluded disks choose which disks will not be available to the share. Note that if you configure Included disks there is no need to configure Excluded disks.

    10. Select a Secondary storage if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to None.

    11. (Optional) If you configure a primary and secondary storage, then Mover action option becomes active. This sets the direction of file transfers between Primary and Secondary storage.

    12. Select Add share to complete the creation.

    info

    Note that, by default, a new share will not be shared over the network. You must configure network access after the share is created.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/shares/delete-a-share/index.html b/fr/unraid-os/manual/shares/delete-a-share/index.html new file mode 100644 index 000000000..c4ef5237e --- /dev/null +++ b/fr/unraid-os/manual/shares/delete-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Delete a share | Unraid Docs + + + + + + + + + + +
    +

    Delete a share

    To delete a share on your Unraid server the share must contain no data.

    Delete an empty share

    1. Go to Shares.
    2. Select the share you want to delete.
    3. Select the Delete checkbox. The Apply button switches to a Delete button.
    4. Select the Delete button.
    5. The system confirms the share has been deleted. Select Done.

    Delete a share that contains data

    1. Go to Apps.
    2. Install a file management plugin from Community, such as Dynamix File Manager.
    3. Go to Shares.
    4. Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive.
    5. If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion.
    6. Delete the data or move it to another share on the server.
    7. Return to Shares.
    8. Select the share you want to delete. This will open the share settings. If no data is left in the share, a Delete checkbox is available.
    9. Select the Delete checkbox. The Apply button switches to a Delete button.
    10. Select the Delete button.
    11. The system confirms the share has been deleted.
    12. Select Done to return to Shares
    astuce

    Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/shares/disk-shares/index.html b/fr/unraid-os/manual/shares/disk-shares/index.html new file mode 100644 index 000000000..ffe84a7b6 --- /dev/null +++ b/fr/unraid-os/manual/shares/disk-shares/index.html @@ -0,0 +1,22 @@ + + + + + +Disk shares | Unraid Docs + + + + + + + + + + +
    +

    Disk shares

    astuce

    Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.

    Overview

    Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a Disk Shares section on the Shares tab. If you create a disk share, you should modify the user access permissions to restrict network user access.

    When viewed at the Linux level, the physical devices or pools will appear directly under /mnt with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled.

    Examples of such names are:

    • /mnt/diskX: - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be diskX.
    • /mnt/pool-name: - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be pool-name.
    attention

    The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the Main tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at /boot.

    Due to the nature of the Unraid boot device, we recommend you maintain your shares in Private mode, with read/write access given to trusted users.

    Disk share constraints

    If you have both disk shares and user shares enabled in Global Share Settings, then there is an important restriction that you must observe to avoid potential data loss.

    You must never copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, cp /mnt/user/share/file /mnt/disk1/share/file.

    At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost.

    There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an Unassigned Disk.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/shares/index.html b/fr/unraid-os/manual/shares/index.html index d5b408c39..19d9f27cf 100644 --- a/fr/unraid-os/manual/shares/index.html +++ b/fr/unraid-os/manual/shares/index.html @@ -1,495 +1,22 @@ - + -Shares | Unraid Docs +Shares | Unraid Docs - - - + + +
    -

    Shares

    Once you have assigned some devices to Unraid and started the array, you -can create shares to simplify how you store data across multiple disks -in the array. Unraid will automatically create a handful of shares for -you that it needs to support common plugins, containers, and virtual -machines, but you can also create your own shares for storing other -types of data. Unraid supports 2 types of share:

    • User Shares
    • Disk Shares

    You can control which of these types of shares are to be used under -Settings->Global Share Settings. The default on Unraid is to have User -Shares enabled but Disk Shares disabled.

    It is sometimes important to realize that these are two different views -of the same underlying file system. Every file/folder that appears -under a User Share will also appear under the Disk Share for the -physical drive that is storing the file/folder.

    User Shares

    User Shares can be enabled/disabled via Settings->Global Share -Settings.

    From the Shares tab, you can either create a new share or edit -an existing share. Click the Help icon in the top-right of the -Unraid webGui when configuring shares for more information on the -settings available._

    User Shares are implemented by using Linux Fuse file system support. -What they do is provide an aggregated view of all top level folders of -the same name across the cache and the array drives. The name of this -top level folder is used as the share name. From a user perspective this -gives a view that can span multiple drives when viewed at the network -level. Note that no individual file will span multiple drives - it is -just the directory level that is given a unified view.

    When viewed at the Linux level then User Shares will appear under the -path /mnt/user. This includes the files on the main array and also -any for the share on any pool. It is important to note that a User Share -is just a logical view imposed on top of the underlying physical file -system so you can see the same files if you look at the physical level -(as described below for Disk Shares).

    • Current releases of Unraid also include the mount point -/mnt/user0 that shows the files in User Shares OMITTING any -files for a share that are on any pool. This is just a different -view of the files on your server. However This mount point is now -deprecated and may stop being available in a future Unraid release.

    Normally one creates User Shares using the Shares tab. However if you -manually create a top level folder on any drive the system will -automatically consider this to be a user Share and give it default -settings.

    Which physical drive in the main array is used to store a physical file -is controlled by a number of settings for the share:

    • Allocation method: This has various options:

      • Most Free: This option means that new files should go to the -disk with the most free space. It has the downside that one is -continually switching drives which keeps the drive involved spun -up.

      • Fill Up: This option means simply fill up drives in disk -order until the free space falls below the Minimum Free Space -setting, and when that happens move onto the next disk. Many -users like this setting because their content is static in -nature to they find this a simple way to manage their storage.

      • High Water: (default) This option attempts to provide a -compromise between continually switching drives as is caused by -the Most Free setting and filling up disks in a sensible -manner, but not fill each drive to capacity before using the -next one. The aim is to allow related files do be kept together -on the same drive and to let unused drives be spun down.

        • It works with switch points based by continually halving the -size of the largest drive in the array.
        • Many people find this confusing (particularly in an array with -drives of varying size). so as an example if you had an array -consisting of drives of 8TB, 3Tb and 2TB
          • The largest drive is 8TB so the switch points are 4TB, 2TB, -1Tb etc.
          • The 4TB switch point is active so The 8TB Drive one would be -filled to 4TB free space left.
          • The 2TB switch point becomes active so the 8TB and 3TB -drives each gets used in disk order until it they have 2TB -free space
          • The 1TB switch point becomes active so each drive now gets -used in disk order until it only has 1TB free space.
          • etc
    • Included or excluded drives: These settings allow you to -control which array drives can hold files for the share. Never set -both values, set only the one that is most convenient for you. If no -drives are specified under these settings then all drives allowed -under Settings >> Global Share settings are allowed.

    • Split level: This setting controls how files should be grouped.

    Important: in the event of there being contentions between the -Minimum free space, Split Level and the Allocation -method settings in deciding which would be an appropriate drive to -use the Split level setting always wins. This means that you can -get an out-of-space error even though there is plenty of space on -other array drives that the share can logically use.

    Changing any of these settings for a share only affects where any new -files are put. Any files already present in the share are left where -they are located when a setting is changed. It takes Manual action to -move existing files.

    Important: The Linux file systems used by Unraid are case sensitive -while the SMB share system is not. As an example this means that a -folder at the Linux level a folder called 'media' is different to one -called 'Media'. However at the network level case is ignored so for -example 'media', Media', 'MEDIA' would all be the same share. -However to take this example further you would only get the content of -one of the underlying 'media' or 'Media' folders to appear at the -network share level - and it can be non-obvious which one this would be.

    The following sections proved more detail on how these settings work:

    Allocation method

    When a new User share is created, or when any object (file or directory) -is created within a User share, the system must determine which data -disk the User share or object will be created on. In general, a new User -share, or object within a User share, will be created on the data disk -with the most free space. However there are a set of share configuration -parameters available to fine tune disk allocation.

    The basic allocation strategy for a share is defined by the Allocation -method configuration parameter. You may select one of three allocation -methods for the system to use.

    High Water

    The high water allocation method attempts to step fill each disk so at -the end of each step there is an equal free space left on each disk. The -idea is to progressively fill each disk but not constantly go back and -forth between disks each time new data is written to the array. Most -times, only a single disk will be needed when writing a series of files -to the array so the array will only spin-up the needed disk. The high -water level is initially set equal to one-half of the size of the -largest disk. A new high water level is again set to one-half of the -previous high level once all the disks have less free space than the -current high water level.

    The above example shows what will occur when there is a mix of 4 disks -varying is size from 500gig to 2T in size.

    First Pass - The high water level is set to one-half of the size of the -2T drive or 1T. Each disk will be filled until it has <1T of free space -remaining. This means no data is stored on disk1 or disk2 since both -already have <1T of free space. 500gig of data will be stored on disk3 -followed by 1T of data being stored on disk4.

    Second Pass - The high water level is reset to one-half of the previous -level or 500gig. Each disk will be filled until it has <500gig of free -space remaining. This means no data is stored on disk1 since it already -has <500gig of free space. 500gig of data will be stored on disk2 and -then 500gig of data will be stored on disk3 and finally 500gig of data -will be stored on disk4.

    Third Pass - The high water level is again reset to one-half of the -previous level or 250gig. Each disk will be filled until it has <250gig -of free space remaining. 250gig of data will be stored on disk1 and then -250gig of data will be stored on disk2 and then 250gig of data will be -stored on disk3 and finally 250gig of data will be stored on disk4. An -interesting note is that the 500gig disk does not get used at all until -the third pass. Don't be concerned if the smaller sized disks don't -immediately get used with this method.

    This pattern will continue with progressively smaller high water levels -until the disks are full.

    Most Free

    The most free allocation method simply picks the disk with the most free -space and writes the data to that disk. Each time a file is written -Unraid will check the free space on the disks and pick the one with the -most free space.

    Fill-Up

    The fill-up allocation method simply attempts to fill each disk in order -from the lowest numbered disk to the highest numbered disk. The fill-up -allocation method must be used in conjunction with the minimum free -space setting. Otherwise, Unraid will begin to give disk full errors and -not allow any more transfers once the first disk gets close to being -full.

    Min. Free Space

    The minimum free space setting is used with the allocation method and -split level. The Minimum Free space setting doesn't control how much -space is kept free, but instead it controls how much space must be free -for a drive to be chosen for a new file. The minimum free space setting -therefore tells Unraid to stop putting new content onto the disk when -the free space falls below the level you set (as long as the Split Level -setting indicates it can be split to a new disk). This must be used with -the fill-up allocation method or disk full errors will occur when there -is not enough space to fit a file you are trying to write to the array.

    First a brief explanation of how Unraid will typically receive a file. -Unraid typically receives data in this manner. First, Unraid receives -the request to store a file, named for example "file.eg". At this -time, Unraid has no idea how big "file.eg" is so Unraid will pick a -spot to place "file.eg" and begin to store the file data as the data -is transferred over the network. Now, this is important because Unraid -may pick a storage disk that does not have enough space to store the -complete "file.eg". Unraid doesn't know there is not enough space -when it first places the file so Unraid will only find out the disk -doesn't have enough space when the disk is full. At this point, the -transfer will fail with a disk full error.

    So, Unraid will write to a different disk if the minimum free space is -set to a value larger than the biggest file size you will ever transfer. -The recommended setting is 2 times the largest file size you will ever -transfer. For example, if the largest file you have is 8gig in size then -set the minimum free space to 16gig. This allows you to transfer files -that may vary in size somewhat and not accidentally transfer one too -large. The minimum free space is set in kilo-bytes.

    Here are some examples of the minimum free space setting;


    Free SpaceValue
    500 meg500000
    20 gig20000000
    40 gig40000000

    Note that unRAID will still place files on the disk if the split level -does not allow the files to be placed on another disk with more free -space.

    Also note that Unraid will typically not move a file onto a new disk if -you're over-writing or updating it. For example, a backup file that -grows in size over time could end up filling a disk and causing a disk -full error.

    IMPORTANT: There is also a Minimum Free Space setting for cache pools. -This is used to determine when a new file for a User Share with the Use -Cache setting having a value of Yes or Prefer should be written to the -cache or instead bypass the cache and go directly to the array. This -needs to be set if you want to avoid filling a cache pool which can -cause problems. As for this value when used with a User Share it -should be larger than the largest file you intend to write, and some -people like to make it significantly larger. You get to this setting by -clicking on a pool on the Main tab.

    Split level

    The split level setting tells Unraid how many folder levels are allowed -to be created on multiple disks. The split level can be used to ensure -that the contents of a folder are kept on the same disk. The split level -numbering starts with the user share being the top level and given the -number 1.

    IMPORTANT: in the event of there being contention between the -various settings for a share over which array drive to select for a file -the Split Level setting always takes precedence. This means the -Allocation Method and Minimum Free Space settings end up being -over-ridden. This can mean Unraid chooses a drive which does not have -enough space for the file so that an out-of-space error subsequently -occurs for the file.

    The Split level setting is one that many users find confusing to here -is a more detailed description of how it works.

    Here is an example showing a possible directory structure for a user -share called "Media".

    Note: I (the original author of this section) consider combining -media types into a single large share a poor way to store media. I use a -share for each media type. Movies is a share and TV shows is a share. I -combined the movies and TV shows to show the pitfalls in the split -levels when doing this as explained after the figure.

    Here is an explanation of the different split levels, referenced to the -folder structure above;

    1. Level 1
      • This is what you have if in the GUI you select the -"Automatically split only the top level directory as required" -option.
      • The top level Media share can be created on every disk.
      • Every other folder under the Media share must remain on a single -disk.
      • This setting does not allow the SD Movies, HD Movies, Kids -Movies or TV Shows folders to spread to multiple disks.
      • This setting is too low for all the media.
    2. Level 2
      • this is what you have if in the GUI you select the -"Automatically split only the top two directory levels as -required" option.
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder must remain on a single -disk.
      • This setting may work well. It will keep each movie and each TV -series together on a single disk.
      • This setting may give issues because it keeps each TV series on -a single disk. So, a disk may fill as new TV seasons are added -to a TV show which is on a disk which is close to full.
    3. Level 3
      • This is what you have if in the GUI you select "Automatically -split only the top three directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder must remain on a single disk.
      • This setting will allow the contents stored in each Movie Folder -to be spread out onto multiple disks.
      • This setting is too high for the different movie types.
    4. Level 4
      • This is what you have if in the GUI you select "Automatically -split only the top four directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder can be created on every disk.
      • This setting is too high because it will allow the contents of -every folder to be spread out onto multiple disks. The split -level is not being used to keep similar content together.

    The only valid split level for the above example is 2. This causes a -split level limitation which forces each complete TV series to a single -disk. This can force a new TV season to be placed on a disk which is -almost full and result in out of space errors once new episodes -completely fill the disk. The split level can't be increased to 3 -because each individual movie would not be contained to a single disk.

    The first way to fix this split level mismatch issue is to create -separate shares for the movies and the TV shows. This way, the movies -can be set to use a split level of 2 and the TV shows can use a split -level of 3.

    For Movies use a split level = 2. This allows the "SD Movies", "HD -Movies" and "Kids Movies" folders to be placed on every disk and it -keeps each individual movie folder on a single disk. This way, any -single movie folder and the contents of the movie folder will remain on -a single disk.

    For TV_Shows use a split level of either 1 or 2. A split level of 1 will -keep each TV series on a single disk and split level of 2 will keep each -season on a single disk. The split level of 2 means that the complete TV -series can be stored on multiple disks, however each individual season -of that TV series will be on a single disk.

    The second way to fix the issue is to add another folder level to the -movies, starting first with a Movies folder in the Media share and then -placing the different movie types below this.

    This user share structure must use split level = 3. SD Movies, HD -Movies, Kids Movies and each TV series can exist on multiple disks. This -structure means each TV season can be on a different disk. This has the -opposite issue compared to the first example. You can not use split -level 2 to force each complete TV series to remain on a single disk -without messing up the ability of the movies to split to every disk.

    Some things to keep in mind.

    • The above examples are to demonstrate the use of the split level. It -is not necessary to store your media sorted in the same format as -the above example illustrates. You may want to use a Movies share -and then just place a "Movie Name" folder for each movie directly -into the share without sorting the movies by type.

    • It is completely valid to force each complete TV series to stay on a -single disk. Just understand that a continuing TV series will keep -filling the disk where it is first placed. This may require manual -intervention to shift some TV series from an almost full disk to an -empty disk. Using the Most Free allocation method can help eliminate -the issue since a completely new TV series would be placed on the -disk with the most free space.

    • The above TV example applies to any similar share. It could apply to -a Pictures share where you store the pictures in folders based on -the year (2010, 2011, 2012 etc) or it could apply to a Music share -where you store the music in a folder for each artist. In these -cases, a split level of 1 would keep a whole year of pictures on a -single disk or it would keep all the music by an artist on a single -disk.

    Disable Split Level

    It is also possible to disable the split level by setting a high split -level. A file copy or move will fail if a folder is locked to a full -disk and an attempt is made to add more files into that folder. Setting -a high split level will ensure each file will get written to the server -as long as a disk has space for it.

    Split Level = 1 Example

    The following example demonstrates how the share behaves when the split -level is set to 1. The Share name is New_Movies. Each movie stored in -this share has its own folder. Inside the movie folder is the movie file -as well as some metadata files used by MediaBrowser.

    The above Windows Explorer screen shot shows the file structure of the -New_Movies share on the left and the contents of the A History of -Violence movie folder on the right. The levels for this share are -labeled on the example. This is what split level = 1 means:

    • A New_Movies folder can be created on each disk allowed by the -include and exclude disk settings. A new New_Movies folder will be -created on the next disk in line when the allocation method calls -for Unraid to begin filling the next disk. Note that the New_Movies -folder will only be created on the next disk in line when it is -necessary and not when the share is created.

    • The A History of Violence folder can only -exist on one disk. Once it is created on the disk, all of the -contents will remain on the same disk. Any changes or additions to -this folder will remain on the same disk. For example, a new file -called movie.nfo for the XBMC metadata might be created in this -folder in the future. The movie.nfo file will be created in the -existing A History of Violence folder. A duplicate A History of -Violence folder will not be created on another disk to store this new -file.

    You will notice that the movie folders (500) Days of Summer (2009) and -2 Fast 2 Furious (2003) both appear in the New_Movies share. The next -screen shot will show how each of these files is stored on a separate -disk.

    The above screen shot shows side by side Window Explorer views of the -file structure stored on disk1 and disk2. On the left is disk1 and on -the right is disk2. The left Explorer window shows the contents of -disk1. The New_Movies share is a folder stored at the top level or the -root of disk1 with the individual movie directories stored in this -directory. The right Explorer window shows the contents of disk2. The -New_Movies share is a folder stored at the top level or the root of -disk2 with the individual movie folders stored in this directory. As -files were being moved into the New_Movies share, Unraid created the -New_Movies folder on both disk1 and disk2 to store these files.

    The windows side by side can be used to examine the contents of the -New_Movies share on a disk by disk basis. You will notice that the movie -folder (500) Days of Summer (2009) is stored on disk1 and the movie -folder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted, -Unraid combines the movies stored on disk1 and disk2 into one network -share called New_Movies and both movies appear in the New_Movies network -share.

    Take note that a share called Movies is also visible on disk2.

    Split Level 0

    This is what you have if in the GUI you select "Manual: do not -Automatically split directories".

    Split level 0 is a special case. Split level 0 requires you to create -the desired top level or parent folder structure. Unraid will -unconditionally create an object on the disk that contains the parent -folders. Unraid will choose which disk to use according to the -allocation method if the parent folders exist on multiple disks.

    If you set the Split level to 0, then all directories/files created -under that share will be on the same disk where the directory within -that share share was originally created. In other words, use level 0 to -not allow the share to split automatically across disks

    NOTE: If you create the same folder structure on multiple disks then -Unraid will apply the other share settings to decide which disk to use.

    Example

    The server has 4 disks. A user share called Media is desired. Different -types of media will be stored in this share. The desired structure is;

    • disk1 - will hold the DVD movies.
    • disk2 - will hold the BluRay movies.
    • disk3 - will hold the BluRay movies.
    • disk4 - will hold the TV series.

    The desired structure is illustrated below.

    On the left side is how the user share will appear and on the right side -is the folder structure on each disk. The user will go to each disk and -create the folders shown in red to create the storage as listed above. -Then, the Media folder as well as the DVD Movies, BluRay Movies and TV -Shows folders become the parent folders for everything stored in the -Media share. The media will be sorted by disk as follows;

    • Movies placed in the DVD Movies folder will go to disk1.
    • Movies placed in the BluRay Movies folder will go to disk2 or disk3. -The disk is selected by the allocation method.
    • TV shows placed in the TV Shows folder will go to disk4.

    Say one day that disk1 is full and disk5 is added to the server to hold -new DVD Movies. The same folders on disk1 must be created on the new -disk5. In other words, the folder Media and sub-folder DVD Movies must -be created on disk5. Then, Unraid can use either disk1 or disk5 to store -DVD Movies.

    Split By Character

    Specify a character in the split level box to use this method. Then, -Unraid will not allow any folder name containing the character to split. -For example, set the split level to an opening square bracket ( [ ) -instead of a number. Then, create each movie folder with the year -encased in square brackets after the title in this manner - Iron Man 2 -[2010]. Unraid will see the opening square bracket ( [ ) and it will -not split this folder or any content stored inside this folder.

    This type of split level can allow different levels of sub-folders to be -specified as not splitting simply by inserting the character into the -folder name which should not split. This can overcome the limitation of -having a fixed split level for a share.

    Included and Excluded disk(s)

    The included disk(s) and excluded disk(s) parameters control which disks -are allowed to be used by each user share. These parameters can be used -separately or together to define the group of disks allowed for writing -files to each user share. The disks are entered by disk number with a -comma separating each disk, for example "disk2,disk5".

    Unraid will first check the included disks(s) set and then the Excluded -disk(s) set when deciding which disk to place a file on. Then, Unraid -will use the split level and allocation method to pick a disk which is -allowed to hold the file.

    Note: The Include/Exclude settings at the individual share level -only control which disks new files can be written to. Files on other -disks that are in a folder corresponding to the share name will still -show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are -candidates for allocation to that share. All disks may be used by the -user share when the Included disk(s) parameter is left blank. Specify -the disks to include here. For example, set the included disk(s) to -"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and -disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are -excluded from use by the user share. No disks are excluded from use by -the user share when the excluded disk(s) parameter is left blank. -Specify the disks to exclude here. For example, set the excluded disk(s) -to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If you have Docker or VMs enabled then a number of default shares are -set up to support their use. It is not mandated that you use these -shares (and the system will let you remove them if you do not want to -use them for their standard purpose) but it is recommended as it tends -to make it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata: this is the default location for storing working files -associated with docker containers. Typically there will be a -sub-folder for each docker container.
    • system: this is the default location for storing the docker -application binaries, and VM XML templates
    • domains: this is the default location for storing virtual disk -images (vdisks) that are used by VMs.
    • isos: this is the default location for storing CD iso images for -use with VMs.

    Unraid 6.12

    The Unraid 6.12 release has introduced some new terminology to make it -clearer to new users where files are initially placed and where they -will end up. The same functionality is present in earlier releases, but -has often been misunderstood by new users.

    Primary Storage

    This is the location to which new files will be written.

    If Primary storage is below the Minimum Free Space setting then new -files and folders will be created in Secondary storage, if configured

    For the Primary storage drop-down:

    • this option is mandatory. ie, Primary storage must be selected
    • any named pool can be selected
    • "Array" can be selected (meaning the Unraid array)

    Secondary Storage

    This is the location where files will be moved to if appropriate.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this -share i.e Secondary storage is optional
    • if Primary storage is a pool name, then the only options are -"none" and "Array"
    • if Primary storage is "Array", then only "none" appears as an -option

    Unraid 6.11 and earlier

    The following settings are only found in Unraid 6.11 and earlier. They -achieve the same functionality as the settings available in 6.12 but are -presented differently.

    Use Cache (and Mover Behavior with User Shares)

    Note: Starting with Unraid 6.9.0 multiple pools can exist and they -can have any name the user chooses. Any of these pools can act act as a -cache in the way Unraid uses the term. The word cache therefore is -referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called mover that is used in -conjunction with User Shares. It's behavior is controlled by the "Use -Cache for new files" setting under each User Share. The way these -different settings operate is as follows

    • Yes: Write new files to the cache as long as the free space on -the cache is above the Minimum free space value. If the free space -is below that then by-pass the cache and write the files directly to -the main array.

      When mover runs it will attempt to move files to the main array as -long as they are not currently open. Which array drive will get the -file is controlled by the combination of the Allocation method, -Split level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive -will get the file is controlled by the combination of the -Allocation method, Split level, and Minimum Free Space setting -for the share.

      When mover runs it will take no action on files for this share -even if there are files on the cache that logically belong to this -share.

    • Only: Write new files directly to the cache. If the free space -on the cache is below the Minimum free space setting for the cache -then the write will fail with an out-of-space error.

      When mover runs it will take no action on files for this share -even if there are files on the main array that logically belong to -this share.

    • Prefer: Write new files to the cache if the free space on the -cache is above the Minimum free space setting for the share, and -if the free space falls below that value then write the files to the -main array instead.

      When mover runs it will attempt to move any files for this share -that are on the main array back to the cache as long as the free -space on the cache is above the Minimum free space setting for the -cache

      It is the default setting for the appdata and System Shares that -are used to support the Docker and VM sub-systems. In typical use -you want the files/folders belonging to these shares to reside on -the cache as you get much better performance from Docker containers -and VMs if their files are not on the main array (due to the cost of -maintaining parity on the main array significantly slowing down -write operations).

      This setting works for a share even if you do not have (yet) a -physical cache drive(s) as then files will simply be written -directly to the array. If at a later date you add a cache drive -mover will now automatically try and move the files in any share set -to Prefer to the pool defined as the cache for the share to improve -performance. This is why it is the default for shares that are -typically located on the cache rather than Only as it caters for -those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where one wants -the files for a particular share initially written to a pool acting as a -cache to maximise write speed, but later you want it to be moved to the -main array for long term storage. Most of the time all that is required -is to set the Use Cache setting for the share to Yes and the default -behaviour handles the rest with no further user interaction.

    Sometimes for one reason or another users find that the files seem to be -'stuck' on a pool. The way to proceed in such a case to get the files -belonging to a share from a pool onto the main array is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved).
    • Change the Use Cache setting for the share to Yes
    • Manually run mover from the Main tab to get it to move Yes -type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use if you disabled them earlier.
    • (optional) change the Use Cache setting to Only to say files -for this share can never be written to the array.
    Moving Files from the Array to a Pool (cache)

    One typically wants files associated with running Docker containers or -VMs on a pool to maximise performance. It is not unusual for one reason -or another to find that one has files on the main array which you really -want to be on a pool. In particular this is likely to happen for the -appdata or system shares

    The way to proceed to get the files belonging to a share from the main -array onto a pool is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved)
    • Change the Use Cache setting for the share to Prefer
    • Manually run mover from the Main tab to get it to move -Prefer type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use.
    • (optional) change the Use Cache setting to No to say files for -this share can never be cached on a pool.

    Disk Shares

    These are shares that relate to individual array drives or pools within -the Unraid system and that are visible over the network. By default if -User Shares are enabled then Disk Shares are not enabled (see the -IMPORTANT section below for the reason why this is the case). If you -want the Disk Shares to be enabled then this is done under -Settings->Global Share Settings. The Disk Shares will then appear in -the Unraid GUI under a Disk Shares section on the Shares tab. You will -want to modify the user permissions to restrict network user access if -desired, just like User Shares.

    When viewed at the Linux level the physical devices or pools will appear -directly under /mnt with a name corresponding to the array drive or -pool. (This happens regardless of whether Disk Shares are enabled) . -Examples of such names are:

    /mnt/diskX: these are array drives where X corresponds to the disk -number that shows in the Unraid GUI. The corresponding Disk Share at the -network level would be diskX

    /mnt/pool-name: These are pools. A single pool can actually consist of -multiple drives but Unraid treats them as if they were one drive. The -commonest example of a pool-name is 'cache' but it can be any name -defined by the user. The corresponding Disk Share at the network level -would be pool-name.

    The Unraid flash device that is used to boot Unraid and store all user -settings is also a physical device, but is not normally considered to be -a Disk Share. If you want it visible on the network then you can click -on it in the Main tab and set it to appear at the network level as the -'flash' share. At the Linux level it is mounted at /boot

    IMPORTANT -If you have both Disk Shares and User Shares enabled then there -is an important restriction that you must observe if you want to -avoid potential data loss. What you must NEVER do is copy -between a User Share and a Disk Share in the same copy -operation where the folder name on the Disk Share corresponds to the -User Share name. This is because at the base system level Linux does -not understand User Shares and therefore that a file on a Disk -Share and a User Share can be different views of the same -file. If you mix the share types in the same copy command you can -end up trying to copy the file to itself which results in the file -being truncated to zero length and its content thus being lost.

    There is no problem if the copy is between shares of the same type, -or copying to/from a disk mounted as an Unassigned Device.

    There is another quirk of the interaction between Linux and the Unraid -User Share system that users can encounter if they are working at the -Disk Share level. The Linux command for Move is implemented by first -trying a rename on the file (which is fast) and only if that fails does -it do a copy then delete operation. This can mean that under some -circumstances when working locally on the server (e.g. from the command -line when you try to move files from one user share to another, Linux -will often simply rename the files so they have a different path on the -same disk, in violation of any user share settings such as included -disks. The workaround for this is to instead explicitly copy from source -to destination so that new files get created following the user share -settings, then deleting from the source.

    Network access

    You can control what protocols should be supported for accessing the -Unraid server across the network. Click on Settings->Network Services -to see the various options available.. These options are:

    • SMB: This the standard protocol used by Windows systems. It is -widely implemented on other systems.
    • NFS: Network File System. This is a protocol widely -used on Unix compatible systems.
    • AFP: Apple File Protocol. This is the protocol that -has historically been used on Apple Mac systems. It is now a -deprecated option as the latest versions of MacOS now use SMB as the -transferred protocol for accessing files and folders over the -network.
    • FTP: File Transfer Protocol.

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the visibility of the share on the -network for each of the protocols you have enabled. The setting is -labelled Export and has the following options:

    • Yes: With this setting the share will be visible across the -network.
    • Yes (Hidden): With this setting the share can be accessed across -the network but will not be listed when browsing the shares on the -server. Users can still access the share as long as they know the -name and the user is prepared to enter in manually.
    • No: With this option selected then it is not possible to access -the share across the network.

    Access Permissions

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the access rights of the share on the -network for each of the protocols you have enabled. The setting is -labelled Security and has the following options:

    • Public: All users have both read and write access to the -contents of the share
    • Secure: All users including guests have read access, you select -which of your users have write access
    • Private: You select which of your users have access and for each -user whether that user has read/write or read-only access.

    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares that many -users fall foul of:

    • This is the fact that Windows only allows a single username to -be used to connect to a specific server at any given time. All -attempts to then connect to a different share on the same server -that are not public shares put up a Username/Password prompt and -this fails as though you have entered an incorrect password for this -username. If you have any shares on the server set to Private or -Secure access it can therefore be important that you connect to -such a share first before any shares set for Public access which -may connect as a guest user and make subsequent attempts to connect -with a specific user fail.
    • A workaround that can help with avoiding this issue is the fact that -if you access a server both by it's network name and via it's IP -address then Windows will treat it a two separate servers as far as -authentication is concerned.
    - - +

    Shares

    astuce

    Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.

    One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives.

    There are two types of shares in Unraid:

    It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder.

    When you first initialize your array, Unraid automatically creates a handful of user shares. These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data.

    You manage shares from the Shares tab in Unraid. You enable or disable shares in Settings > Global Share Settings, with user shares being enabled by default.

    + + \ No newline at end of file diff --git a/fr/unraid-os/manual/shares/network-access/index.html b/fr/unraid-os/manual/shares/network-access/index.html new file mode 100644 index 000000000..22f5819ad --- /dev/null +++ b/fr/unraid-os/manual/shares/network-access/index.html @@ -0,0 +1,22 @@ + + + + + +Network access | Unraid Docs + + + + + + + + + + +
    +

    Network access

    Communication protocols

    For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:

    • SMB, or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X.
    • NFS, or Network File System, is a widely-used protocol on Unix-compatible systems.
    • FTP, or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.
    info

    As of Unraid 6.9, AFP support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in Settings > SMB set the Enhanced macOS interoperability parameter to Yes.

    Protocol selection

    Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases.

    For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer.

    Access permissions at share level

    Each protocol can be configured at the share level. On the Shares tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled Export and has the following options:

    • Yes - The share will be visible across the network.
    • Yes (Hidden) - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually.
    • No - This will disable network access through that protocol, for that share.

    Share security

    Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available.

    For example, you may configure a movies share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials.

    When you select an existing share on the Shares tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols you have enabled.

    The Security setting has the following options:

    • Public - The share is unsecured and all users have both read and write access to the contents of the share.
    • Secure - The share is secured and all users, including guests, have read access. You can select which of your users have write access.
    • Private - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.
    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails.

    If you have any shares on the server set to Private or Secure access, it is important that you connect to that share first, before any shares set for Public access.

    As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/shares/user-shares/index.html b/fr/unraid-os/manual/shares/user-shares/index.html new file mode 100644 index 000000000..44c2c8dc3 --- /dev/null +++ b/fr/unraid-os/manual/shares/user-shares/index.html @@ -0,0 +1,27 @@ + + + + + +User shares | Unraid Docs + + + + + + + + + + +
    +

    User shares

    astuce

    Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.

    Overview

    User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view.

    You manage User Shares from the Shares tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes.

    When viewed at the Linux level, user shares appear under the path /mnt/user. This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for Disk Shares.

    Note that current releases of Unraid also include the mount point /mnt/user0 that shows the files in User Shares omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release.

    The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the allocation method, included or excluded disks, and the split level.

    If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action.

    attention

    There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation.

    This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.

    Share settings

    astuce

    When you configure the settings for the share, select the Help icon in the top-right of the Unraid webGUI for detailed information on the individual settings.

    Minimum free space

    The Minimum free space setting is used with the allocation method and split level. This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk).

    remarque

    This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.

    When Unraid receives a request to store a file, say for example file.eg, it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer.

    We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large.

    The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter 50GB. Note that new user shares will have a default 10% minimum free space assignment.

    Unraid will still place files on the disk if the split level does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error.

    attention

    There is also a Minimum Free Space setting for cache pools. This is used to determine if a new file for a user share, with the Use Cache setting of Yes or Prefer, should be written to the +cache or, instead, bypass the cache and go directly to the array.

    This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.

    Primary and Secondary storage (Unraid 6.12)

    The Primary storage parameter defines the location - Cache, Array, or any named pool - to which new files will be written for the selected share. The Secondary storage parameter sets the location where files will be moved to if there is not enough room in primary storage.

    When primary storage is below the Minimum Free Space value, new files and folders are created in secondary storage.

    remarque

    If you select an array or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.

    Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users.

    For the Primary storage drop-down:

    • This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of Cache
      • any named pool can be selected.
      • Array can be selected.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this share. Note that secondary storage is optional.
      • if Primary storage is a pool name, then the only options are None and Array.
      • if Primary storage is Array, then only None appears as an option.

    Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)

    The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently.

    INFO

    Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called Mover that is used in conjunction with user shares. It's behavior is controlled by the Use Cache for new files setting under each user share. The way these settings operate is as follows:

    • Yes: Write new files to the cache as long as the free space on the cache is above the Minimum free space value. If the free space is below that then bypass the cache and write the files directly to the main array.

      When Mover runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the Allocation Method, Split Level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive will get the file is controlled by the combination of the Allocation method, Split level, and Minimum Free Space setting for the share.

      When Mover runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.

    • Only: Write new files directly to the cache. If the free space on the cache is below the Minimum free space setting for the cache then the write will fail with an out-of-space error.

      When Mover runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.

    • Prefer: Write new files to the cache if the free space on the cache is above the Minimum free space setting for the share, and if the free space falls below that value then write the files to the main array instead.

      When Mover runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the Minimum free space setting for the cache

      It is the default setting for the appdata and system shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations.

      This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, Mover will automatically try and move the files in any share set to Prefer to the pool defined as the cache for the share. This is why Prefer is the default for shares that are located on the cache rather than Only as it caters to those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage.

    Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Cache -> Array.
    3. Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the pool (cache) to the array.
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Moving Files from the Array to a Pool (cache)

    You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the appdata or default system shares.

    The way to proceed to get the files belonging to a share from the main array onto a pool is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Array -> Cache.
    3. Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the array to the pool (cache).
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Allocation method

    When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user +share, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation.

    The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: High-water, Most-free, or Fill-up.

    High-water method

    The High-water setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level.

    Example

    If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass.

    • While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left.
    • When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space
    • Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.

    This pattern continues with progressively smaller high-water levels until the disks are full.

    Fill-up method

    The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free +space setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full.

    Most-free method

    The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the +most free space.

    Split level

    The Split level setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level +numbering starts with the user share being the top level and given the number 1.

    Automatically split any directory as required

    When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured Allocation method. If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory.

    Automatically split only the top level directory as required

    When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory.

    Automatically split only the top "N" level directories as required

    Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.

    Manual - do not automatically split directories

    When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists.

    info

    In the event of there being conflicts between the Minimum free space, Split Level and the Allocation method settings in deciding which would be an appropriate drive to use, the Split level setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.

    Included or excluded disks

    These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under Settings > Global Share settings are allowed.

    Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file.

    info

    The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If Docker or VMs are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container.
    • system - This is the default location for storing the docker application binaries, and VM XML templates
    • domains - This is the default location for storing virtual disk images (vdisks) that are used by VMs.
    • isos - This is the default location for storing CD ISO images for use with VMs.
    info

    We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the isos share that can be shared over the network so you can place new ISOs to use in virtual machines.

    + + + + \ No newline at end of file diff --git a/fr/unraid-os/manual/storage-management/index.html b/fr/unraid-os/manual/storage-management/index.html index 83caf2a20..172aadaf5 100644 --- a/fr/unraid-os/manual/storage-management/index.html +++ b/fr/unraid-os/manual/storage-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Storage Management

    To assign devices to +

    Storage Management

    To assign devices to the array and/or cache, first login to the server's webGui. Click on the Main tab and select the devices to assign to slots for parity, data, and cache disks. Assigning devices to Unraid is easy! Just @@ -920,7 +920,7 @@ parity system is file system agnostic as it works at the physical sector level and is not even aware of the file system that is in use on any particular drive.

    In addition drives can be -encrypted. A point to +encrypted. A point to note about using encryption is that if you get any sort of file system corruption then encryption can make it harder (and sometimes impossible to recover data on the corrupted file system.

    If using a cache pool (i.e multiple drives) then the supported types are @@ -1412,8 +1412,8 @@ using the BTRFS file system.

    BTRFS supports a variety of RAID profiles and these will perform more like a traditional RAID system giving much higher throughput than the main Unraid array.

    Recovery after drive failure tends to be harder and more prone to lead -to data loss which is one disadvantage of using pools for everything.

    - - +to data loss which is one disadvantage of using pools for everything.

    + + \ No newline at end of file diff --git a/fr/unraid-os/manual/tools/index.html b/fr/unraid-os/manual/tools/index.html index 2c2edd06b..9bf730b00 100644 --- a/fr/unraid-os/manual/tools/index.html +++ b/fr/unraid-os/manual/tools/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools +

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools to help with managing an Unraid server on a day-to-day basis. The list of tools available is often extended by 3rd party supplied plugins.

    Unraid Standard Tools

    This section covers tools that are supplied as standard with an Unraid installation. They are grouped into a number of sections for ease of @@ -68,8 +68,8 @@ application's appdata config files without utilizing the command prompt)

    Docker Safe New Perms

    This is part of the Fix Common Problems plugin.

    It differs from the standard Unraid New Permissions tool in that it will never change permissions on the appdata folder/share that is normally -used to store working files for docker containers.

    About

    Update Assistant

    - - +used to store working files for docker containers.

    About

    Update Assistant

    + + \ No newline at end of file diff --git a/fr/unraid-os/manual/troubleshooting/index.html b/fr/unraid-os/manual/troubleshooting/index.html index 3ec1666eb..ab49a20f4 100644 --- a/fr/unraid-os/manual/troubleshooting/index.html +++ b/fr/unraid-os/manual/troubleshooting/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This +

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This section is intended to help with resolving issues that are most commonly encountered.

    There are some important general guidelines that it is recommended that a user follows that will help with any troubleshooting that may be @@ -134,7 +134,7 @@ do so to provide the logs captured by the syslog server as these are not included in the standard system diagnostics.

    Docker Containers

    The standard system diagnostics do not contain much that will help with diagnosing issues with specific docker containers.

    MORE DETAIL NEEDED

    VMs

    The standard system diagnostics do not contain much that will help with -diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting +diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting Started section of the documentation.

    If for any reason you decide that you need to redo the flash drive then it is a good idea to make sure you first backup the current flash drive @@ -600,7 +600,7 @@ User Share will never appear to be on the same mount point so a copy + delete is done automatically.

  • Make sure the mount points for source and target appear to be different at the Linux level.
  • Move between physical drives rather than at the User Share level.
  • - - + + \ No newline at end of file diff --git a/fr/unraid-os/manual/upgrade-instructions/index.html b/fr/unraid-os/manual/upgrade-instructions/index.html index cc4d1cb92..f9da4d915 100644 --- a/fr/unraid-os/manual/upgrade-instructions/index.html +++ b/fr/unraid-os/manual/upgrade-instructions/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your +

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your USB flash device. You can do this by copying the entire contents of the "flash" share to a separate computer.

    From version 6.4 or higher

    1. Boot your server up and login to the web interface
    2. Click the Tools tab
    3. Click "Update OS" under the About section
    4. Click "Check for Updates" to see if a new release is available
    5. Click "Update" to apply the update
    6. Once the upgrade is complete, reboot your server for it to take effect

    Note: You can optionally install releases from the "Next" branch as @@ -100,7 +100,7 @@ earlier.

    From version 5.x or earlier

    Please see this forum post for information on upgrading.

    Manual Upgrade or Downgrade

    This is useful if you don't have access to the Unraid webgui for some reason.

    Manual upgrade using a network share or by putting the flash drive in another system

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Unzip that file locally
    • Access the 'flash' share on the server, or physically put the flash drive in the local computer
    • If the previous directory does not exist on the flash drive, create it
    • Move (not copy) bz* and changes.txt from the root of the flash drive to the previous directory, overwriting files as needed
    • Copy bz* and changes.txt from the unzipped file to the root of the flash drive
    • Reboot the server

    Manual upgrade from the Unraid command line

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Login to the Unraid server using SSH, telnet, or a local keyboard/mouse
    • Type these commands one line at a time and press enter. If there are errors along the way, stop and ask for help:
    cd /tmp
    rm -f unraid.zip
    rm -rf unraid_install
    wget -O unraid.zip <paste the URL from above>
    [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP the file was not downloaded"
    unzip -d unraid_install unraid.zip
    [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP the file was not extracted properly"
    [[ ! -d /boot/previous ]] && mkdir /boot/previous
    mv /boot/bz* /boot/previous
    mv /boot/changes.txt /boot/previous
    cp unraid_install/bz* /boot
    cp unraid_install/changes.txt /boot
    sync -f /boot
    sleep 5
    reboot
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/manual/users/index.html b/fr/unraid-os/manual/users/index.html index fa1c3b615..3b2a179f9 100644 --- a/fr/unraid-os/manual/users/index.html +++ b/fr/unraid-os/manual/users/index.html @@ -9,16 +9,16 @@ - - - + + +
    -

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does +

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does not support the standard set of user facilities available on most Linux systems. Instead the users defined in Unraid can be divided into:

    • Admin user:
    • Share permissions Users:
    • Other Users:

    Admin User (root)

    Share permissions Users

    Other Users

    - - + + \ No newline at end of file diff --git a/fr/unraid-os/manual/vm-management/index.html b/fr/unraid-os/manual/vm-management/index.html index e23d9f40e..137ce5cda 100644 --- a/fr/unraid-os/manual/vm-management/index.html +++ b/fr/unraid-os/manual/vm-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running +

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running Linux-based applications such as media servers, backup software, and file sharing solutions, virtual machines add support for non-Linux workloads and the ability to utilize devices that the host cannot (think @@ -382,7 +382,7 @@ file to install the QEMU guest agent.

  • Shut down your VM.
  • Step 6: Remove the temporary vdisk and start the VM

    1. Click to edit the VM using the form-based editor (the pencil symbol)
    2. Remove the secondary vdisk
    3. Ensure the primary vdisk is pointing to your original vdisk file (it may be pointing to the secondary vdisk, and if so, update it to point to your actual vdisk)
    4. When completed, click Update
    5. Start your VM
    6. Verify your device manager shows no warnings
    7. DONE!
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/manual/vm-support/index.html b/fr/unraid-os/manual/vm-support/index.html index 0c6f675a0..3a793648f 100644 --- a/fr/unraid-os/manual/vm-support/index.html +++ b/fr/unraid-os/manual/vm-support/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    VM Support

    Overview

    Unraid 6 currently supports the virtualization of nearly any 64-bit +

    - - + + \ No newline at end of file diff --git a/fr/unraid-os/manual/what-is-unraid/index.html b/fr/unraid-os/manual/what-is-unraid/index.html index b0f50eada..da4aae822 100644 --- a/fr/unraid-os/manual/what-is-unraid/index.html +++ b/fr/unraid-os/manual/what-is-unraid/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you +

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you with the ultimate control over your hardware. In addition to performing the duties of a robust NAS (network-attached storage), Unraid is also capable of acting as an application server and virtual machine host. @@ -208,8 +208,8 @@ transfer files from the cache to the array.

  • Docker Containers. Manage application controls from a single pane of glass. Add applications with minimal effort using community-provided templates.
  • Virtual Machines. Choose between pre-created virtual machine -images or create your own custom VM from scratch.
  • - - +images or create your own custom VM from scratch.
    + + \ No newline at end of file diff --git a/fr/unraid-os/manual/zfs/placeholder/index.html b/fr/unraid-os/manual/zfs/placeholder/index.html index 6be5821cf..c06488f22 100644 --- a/fr/unraid-os/manual/zfs/placeholder/index.html +++ b/fr/unraid-os/manual/zfs/placeholder/index.html @@ -9,14 +9,14 @@ - - - + + + - - +
    + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.10.0/index.html b/fr/unraid-os/release-notes/6.10.0/index.html index 4c8d54f4c..a6e078a78 100644 --- a/fr/unraid-os/release-notes/6.10.0/index.html +++ b/fr/unraid-os/release-notes/6.10.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -80,7 +80,7 @@ daemon, we recommend setting up either a static DHCP lease, or assigning a static IP address for your server.  Finally, we have set up nginx such that the URL's:

    • http://<server-name>.<local-tld>/

    or

    • https://<server-name>.<local-tld>/

    will redirect to https://[lan-ip].[hash].myunraid.net

    More information including use cases may be found in Documentation -here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been +here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been compiled with OpenGL support, and ARM emulation (experimental).

    Windows 11 Support

    To support Windows 11 which requires TPM and Secure boot, we have added TPM emulation; and, added a "Windows 11" VM template which automatically selects TPM-aware OVMF bios.  Also, here are @@ -175,7 +175,7 @@ component called wsdd2 in an effort to eliminate instances where the wsd daemon would start consuming 100% of a CPU core.

  • Fixed issue where you couldn't create a docker image on a share name that contains a space.
  • Fixed issue where 'mover' would not move to a pool name that -contains a space.
  • Fixed issue in User Share +contains a space.
  • Fixed issue in User Share file system where permissions were not being honored.
  • Fixed jumbo frames not working.
  • sysctl: handle net.netfilter.nf_conntrack_count max exceeded (increase setting to 131072) - hattip to Community Member @DieFalse
  • Fixed bug found by @thohell where md_sync_limit was not being honored to limit stripe_head cache usage when other I/O is active. @@ -259,7 +259,7 @@ shares
  • webgui: jQuery: version 3.6.0
  • webgui: present CA-signed certificate subject as a link
  • webgui: privatize host in diagnostics
  • webgui: refactor UpdateDNS.php: anonymize verbose output by default, other improvements
  • webgui: remove 'My Servers' skeleton page
  • webgui: require sign in to provision cert
  • webgui: support simultaneous LAN SSL with self-signed cert and DNS-based SSL with Lets Encrypt cert
  • webgui: various Multi-language corrections
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.10.1/index.html b/fr/unraid-os/release-notes/6.10.1/index.html index 82d4a63ac..7983e815a 100644 --- a/fr/unraid-os/release-notes/6.10.1/index.html +++ b/fr/unraid-os/release-notes/6.10.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ introduced a regression where only partition 1 was considered, leaving those users unable to complete the boot sequence.

    This is fixed in 6.10.1 - and this is the only functional change in 6.10.1 vs. 6.10.0.

    Change Log vs. Unraid OS 6.10.0

    Management

    • startup: fix regression: support USB flash boot from other than partition 1
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.10.2/index.html b/fr/unraid-os/release-notes/6.10.2/index.html index 35eb184da..cd4a4b57b 100644 --- a/fr/unraid-os/release-notes/6.10.2/index.html +++ b/fr/unraid-os/release-notes/6.10.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -50,7 +50,7 @@ 'Auto' to 'Strict'
  • webgui: Fixed: smGlue not included when selecting a controller
  • webgui: Fixed: allow share names with embedded ampersand
  • webgui: add LXC terminal support (for LXC Plugin)
  • webgui: Docker Web UI to use Docker label for icons as fallback
  • webgui: VM Manager: support libvirt networks (make libvirt networks accessible via gui)
  • webgui: fix issue where 'root' login works with password from another username which includes string 'root'
  • webgui: Update OS page spelling corrction: warninging -> warning
  • webgui: helptext review: minor corrections
  • - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.10.3/index.html b/fr/unraid-os/release-notes/6.10.3/index.html index 8fa17c601..17d09f6b1 100644 --- a/fr/unraid-os/release-notes/6.10.3/index.html +++ b/fr/unraid-os/release-notes/6.10.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -20,7 +20,7 @@ reports of data corruption involved platforms which also (coincidentally) used 'tg3' network driver. If you created a blank 'config/modprobe.d/tg3.conf' file you may remove it.

    Plugin authors: A plugin file may include an <ALERT> tag which displays a markdown formatted message when a new version is available. Use this to give instructions or warnings to users before the upgrade is done.

    Brought back color-coding in logging windows.

    Bug fixes

    Fix issue detecting Mellanox NIC.

    Misc. webGUI bug fixes

    Change Log vs. Unraid OS 6.10.2

    Base distro

    • no changes

    Linux kernel

    • version 5.15.46-Unraid
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough

    Management

    • startup: improve network device detection
    • webgui: Added color coding in log files
    • webgui: In case of flash corruption try the test again
    • webgui: Improved syslog reading
    • webgui: Added log size setting when viewing syslog
    • webgui: Plugin manager: add ALERT message function
    • webgui: Add INFO icon to banner
    • webgui: Added translations to PageMap page
    • webgui: Fix: non-correcting parity check actually correcting if non-English language pack installed
    • webgui: Updated azure/gray themes
      • Better support for Firefox
      • Move utilization and notification indicators to the right
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.11.0/index.html b/fr/unraid-os/release-notes/6.11.0/index.html index 3a7b63924..592b51d29 100644 --- a/fr/unraid-os/release-notes/6.11.0/index.html +++ b/fr/unraid-os/release-notes/6.11.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -25,7 +25,7 @@ "btrfs fi" commands will attempt to read btrfs metadata from this device which fails because there really is not a btrfs filesystem there.

  • Fixed bug in mover that prevented files from being moved from unRAID array to a cache pool (mode Prefer) if the share name contains a space.

  • Change Log vs. Unraid OS 6.10.3

    Management

    • Add sha256 checks of un-zipped files in unRAIDServer.plg.
    • bash: in /etc/profile omit "." (current directory) from PATH
    • docker: do not call 'docker stop' if there are no running containers
    • emhttpd: improve standby (spinning) support
    • mover: fixed issue preventing moving filed from array to cache if share name contains a space
    • rc.nginx: enable OCSP stapling on certs which include an OCSP responder URL
    • rc.nginx: compress 'woff' font files and instruct browser to cache
    • rc.wireguard: add better troubleshooting for WireGuard autostart
    • rc.S: support early load of plugin driver modules
    • SMB: fixed 'fruit' settings for the USB Flash boot device
    • SMB: remove NTLMv1 support since removed from Linux kernel
    • SMB: (temporarily) move vfs_fruit settings into separate /etc/samba/smb-fruit.conf file
    • SMB: (temporarily) get rid of Samba 'idmap_hash is deprecated' nag lines
    • startup: Prevent installing downgraded versions of packages which might exist in /boot/extra
    • upc: version v1.3.0
    • webgui: Plugin system update
      • Detach frontend and backend operation
      • Use nchan as communication channel
      • Allow window to be closed while backend continues
      • Use SWAL as window manager
      • Added multi remove ability on Plugins page
      • Added update all plugins with details
    • webgui: docker: use docker label as primary source for WebUI
      • This makes the 'net.unraid.docker.webui' docker label the primary source when parsing the web UI address. If the docker label is missing, the template value will be used instead.
    • webgui: Update Credits.page
    • webgui: VM manager: Fix VM log can not open when VM name has an embedded '#'
    • webgui: Management Access page: add details for self-signed certs
    • webgui: Parity check: fix regression error
    • webgui: Remove session creation in scripts
    • webgui: Update ssh key regex
      • Add support for ed25519/sk-ed25519
      • Remove support for ecdsa (insecure)
      • Use proper regex to check for valid key types
    • webgui: misc. style updates
    • webgui: Management access: HTTP port setting should always be enabled
    • webgui: Fix: preserve vnc port settings
    • webgui: Fix regression error in plugin system
    • webgui: Fix issue installing registration keys
    • webgui: Highlight case selection when custom image is selected
    • webgui: fix(upc): v1.4.2 apiVersion check regression
    • webgui: Update Disk Capabilities pages for NVME drives
    • webgui: chore(upc): v1.6.0
    • webgui: Plugin system and docker update
    • webgui: System info - style update
    • webgui: Plugins: keep header buttons in same position
    • webgui: Prevent overflow in container size for low resolutions
    • webgui: VM Manager: Add boot order to GUI and CD hot plug function
    • webgui: Docker Manager: add ability to specify shell with container label.
    • webgui: fix: Discord notification agent url
    • webgui: Suppress info icon in banner message when no info is available
    • webgui: Add Spindown message and use -n for identity if scsi drive.
    • webgui: Fix SAS Selftest
    • webgui: Fix plugin multi updates
    • webgui: UPS display enhancements:
      • Add icon for each category
      • Add translation in UPS section on dashboard
      • Add Output voltage / frequency value
      • Add coloring depending on settings
      • Normalize units
      • Make updates near real-time
      • Added UPS model field
    • webgui: JQuery: version 3.6.1
    • webgui: JQueryUI: version 1.13.2
    • webgui: improved 'cache busting' on font file urls
    • webgui: Fixed: text color in docker popup window sometimes wrong
    • webgui: Fixed: show read errors during Read Check
    • webgui: VM Manager: Add USB Startup policy; add Missing USB support
    • webgui: Docker: fixed javascript error when no containers exist
    • webgui: added 3rd party system diagnostics
      • added diagnostics for third party plugin packages
      • added diagnostics for /dev/dri devices
      • added diagnostics for /dev/dvb devices
      • added diagnostics for nvidia devices

    Linux kernel

    • version 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166)
    • md/unraid: version 2.9.24
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough
    • CONFIG_VIRTIO_IOMMU: Virtio IOMMU driver
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_FIREWIRE: FireWire driver stack
    • CONFIG_FIREWIRE_OHCI: OHCI-1394 controllers
    • CONFIG_FIREWIRE_SBP2: Storage devices (SBP-2 protocol)
    • CONFIG_FIREWIRE_NET: IP networking over 1394
    • CONFIG_INPUT_UINPUT: User level driver support
    • CONFIG_INPUT_JOYDEV: Joystick interface
    • CONFIG_INPUT_JOYSTICK: Joysticks/Gamepads
    • CONFIG_JOYSTICK_XPAD: X-Box gamepad support
    • CONFIG_JOYSTICK_XPAD_FF: X-Box gamepad rumble support
    • CONFIG_JOYSTICK_XPAD_LEDS: LED Support for Xbox360 controller 'BigX' LED
    • CONFIG_MLX5_TLS: Mellanox Technologies TLS Connect-X support
    • CONFIG_MLX5_ESWITCH: Mellanox Technologies MLX5 SRIOV E-Switch suppor
    • CONFIG_MLX5_CLS_ACT: MLX5 TC classifier action support
    • CONFIG_MLX5_TC_SAMPLE: MLX5 TC sample offload support
    • CONFIG_MLXSW_SPECTRUM: Mellanox Technologies Spectrum family support
    • CONFIG_NET_SWITCHDEV: Switch (and switch-ish) device support
    • CONFIG_TLS: Transport Layer Security support
    • CONFIG_TLS_DEVICE: Transport Layer Security HW offload
    • CONFIG_TLS_TOE: Transport Layer Security TCP stack bypass
    • CONFIG_VMD: Intel Volume Management Device Driver
    • added additional sensor drivers:
      • CONFIG_AMD_SFH_HID: AMD Sensor Fusion Hub
      • CONFIG_SENSORS_AQUACOMPUTER_D5NEXT: Aquacomputer D5 Next watercooling pump
      • CONFIG_SENSORS_MAX6620: Maxim MAX6620 fan controller
      • CONFIG_SENSORS_NZXT_SMART2: NZXT RGB & Fan Controller/Smart Device v2
      • CONFIG_SENSORS_SBRMI: Emulated SB-RMI sensor
      • CONFIG_SENSORS_SHT4x: Sensiron humidity and temperature sensors. SHT4x and compat.
      • CONFIG_SENSORS_SY7636A: Silergy SY7636A
      • CONFIG_SENSORS_INA238: Texas Instruments INA238
      • CONFIG_SENSORS_TMP464: Texas Instruments TMP464 and compatible
      • CONFIG_SENSORS_ASUS_WMI: ASUS WMI X370/X470/B450/X399
      • CONFIG_SENSORS_ASUS_WMI_EC: ASUS WMI B550/X570
      • CONFIG_SENSORS_ASUS_EC: ASUS EC Sensors
    • patch: add reference to missing firmware in drivers/bluetooth/btrtl.c
      • rtl8723d_fw.bin
      • rtl8761b_fw.bin
      • rtl8761bu_fw.bin
      • rtl8821c_fw.bin
      • rtl8822cs_fw.bin
      • rtl8822cu_fw.bin
    • CONFIG_BPF_UNPRIV_DEFAULT_OFF: Disable unprivileged BPF by default
    • patch: quirk for Team Group MP33 M.2 2280 1TB NVMe (globally duplicate IDs for nsid)
    • turn on all IPv6 kernel options:
      • CONFIGINET6*
      • CONFIGIPV6*
    • CONFIG_RC_CORE: Remote Controller support
    • CONFIG_SFC_SIENA: Solarflare SFC9000 support
    • CONFIG_SFC_SIENA_MCDI_LOGGING: Solarflare SFC9000-family MCDI logging support
    • CONFIG_SFC_SIENA_MCDI_MON: Solarflare SFC9000-family hwmon support
    • CONFIG_SFC_SIENA_SRIOV: Solarflare SFC9000-family SR-IOV support
    • CONFIG_ZRAM: Compressed RAM block device support
    • CONFIG_ZRAM_DEF_COMP_LZ4: Default ram compressor (lz4)
    • turn on all EDAC kernel options
      • CONFIG_EDAC: EDAC (Error Detection And Correction) reporting
      • CONFIGEDAC*

    Base distro

    • aaa_base: version 15.1
    • aaa_glibc-solibs: version 2.36
    • aaa_libraries: version 15.1
    • at: version 3.2.3
    • bind: version 9.18.6
    • btrfs-progs: version 5.19.1
    • ca-certificates: version 20220622
    • cifs-utils: version 7.0
    • coreutils: version 9.1
    • cracklib: version 2.9.8
    • cryptsetup: version 2.5.0
    • curl: version 7.85.0
    • cyrus-sasl: version 2.1.28
    • dbus: version 1.14.0
    • dhcpcd: version 9.4.1
    • dmidecode: version 3.4
    • docker: version 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030)
    • etc: version 15.1
    • ethtool: version 5.19
    • eudev: version 3.2.11
    • file: version 5.43
    • findutils: version 4.9.0
    • firefox: version 105.0.r20220922151854-x86_64 (AppImage)
    • fuse3: version 3.12.0
    • gawk: version 5.2.0
    • gdbm: version 1.23
    • git: version 2.37.3
    • glib2: version 2.72.3
    • glibc: version 2.36
    • glibc-zoneinfo: version 2022c
    • gnutls: version 3.7.7
    • gptfdisk: version 1.0.9
    • grep: version 3.8
    • gzip: version 1.12
    • hdparm: version 9.65
    • htop: version 3.2.1
    • icu4c: version 71.1
    • inotify-tools: version 3.22.6.0
    • iperf3: version 3.11
    • iproute2: version 5.19.0
    • iptables: version 1.8.8
    • jemalloc: version 5.3.0
    • json-c: version 0.16_20220414
    • json-glib: version 1.6.6
    • kmod: version 30
    • krb5: version 1.20
    • libaio: version 0.3.113
    • libarchive: version 3.6.1
    • libcap-ng: version 0.8.3
    • libcgroup: version 3.0.0
    • libdrm: version 2.4.113
    • libepoxy: version 1.5.10
    • libffi: version 3.4.2
    • libgcrypt: version 1.10.1
    • libgpg-error: version 1.45
    • libidn: version 1.41
    • libjpeg-turbo: version 2.1.4
    • libmnl: version 1.0.5
    • libnetfilter_conntrack: version 1.0.9
    • libnfnetlink: version 1.0.2
    • libnftnl: version 1.2.3
    • libnl3: version 3.7.0
    • libpng: version 1.6.38
    • libssh: version 0.10.4
    • libtasn1: version 4.19.0
    • libtirpc: version 1.3.3
    • liburcu: version 0.13.1
    • libusb: version 1.0.26
    • libwebp: version 1.2.4
    • libxml2: version 2.9.14
    • libxslt: version 1.1.36
    • libzip: version 1.9.2
    • logrotate: version 3.20.1
    • lsof: version 4.95.0
    • lzip: version 1.23
    • mc: version 4.8.28
    • mcelog: version 189
    • nano: version 6.4
    • nfs-utils: version 2.6.2
    • nghttp2: version 1.49.0
    • nginx: version 1.22.0
    • ntfs-3g: version 2022.5.17
    • ntp: version 4.2.8p15
    • oniguruma: version 6.9.8
    • openssh: version 9.0p1
    • openssl: version 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274)
    • openssl-solibs: version 1.1.1q (CVE-2022-1292)
    • p11-kit: version 0.24.1
    • pciutils: version 3.8.0
    • pcre2: version 10.40
    • perl: version 5.36.0
    • php: version 7.4.30 (CVE-2022-31625 CVE-2022-31626)
    • pkgtools: version 15.1
    • rpcbind: version 1.2.6
    • rsync: version 3.2.6
    • samba: version 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742)
    • sqlite: version 3.39.3
    • sudo: version 1.9.11p3
    • sysfsutils: version 2.1.1
    • sysstat: version 12.6.0
    • sysvinit-scripts: version 15.1
    • talloc: version 2.3.4
    • tar: version 1.34
    • tevent: version 0.13.0
    • tree: version 2.0.2
    • util-linux: version 2.38.1
    • wayland: version 1.21.0
    • wget: version 1.21.3
    • xfsprogs: version 5.18.0
    • xz: version 5.2.6
    • zlib: version 1.2.12

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.11.1/index.html b/fr/unraid-os/release-notes/6.11.1/index.html index 104e3aa10..8428f5a79 100644 --- a/fr/unraid-os/release-notes/6.11.1/index.html +++ b/fr/unraid-os/release-notes/6.11.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ at system boot up. Users are advised to regenerate the WG configs. This can be done, e.g., by clicking in a field to change a value and then change it back in order to get the Apply button to light up. Then click Apply.

  • Fixed issue where empty popup windows gets displayed with certain browsers and devices.

  • Restored "NTLMv1 authenication" for incoming SMB connections.

  • Change Log vs. Unraid OS 6.11.0

    Base distro

    • acpid: version 2.0.34
    • bash: version 5.2.000
    • bind: version 9.18.7
    • ca-certificates: version 20220922
    • dbus: version 1.14.2
    • dnsmasq: version 2.87
    • docker: version 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109)
    • git: version 2.38.0
    • glib2: version 2.72.4
    • glibc-zoneinfo: version 2022d
    • gnutls: version 3.7.8
    • harfbuzz: version 5.2.0
    • intel-microcode: version 20220809
    • libXtst: version 1.2.4
    • libXxf86vm: version 1.1.5
    • libffi: version 3.4.3
    • libvirt: version 8.7.0
    • libvirt-php: version 0.5.6
    • lsof: version 4.96.3
    • nghttp2: version 1.50.0
    • pango: version 1.50.11
    • qemu: version 7.1.0 (built adding ppc, riscv32/64 support, replace arm with aarch64)
    • sqlite: version 3.39.4
    • xterm: version 373
    • xz: version 5.2.7

    Linux kernel

    • version 5.19.14
    • CONFIG_DRM_MGAG200: Matrox G200
    • CONFIG_X86_SGX: Software Guard eXtensions (SGX)
    • CONFIG_X86_SGX_KVM: Software Guard eXtensions (SGX) Virtualization
    • CONFIG_CRYPTO_ZSTD: Zstd compression algorithm
    • md/unraid: version 2.9.25
    • patch: silence EDID "block all zeros" and "has corrupt header" notices
    • patch: add NVMe quirks for non-compliant devices reported by users

    Management

    • webgui: VM Manager: Update GUI Options
      • Include 9P and Virtiofs
      • Remove 9P option for Windows.
      • Update XML if virtiofs and Windows in addition to Linux.
      • Update VM Share GUI Options
    • webgui: Fixed: wrong feedback display on VM page
    • webgui: Dashboard: store graph data in file instead of cookie
    • webgui: Ask user to provide diagnostics before downgrading the OS
    • webgui: Spice html client in addition to VNC
    • webgui: improve handling of windows-style config files
    • webgui: WireGuard: add explicit interface name in routing
    • webgui: SWAL: intercept "esc" button to stop nchan upon window closing
    • webgui: nchan: delayed command execution
      • This prevents an empty popup window in certain browsers and devices

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.11.2/index.html b/fr/unraid-os/release-notes/6.11.2/index.html index b68d4ee6b..5efc4b158 100644 --- a/fr/unraid-os/release-notes/6.11.2/index.html +++ b/fr/unraid-os/release-notes/6.11.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ show text for guest not running or guest agent is not installed.
  • Fix unable to change HyperV settings.
  • Add 'start with console' option.
  • OVMF for QEMU: version edk2-stable202208
  • WireGuard

    Changes:

    • Fixed problem setting up tunnels if using default network.cfg settings.
    • Fix typo setting up routes.

    Plugin manager

    Changes:

    • If plugin files cannot be read from CDN URL, fall back to non-CDN URL.
    • Enforce plugin files must end in '.plg'.
    • Fix post hook failing when plugin download fails.
    • Adjust the wget parameters to keep it from indefinitely hanging.

    Scheduler

    For scheduled Parity Checks, change default mode to Non-correcting. In case there are disk issues during a parity check it would be safer to have the default be non-correct. If sync errors are detected then the user can analyze the log and act accordingly.

    Misc. webGUI

    Changes:

    • DashStats: The inbound networkstats is out of place when numeric value is xxx.x.
    • Docker: Add/clarify Help to Docker Custom Network settings.
    • Docker: Fix display aberration on orphan images
    • SMART attributes: clarify message: "Can not read attributes" to "Attributes not available"
    • ShareEdit/ShareList: show pool not defined when share pool is not a defined pool

    Linux kernel

    • version 5.19.17
    • patch: additional NVMe BOGUS_NID quirks for non-compliant devices reported by users
    • sound support:
      • CONFIG_SOUND: Sound card support
      • CONFIG_SND: Advanced Linux Sound Architecture
      • CONFIG_SND_OSSEMUL: Enable OSS Emulation
      • CONFIG_SND_PCM_OSS: OSS PCM (digital audio) API
      • CONFIG_SND_HRTIMER: HR-timer backend support
      • CONFIG_SND_SUPPORT_OLD_API: Support old ALSA API
      • CONFIG_SND_PROC_FS: Sound Proc FS Support
    • CONFIG_IPV6: The IPv6 protocol (change from module to built-in)

    Base Distro

    Package updates including CVE mitigations:

    • bash: version 5.2.002
    • bind: version 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795)
    • btrfs-progs: version 6.0
    • curl: version 7.86.0
    • dbus: version 1.14.4
    • freeglut: version 3.4.0
    • git: version 2.38.1 (CVE-2022-39253 CVE-2022-39260)
    • glibc-zoneinfo: version 2022e
    • harfbuzz: version 5.3.1
    • icu4c: version 72.1
    • iproute2: version 6.0.0
    • kernel-firmware: version 20221017_48407ff
    • less: version 608
    • libXmu: version 1.1.4
    • libXrender: version 0.9.11
    • libedit: version 20221009_3.1
    • libffi: version 3.4.4
    • libgpg-error: version 1.46
    • libpciaccess: version 0.17
    • libunistring: version 1.1
    • libxkbfile: version 1.1.1
    • libxshmfence: version 1.3.1
    • lsof: version 4.96.4
    • nginx: version 1.22.1
    • openssh: version 9.1p1
    • php: version 7.4.32
    • pixman: version 0.42.0
    • rsync: version 3.2.7
    • samba: version 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592)
    • sudo: version 1.9.12
    • tree: version 2.0.4
    • xkeyboard-config: version 2.37
    • xterm: version 375
    • zlib: version 1.2.13 (CVE-2022-37434)

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.11.3/index.html b/fr/unraid-os/release-notes/6.11.3/index.html index d4c23e7ee..df3ddb1d5 100644 --- a/fr/unraid-os/release-notes/6.11.3/index.html +++ b/fr/unraid-os/release-notes/6.11.3/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.3

    Version 6.11.3 2022-11-08

    This release is focused on bug fixes and minor improvements. In particular, we need to revert a base library due to a bug which prevents formatting devices >2TB in size.

    Management

    • Reverted 'libpopt.so.0.0.1' to workaround 'sgdisk' bug used to format devices larger than 2TB.
    • Fixed issue where description setting for 'root' user was not preserved across reboots.
    • Fix issue that sometimes information window opens empty.

    VM Manager

    • Set correct values when edit for USB Boot and correct Share Selection.
    • Add Nic boot order.

    Base Distro

    • gptfdisk: version 1.0.8 (revert from version 1.0.9)
    • libXext: version 1.3.5
    • libXinerama: version 1.1.5
    • libdrm: version 2.4.114
    • libedit: version 20221030_3.1
    • mcelog: version 190
    • ntfs-3g: version 2022.10.3
    • openssl: version 1.1.1s
    • openssl-solibs: version 1.1.1s
    • pixman: version 0.42.2
    • sessreg: version 1.1.3
    • sudo: version 1.9.12p1
    • xsetroot: version 1.1.3
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.11.4/index.html b/fr/unraid-os/release-notes/6.11.4/index.html index 455bc055a..145c2cd27 100644 --- a/fr/unraid-os/release-notes/6.11.4/index.html +++ b/fr/unraid-os/release-notes/6.11.4/index.html @@ -9,16 +9,16 @@ - - - + + +

    6.11.4

    Version 6.11.4 2022-11-18

    This release is focused on bug fixes and minor improvements.

    Diagnostics

    • Fix share information in Diagnostics.

    Docker

    • docker: version 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715)
    • Fix: "please wait" message after removing orphan image.
    • Set IPVLAN as default for new installations.

    Samba

    • samba: version 4.17.3 (CVE-2022-42898)
    • Set the default "max open files" to the value of 'ulimit -n' which is currently set to 40960.

    VM Manager

    • Allow Network PCI devices to have boot order.
    • Change to use libvirt_domain_interface_addresses which has been available for a long time but was not documented in the API manual. Using this function stops tainted warnings being written to the log, ex: "Domain id=4 is tainted: custom-ga-command".
    • Fix for VM Rename.

    Misc

    • Fixed issue which prevented array Autostart with a Trial key.
    • Fixed encoding issue when passwords contain multi-byte UTF-8 characters.
    • Parity History: add day of week to date.
    • Shares: Fix: do not allow creation of hidden share names.
    • Main page: reinitialize disk transfer statistics upon opening new broswer session.
    • Management Access page: improved messaging for SSL
    • Firefox: version 107.0.r20221110173214 (AppImage)
    • When all browser sessions close, stop unnecessary background processes.

    Base Distro

    • bash: version 5.2.009
    • btrfs-progs: version 6.0.1
    • gdk-pixbuf2: version 2.42.10
    • glibc-zoneinfo: version 2022f
    • intel-microcode: version 20221108
    • libX11: version 1.8.2
    • libnftnl: version 1.2.4
    • nghttp2: version 1.51.0
    • php: version 7.4.33 (CVE-2022-31630 CVE-2022-37454)
    • sed: version 4.9
    • sysstat: version 12.7.1
    • xkbevd: version 1.1.5
    • xkill: version 1.0.6
    • xlsatoms: version 1.1.4
    • xlsclients: version 1.1.5
    • xz: version 5.2.8
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.11.5/index.html b/fr/unraid-os/release-notes/6.11.5/index.html index bbab44af2..4023092a2 100644 --- a/fr/unraid-os/release-notes/6.11.5/index.html +++ b/fr/unraid-os/release-notes/6.11.5/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.5

    Version 6.11.5 2022-11-20

    This release reverts a change which modified the wrong file. This resulted in not being able to select 'macvlan' custom docker network type. New installations only will now have 'ipvlan' selected by default.

    Docker

    • fix: Set IPVLAN as default only for new installations.
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.12.0/index.html b/fr/unraid-os/release-notes/6.12.0/index.html index ed8a00b8d..68808e4b3 100644 --- a/fr/unraid-os/release-notes/6.12.0/index.html +++ b/fr/unraid-os/release-notes/6.12.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -79,7 +79,7 @@ still mounted - not good.

    To get around this, you must first create a temp directory on the flash device and then 'mv' (or drag) all the existing bz files into this temp directory. Now you can copy the new bz files to the root of the flash device and reboot.

    Linux kernel

    • version 6.1.33
    • md/unraid: version 2.9.27
    • CONFIG_FS_DAX: File system based Direct Access (DAX) support
    • CONFIG_VIRTIO_FS: Virtio Filesystem
    • CONFIG_ZONE_DEVICE: Device memory (pmem, HMM, etc...) hotplug support
    • CONFIG_USBIP_HOST: Host driver
    • CONFIG_INTEL_MEI: Intel Management Engine Interface
    • CONFIG_INTEL_MEI_ME: ME Enabled Intel Chipsets
    • CONFIG_INTEL_MEI_GSC: Intel MEI GSC embedded device
    • CONFIG_INTEL_MEI_PXP: Intel PXP services of ME Interface
    • CONFIG_INTEL_MEI_HDCP: Intel HDCP2.2 services of ME Interface
    • CONFIG_INTEL_PMC_CORE: Intel PMC Core driver
    • CONFIG_DRM_I915_PXP: Enable Intel PXP support
    • CONFIG_SCSI_FC_ATTRS: FiberChannel Transport Attributes
    • CONFIG_FUSION_SPI: Fusion MPT ScsiHost drivers for SPI
    • CONFIG_FUSION_FC: Fusion MPT ScsiHost drivers for FC
    • CONFIG_FUSION_CTL: Fusion MPT misc device (ioctl) driver
    • CONFIG_FUSION_LOGGING: Fusion MPT logging facility
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_LRU_GEN: Multi-Gen LRU
    • CONFIG_SERIAL_8250_NR_UARTS=32: Maximum number of 8250/16550 serial ports
    • CONFIG_SERIAL_8250_RUNTIME_UARTS=4: Number of 8250/16550 serial ports to register at runtime
    • CONFIG_FANOTIFY: Filesystem wide access notification

    Base Distro updates

    • aaa_glibc-solibs: version 2.37
    • adwaita-icon-theme: version 43
    • at-spi2-core: version 2.46.0
    • bash: version 5.2.015
    • bash_completion: version 2.11
    • bind: version 9.18.12
    • btrfs-progs: version 6.2.1
    • ca-certificates: version 20221205
    • cryptsetup: version 2.6.1
    • curl: version 7.88.1
    • dbus: version 1.14.6
    • diffutils: version 3.9
    • dnsmasq: version 2.89
    • docker: version 23.0.6
    • e2fsprogs: version 1.47.0
    • encodings: version 1.0.7
    • file: version 5.44
    • firefox: version 111.0 (AppImage)
    • freetype: version 2.13.0
    • fuse3: version 3.12.0
    • gawk: version 5.2.1
    • git: version 2.39.2
    • glib2: version 2.74.6
    • glibc: version 2.37
    • glibc-zoneinfo: version 2022g
    • gnutls: version 3.7.9
    • gptfdisk: version 1.0.9
    • gtk+3: version 3.24.37
    • harfbuzz: version 7.1.0
    • htop: version 3.2.2
    • iproute2: version 6.2.0
    • iptables: version 1.8.9
    • iputils: version 20221126
    • kernel-firmware: 20230531_fc90c59
    • less: version 612
    • libICE: version 1.1.1
    • libSM: version 1.2.4
    • libX11: version 1.8.4
    • libXau: version 1.0.11
    • libXcomposite: version 0.4.6
    • libXdamage: version 1.1.6
    • libXdmcp: version 1.1.4
    • libXpm: version 3.5.15
    • libXrandr: version 1.5.3
    • libXres: version 1.2.2
    • libXxf86dga: version 1.1.6
    • libarchive: version 3.6.2
    • libdrm: version 2.4.115
    • libfontenc: version 1.1.7
    • libglvnd: version 1.6.0
    • libjpeg-turbo: version 2.1.5.1
    • libpcap: version 1.10.3
    • libpng: version 1.6.39
    • libpsl: version 0.21.2
    • liburcu: version 0.14.0
    • libwebp: version 1.3.0
    • libxkbcommon: version 1.5.0
    • libxkbfile: version 1.1.2
    • libxshmfence: version 1.3.2
    • lmdb: version 0.9.30
    • logrotate: version 3.21.0
    • lsof: version 4.98.0
    • lz4: version 1.9.4
    • lzlib: version 1.13
    • mc: version 4.8.29
    • mcelog: version 191
    • mpfr: version 4.2.0
    • nano: version 7.2
    • ncurses: version 6.4
    • nginx: version 1.23.3
    • nghttp2: version 1.52.0
    • openssh: version 9.2p1
    • openssl: version 1.1.1t
    • openssl-solibs: version 1.1.1t
    • openzfs: version 2.1.12
    • pango: version 1.50.14
    • pciutils: version 3.9.0
    • pcre2: version 10.42
    • php: version 8.2.4
    • php-libvirt: version 0.5.7
    • php-markdown: version 2.0.0
    • samba: version 4.17.7
    • sqlite: version 3.41.0
    • sudo: version 1.9.13p2
    • sysstat: version 12.7.2
    • tdb: version 1.4.8
    • tevent: version 0.14.1
    • traceroute: version 2.1.2
    • transset: version 1.0.3
    • tree: version 2.1.0
    • usbutils: version 015
    • xcb-util: version 0.4.1
    • xdriinfo: version 1.0.7
    • xf86-video-vesa: version 2.6.0
    • xfsprogs: version 6.1.1
    • xhost: version 1.0.9
    • xinit: version 1.4.2
    • xkbcomp: version 1.4.6
    • xkeyboard-config: version 2.38
    • xorg-server: version 21.1.7
    • xprop: version 1.2.6
    • xrandr: version 1.5.2
    • xset: version 1.2.5
    • xterm: version 379
    • xz: version 5.4.1
    • zstd: version 1.5.4
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.12.1/index.html b/fr/unraid-os/release-notes/6.12.1/index.html index a9483d42b..6b2087fc6 100644 --- a/fr/unraid-os/release-notes/6.12.1/index.html +++ b/fr/unraid-os/release-notes/6.12.1/index.html @@ -9,14 +9,14 @@ - - - + + +

    Version 6.12.1 2023-06-20

    Changes vs. 6.12.0

    Bug fixes

    • emhttpd: remove "unraid" from reserved names list
    • emhttpd: properly handle "ERROR" strings in 'btrfs filesystem show' command output
    • emhttpd: prevent cmdStart if already Started
    • network: Revised service reload functionality: ensures the services are only reloaded once
    • network: rc.library: read IP addresses directly from interfaces instead of file
    • network: NTP: fix listening interfaces
    • network: NTP: exclude WG tunnels and user defined interfaces
    • network: NTP: add interface name in config
    • network: SSH: add interface name in config
    • webgui: fix PHP8 warning in UPS Settings page
    • webgui: Dashboard: show ZFS percentage based on c_max value
    • webgui: Dashboard: suppress coloring of ZFS utilization bar
    • webgui: Dashboard: other misc fixes

    Linux kernel

    • version 6.1.34

    Base Distro

    • ttyd: version 1.7.3 (fixes issue of invisible underbar characters with certain FireFox versions)

    Security updates

    • ca-certificates: version 20230506
    • curl: version 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319)
    • git: version 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007)
    • ntp: version 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555)
    • openssl: version 1.1.1u (CVE-2023-2650)
    • openssh: version 9.3p1
    • php: version 8.2.7
    • libX11: version 1.8.6 (CVE-2023-3138)
    • libssh: version 0.10.5 (CVE-2023-1667 CVE-2023-2283)
    • zstd: version 1.5.5
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.12.2/index.html b/fr/unraid-os/release-notes/6.12.2/index.html index 3ed1c31dc..6936a1af8 100644 --- a/fr/unraid-os/release-notes/6.12.2/index.html +++ b/fr/unraid-os/release-notes/6.12.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ is automatically applied to all 'config/wireguard/*.conf' files when you update via Update OS page. For manual update or if you downgrade, it is necessary to make a "dummy change" in a setting on the Settings/VPN Manager page and then click Apply.

    Bug fixes and improvements

    • email notifications: add line in /etc/php.ini: 'mail.mixed_lf_and_crlf=On' to workaround change in PHP8 CRLF handling
    • emhttpd: Fix regression: emulated ZFS volumes not recognized
    • emhttpd: Fix regression: format fails if diskFsType==auto and defaultFsType specifies encryption
    • emhtptd: Fix regression: mount fails if diskFsType==auto
    • htop: remove predefined /root/.config/htop/htoprc file
    • network: RC services update:
      • NFS - fix service reload
      • RPC - fix service reload
      • NGINX - remove HTTPS port in FQDN redirect when default 443
      • All services - register IPv4 Link local assignment (169.254.xxx.xxx)
      • All services - make lock file programmable
      • WireGuard: delayed service update to avoid race condition
      • rc.library: do not allow duplicates in bind list
    • webgui: Dashboard updates:
      • Re-introduce show/hide tile content
      • Add new icon function to show/hide all content at once
      • Reduce gap between columns
      • description -> model
      • ZFS: fix percentage value to max 100%
      • Use prototype function: This makes it easier for 3rd party developers to automatically hide dynamic content
      • Handle duplicate IP assignments and give warning
      • change header MEMORY to SYSTEM
    • webgui: OS Update: add checkbox to confirm reading release notes before upgrading
    • webgui: diagnostics: include list of duplicate assignments
    • webgui: NFS: for Security/Private increase Rule field from 256 to 512 characters.

    Linux kernel

    • version 6.1.36

    Base Distro

    • bind: version -9.16.42 (CVE-2023-2911)
    • docker: 20.10.24 (revert from v23.0.6)
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.12.3/index.html b/fr/unraid-os/release-notes/6.12.3/index.html index e11862c01..39770db77 100644 --- a/fr/unraid-os/release-notes/6.12.3/index.html +++ b/fr/unraid-os/release-notes/6.12.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -19,7 +19,7 @@ an issue where the webGUI will not load in certain instances.

    Note: If you have code in your 'go' script to disable IPv6, remove that and disable it via the 'Settings/Network Settings' page instead. Manually disabling IPv6 will cause conflicts.

    Docker

    This release resolves an issue where Docker does not properly stop when the array Stops, which can result in an unclean shutdown.

    If Docker containers have issues starting after a while, and you are running Plex, go to your Plex Docker container settings, switch to advanced view, and add this to the Extra Params: --no-healthcheck

    Bug fixes and improvements

    • rc.docker:
      • revised docker daemon running check
      • rc.docker: change route metric of main interface as needed to avoid conflict with shim interface with shim interface
    • rc.library:
      • code optimization for ipv6 max/min
      • support ipv4 mapped addresses
    • rc.nginx: explicit ipv4/ipv6 selection on lo interface
    • shfs: correct share size calculation when ZFS is one of the volumes
    • webgui:
      • VM settings page: fixed typo
      • Share Edit page: make minimum free space settings always available
      • Wireguard: fix typo in Ipv6 mask
      • Routing table: fix display of metric value when zero

    Linux kernel

    • version 6.1.38
    • Added support to monitor and also limit power on Intel Core (2nd Gen+) CPU models:
      • CONFIG_POWERCAP: Generic powercap sysfs driver
      • CONFIG_INTEL_RAPL: Intel RAPL Support via MSR Interface
      • CONFIG_IDLE_INJECT: Idle injection framework

    Base Distro

    • firefox: version 115.0.r20230710165010 (AppImage)
    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.9.0/index.html b/fr/unraid-os/release-notes/6.9.0/index.html index 9cd03312d..5fd47b31b 100644 --- a/fr/unraid-os/release-notes/6.9.0/index.html +++ b/fr/unraid-os/release-notes/6.9.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -284,7 +284,7 @@ can override at boot
  • mount all btrfs volumes using 'space_cache=v2' option
  • mount loopbacks with 'noatime' option; enable 'direct-io'
  • mount_image: suppport bind-mount
  • non-rotational device partitions aligned on 1MiB boundary by default
  • plugin: support sha256 file validation
  • rsyslog: fix broken "Mirror syslog to flash"
  • samba: disable aio by default
  • shfs: move: preserve ioctl_iflags when moving between same file system types
  • shfs: move: support spares files
  • smart-one.cfg keeps SMART info per-ID instead of per-slot; disk warning/critical config moved to disk/pool cfg
  • smb: fixed Ad join issue
  • smb: remove setting 'aio' options in smb.conf, use samba defaults
  • ssh: add /root/.ssh symlink to /boot/config/ssh/root directory
  • ssh: allow only root user, require passwords, disable non-root tunneling
  • ssh: require passwords, disable non-root tunneling
  • startup: setup an overlayfs for /lib/modules and /lib/firmware
  • syslog: configure to also listen on localhost udp port 514
  • web terminal: inhibit warning pop-up when closing window
  • wireguard support: rc.wireguard: add iptables rules
  • webGUI: Fix dockerupdate.php warnings
  • webGUI: Update statuscheck
  • webgui: Add 'Portuguese (pt)' key map option for libvirt
  • webgui: Add customizable timeout when stopping containers
  • webgui: Add log viewer for vfio-pci
  • webgui: Add notification agent for Discord
  • webgui: Add pools information to diagnostics
  • webgui: Add raid1c3 and raid1c4 btrfs pool balance options.
  • webgui: Add update dialog to docker context menu
  • webgui: Added "safe mode" one-shot safemode reboot option
  • webgui: Added btrfs info for all pools in diagnostics
  • webgui: Added new display setting: show normalized or raw device identifiers
  • webgui: Added new setting "Enable user share assignment" to cache pool
  • webgui: Added support for private docker registries with basic auth or no auth, and improvements for token based authentication
  • webgui: Allow different image types to upload with 512K max
  • webgui: Allow duplicate containers different icons
  • webgui: Allow markdown within container descriptions
  • webgui: Change Icon for Motherboard Info from cog (settings) to info
  • webgui: Changed: Consistency between dashboard and docker on accessing logs
  • webgui: Dashboard: fix stats of missing interface
  • webgui: Dashboard: style adjustment for server icon
  • webgui: Detect invalid session and logout current tab
  • webgui: Diagnostics: Remove SHA256 Hashes
  • webgui: Disallow "?" in share names
  • webgui: Display settings: colors should be 3 or 6 character hex digits
  • webgui: Do not show CA profiles in Add Container list
  • webgui: Docker: allow BTRFS or XFS vdisk, or folder location
  • webgui: Docker: more intuitive handling of images
  • webgui: Fix ' appearing
  • webgui: Fix Azure / Gray Switch Language being cut-off
  • webgui: Fix Banner Warnings Not Dismissing without reload of page
  • webgui: Fix Started VMs not appearing in dashboard
  • webgui: Fix crash when reading very large log files (limiting output to 1000 lines).
  • webgui: Fix dismiss all notification
  • webgui: Fix not able to change parity check schedule if no cache pool present
  • webgui: Fix notifications continually reappearing
  • webgui: Fix unable to use top right icons if notifications present
  • webgui: Fix wrong docker run URL reference
  • webgui: Fix: Dashboard / Docker scrolling on iPad devices
  • webgui: Fix: properly set samesite cookie (fix login issue with Safari)
  • webgui: For raid6 btrfs pool data profile use raid1c3 metadata profile.
  • webgui: Icon buttons re-arrangement
  • webgui: Main page: hide Move button when user shares are not enabled
  • webgui: Multi-language: Fixed regression error: missing indicator for required fields
  • webgui: Multilanguage: Fix unable to delete / edit users
  • webgui: Network settings: show first DNSv6 server
  • webgui: Network: allow metric value of zero to set no default gateway
  • webgui: Network: fix privacy extensions not set
  • webgui: New Perms: Support multi-cache pools
  • webgui: Notifications: Fix gap on white / black
  • webgui: Permit file system configuration when array Started for Unmountable volumes.
  • webgui: Prevent "Add" reverting to English when adding a new user with an invalid username
  • webgui: Prevent bonded nics from being bound to vfio-pci too
  • webgui: Remove WG from Dashboard if no tunnels defined
  • webgui: Show message when too many files for browsing
  • webgui: Support links on notifications
  • webgui: Suppress Autofan link on Dashboard if plugin not installed
  • webgui: Suppress WG on Dashboard if no tunnels defined
  • webgui: Switch Diagnostics to web socket
  • webgui: SysDevs - warn if leave page without saving
  • webgui: SysDevs overhaul with vfio-pci.cfg binding
  • webgui: Tabbed case select window
  • webgui: Task Plugins: Providing Ability to define Display_Name
  • webgui: Update Feedback.php
  • webgui: Update jGrowl to version 1.4.7
  • webgui: Update noVNC to v1.2.0
  • webgui: Updated case icons
  • webgui: Use update image dialog for update entry in docker context menu
  • webgui: VM Manager: add 'virtio-win-0.1.189-1' to VirtIO-ISOs list
  • webgui: VM manager: Fix: Changing from VM VNC graphics to GPU passthrough
  • webgui: VM manager: add virtio-win-0.1.190-1
  • webgui: VM manager: new setting "Network Model"
  • webgui: VMs: Fixed: Adding NICs or VirtFS mounts to a VM is limited
  • webgui: VMs: Fixed: rare cases vdisk defaults to Auto when it should be Manual
  • webgui: VMs: change default network model to virtio-net
  • webgui: VMs: more intuitive handling of image selection
  • webgui: avoid php syntax error if autov() source file does not exist
  • webgui: better handling of multiple nics with vfio-pci
  • webgui: correct login form wrong default case icon displayed
  • webgui: do not try to display SMART info that causes spin-up for devices that are spun-down
  • webgui: dockerMan: Allow readmore in advanced view
  • webgui: dockerMan: Only allow name compatible with docker
  • webgui: dockerMan: Selectable start upon install
  • webgui: fix: jGrowl covering buttons
  • webgui: fix: login prompt when switching between servers
  • webgui: other misc. improvements
  • webgui: pools not enabled for user shares should not be selectable for cache
  • webgui: sanitize input on tail_log
  • webgui: set 'mid-tower' default case icon
  • webgui: support spin-up/down and temperature monitoring of unassigned devices
  • webgui: turn off username autocomplete in login form
  • webgui: vm manager: Preserve VNC port settings
  • webgui: vnc: add browser cache busting
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.9.1/index.html b/fr/unraid-os/release-notes/6.9.1/index.html index 1b82efea9..a34a0c5c5 100644 --- a/fr/unraid-os/release-notes/6.9.1/index.html +++ b/fr/unraid-os/release-notes/6.9.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -35,7 +35,7 @@ spindown/spinup logic
  • rc.local: ensure required directories exist on USB flash boot device
  • rc.local: for Docker containers: grant access to graphics device nodes /dev/dri/*
  • rc.nginx: add Cache-Control:nocache header to novnc
  • webgui: Increase syslog buffer from 1000 to 3000 lines
  • webgui: SysDevs fix display aberration
  • webgui: Diagnostics: include modprobe.d files
  • webgui: Diagnostics: include go as go.txt
  • webgui: Update share security helptext
  • webgui: Deprecate donation links in templates in lieu of links in CA profiles
  • webgui: Protect GUI from invalid .page files
  • webgui: Suppress ipv6 multicast entries in route table display
  • webgui: synchronize helptext.txt with lang-en_US repo
  • webgui: user management - disable password autocomplete
  • webgui: Dashboard: Fix color for utilization of disk
  • - - + + \ No newline at end of file diff --git a/fr/unraid-os/release-notes/6.9.2/index.html b/fr/unraid-os/release-notes/6.9.2/index.html index dae0a5d5a..1a6702d1b 100644 --- a/fr/unraid-os/release-notes/6.9.2/index.html +++ b/fr/unraid-os/release-notes/6.9.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -26,7 +26,7 @@ @ich777 to facilitate installing the correct driver.

    Change Log vs. Unraid OS 6.9.1

    Base distro

    • docker: version 20.10.5
    • fuse3: version 3.10.2
    • nginx: version 1.19.9
    • samba: verson 4.12.14 (CVE-2020-27840 CVE-2020-27840)

    Linux kernel

    • version 5.10.28
    • include all CONFIGNF* modules
    • oot: realtek r8125: version 9.005.01

    Management

    • emhttpd: detect out-of-band device spin-up
    • shfs: add 'copy_file_range()' support
    • shfs: fix 'mknod' creating a fifo
    • webgui: login: implement max 3 failed login attempts per 15 minute interval
    • webgui: Fix links on notifications not being present if in summary display
    • webgui: Plugins: Move incompatible plugins to ../plugins-error
    • webgui: Fix missing CSRF when deleting pool
    • webgui: Fix .sweet-alert color
    • webgui: Translations adjustments
    • webgui: Diagnostics: Prevent double clicks on download button
    • webgui: Fix default usage thresholds not sending notification
    • webgui: Fix CSS span.select background-color
    • webgui: Make diagnostics messages left aligned
    • webgui: Fixed javascript error in DeviceInfo.page preventing settings to be saved
    • webgui: Update DeviceInfo.page
    • webgui: Prevent autofilling of passwords on containers
    • webgui: Docker: Do not allow CPU pinning if no template present
    • webgui: Fix .sweet-alert .sa-icon color, * in the CSS
    - - + + \ No newline at end of file diff --git a/index.html b/index.html index b3dafbe2f..6fa109e78 100644 --- a/index.html +++ b/index.html @@ -9,14 +9,14 @@ - - - + + +

    Home

    Unraid Documentation

    Welcome! Some of the documentation here is still a work in progress, while the old documentation in the Legacy Documentation section is actively being updated and edited to reflect accurate, up-to-date information.

    If you'd like to contribute to these docs, feel free to open a PR by clicking Edit this page at the bottom of any page, or using the link in the footer. Thank you in advance for helping to keep these docs accurate and living.

    Documentation Categories

    Unraid OS

    Unraid Connect

    Legacy Documentation

    - - + + \ No newline at end of file diff --git a/legacy/Articles/dual-boot-unraid-and-windows/index.html b/legacy/Articles/dual-boot-unraid-and-windows/index.html index 0bf0cebac..d7807eff6 100644 --- a/legacy/Articles/dual-boot-unraid-and-windows/index.html +++ b/legacy/Articles/dual-boot-unraid-and-windows/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -58,7 +58,7 @@ installing lilo to the MBR.

    When done, edit /etc/lilo.conf to your liking.

    Finally, format the cache partition (partition1) with ReiserFS.

    Finish

    Now start Unraid by booting the flash, and assigning the cache drive.

    You can boot Windows or Linux by changing the BIOS settings, or using the appropriate key at boot time key to get a boot menu, or you can also edit the syslinux config on the flash to give you multi-boot options.

    - - + + \ No newline at end of file diff --git a/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html b/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html index 913bc73c0..46a18b034 100644 --- a/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html +++ b/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -33,7 +33,7 @@ numbered partition in the list (for recovery).
  • Type 'delete partition override' and press enter.
  • Right-click the start menu and select 'Disk Management'
  • Right-click on the partition you wish to extend and click 'Extend Partition'
  • Follow the on-screen prompts to complete the process.
  • - - + + \ No newline at end of file diff --git a/legacy/Articles/upgrading-to-unraid-6/index.html b/legacy/Articles/upgrading-to-unraid-6/index.html index 0d0653172..dfec03743 100644 --- a/legacy/Articles/upgrading-to-unraid-6/index.html +++ b/legacy/Articles/upgrading-to-unraid-6/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -98,7 +98,7 @@ earlier.

    From version 5.x or earlier

    Please see this forum post for information on upgrading.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/Parity/index.html b/legacy/FAQ/Parity/index.html index ea45355ed..9243bfe9e 100644 --- a/legacy/FAQ/Parity/index.html +++ b/legacy/FAQ/Parity/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -99,7 +99,7 @@ errors, with minimal impact on performance.(Requires Clarification that this is actually used)

    Further discussion: 1

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/cache-disk/index.html b/legacy/FAQ/cache-disk/index.html index ad52b1d4e..9e96e78a1 100644 --- a/legacy/FAQ/cache-disk/index.html +++ b/legacy/FAQ/cache-disk/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -134,7 +134,7 @@ you will want a cache drive that is larger than 100 GB. If you attempt a data transfer that is larger than the size of your cache drive, the transfer will fail.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/check-disk-filesystems/index.html b/legacy/FAQ/check-disk-filesystems/index.html index 22ec00add..dd526c96e 100644 --- a/legacy/FAQ/check-disk-filesystems/index.html +++ b/legacy/FAQ/check-disk-filesystems/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -575,7 +575,7 @@ recommend you read both, for more details.
  • You may want to print this out ahead of time.
  •        root@Tower:\~# reiserfsck --rebuild-sb /dev/md6
    reiserfsck 3.6.19 (2003 www.namesys.com)

    *************************************************************
    ** If you are using the latest reiserfsprogs and it fails **
    ** please email bug reports to reiserfs-list@namesys.com, **
    ** providing as much information as possible -- your **
    ** hardware, kernel, patches, settings, all reiserfsck **
    ** messages (including version), the reiserfsck logfile, **
    ** check the syslog file for any related information. **
    ** If you would like advice on using this program, support **
    ** is available for $25 at www.namesys.com/support.html. **
    *************************************************************
    Will check superblock and rebuild it if needed
    Will put log info to 'stdout'

    Do you want to run this program?[N/Yes] (note need to type Yes
    if you do):**Yes**

    reiserfs_open: the reiserfs superblock cannot be found on
    /dev/md6.

    what the version of ReiserFS do you use[1-4]
    (1) 3.6.x
    (2) >=3.5.9 (introduced in the middle of 1999) (if you use linux 2.2, choose this one)
    (3) < 3.5.9 converted to new format (don't choose if unsure)
    (4) < 3.5.9 (this is very old format, don't choose if unsure)
    (X) exit
    **1**

    Enter block size [4096]:
    **4096**

    No journal device was specified. (If journal is not available,
    re-run with \--no-journal-available option specified).
    Is journal default? (y/n)[y]: **y**

    Did you use resizer(y/n)[n]: **n**
    rebuild-sb: no uuid found, a new uuid was generated
    (b0894fe9-3850-4d57-b70b-a419cbf3823e)

    rebuild-sb: You either have a corrupted journal or have just
    changed the start of the partition with some partition table
    editor. If you are sure that the start of the partition is ok,
    rebuild the journal header.
    Do you want to rebuild the journal header? (y/n)[n]: **y**
    Reiserfs super block in block 16 on 0x906 of format 3.6 with
    standard journal
    Count of blocks on the device: 97677824
    Number of bitmaps: 2981
    Blocksize: 4096
    Free blocks (count of blocks - used [journal, bitmaps, data,
    reserved] blocks): 0
    Root block: 0
    Filesystem is NOT clean
    Tree height: 0
    Hash function used to sort names: not set
    Objectid map size 0, max 972
    Journal parameters:
    Device [0x0]
    Magic [0x0]
    Size 8193 blocks (including 1 for journal header) (first block 18)
    Max transaction length 1024 blocks
    Max batch size 900 blocks
    Max commit age 30
    Blocks reserved by journal: 0
    Fs state field: 0x1:
    some corruptions exist.
    sb_version: 2
    inode generation number: 0
    UUID: b0894fe9-3850-4d57-b70b-a419cbf3823e
    LABEL:
    Set flags in SB:
    Is this ok ? (y/n)[n]: **y**

    It should be quick. When this completes, hopefully successfully, rerun the reiserfsck --check on the drive, and proceed according to the instructions that it gives you.

    --- work in progress ---

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/check-harddrive-speed/index.html b/legacy/FAQ/check-harddrive-speed/index.html index 7bdb6fe16..437c3fe04 100644 --- a/legacy/FAQ/check-harddrive-speed/index.html +++ b/legacy/FAQ/check-harddrive-speed/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -26,7 +26,7 @@ thread. The script creates reports and graphs of drive read speeds, at multiple points across the surface of each drive.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/console/index.html b/legacy/FAQ/console/index.html index 466c1635e..fa2517dee 100644 --- a/legacy/FAQ/console/index.html +++ b/legacy/FAQ/console/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -183,7 +183,7 @@ line into /boot/config/go similar to /boot/macros.

    #!/bin/bash

    # set dn like Windows dir/o-d, newest files first
    echo "alias dn='ls -Aogt --group-directories-first --time-style=long-iso'">>/etc/profile

    # set ds like dn plus Windows dir/s, newest files first, include all subdirs
    echo "alias ds='ls -AogtR --group-directories-first --time-style=long-iso'">>/etc/profile

    # start tail of syslog with plenty of lines
    echo "alias tale='tail -f --lines=200 /var/log/syslog'">>/etc/profile

    # an attempt to emulate the old Norton FF (FileFind)
    echo "alias ff='find . -wholename '/proc' -prune -o -name '">>/etc/profile

    # set screen blanking (if idle for 10 minutes) and monitor to standby (if idle for 30 minutes)
    /bin/setterm -blank 10 -powersave powerdown -powerdown 30

    When these macros are added to /etc/profile, they are available in any console you open, whether by SSH or Telnet or at the physical console on the UnRAID machine.

    UnRAID already includes one macro - v is aliased to ls -l.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/parity-swap-procedure/index.html b/legacy/FAQ/parity-swap-procedure/index.html index f9eda8a61..0cf31bf31 100644 --- a/legacy/FAQ/parity-swap-procedure/index.html +++ b/legacy/FAQ/parity-swap-procedure/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -113,7 +113,7 @@ starting and stopping the array one time.

    1. Stop the array.
    2. Power down the unit.
    3. Replace the parity disk with the new bigger one.
    4. Replace the failed disk with your old parity disk.
    5. Power up the unit.
    6. Start the array.
    7. When you start the array, the system will first copy the parity information to the new parity disk, and then reconstruct the contents of the failed disk.
    - - + + \ No newline at end of file diff --git a/legacy/FAQ/replacing-a-data-drive/index.html b/legacy/FAQ/replacing-a-data-drive/index.html index 9a8c81459..fd3d61157 100644 --- a/legacy/FAQ/replacing-a-data-drive/index.html +++ b/legacy/FAQ/replacing-a-data-drive/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -54,7 +54,7 @@ array on-line, start Data-Rebuild, and then expand the file system."
  • Hefty disk activity and main page will show lots of reading on "the other" disks and writing on new disk as data is being rebuilt.
  • End
  • - - + + \ No newline at end of file diff --git a/legacy/FAQ/replacing-multiple-data-drives/index.html b/legacy/FAQ/replacing-multiple-data-drives/index.html index 402f2fedc..b9daab02e 100644 --- a/legacy/FAQ/replacing-multiple-data-drives/index.html +++ b/legacy/FAQ/replacing-multiple-data-drives/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -61,7 +61,7 @@ slot assignments of the new drive or any other drives at this point.

  • Start array and let parity rebuild.

  • Important! If any user shares are set to include/exclude specific disks, don't forget to update these settings to reflect the new drive numbering.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html b/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html index 55e31035c..b18bd1d61 100644 --- a/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html +++ b/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -108,7 +108,7 @@ If wrong, you may have to select different sensors or customize the sensors.conf file.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html b/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html index 86f780282..18da061cb 100644 --- a/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html +++ b/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -72,7 +72,7 @@ be lost (unless previously backed up elsewhere.)

    10. Edit 'go' file to call script

    • I added the following lines to my go script to initiate the sleep script during boot:
    # Execute s3.sh sleep script
    fromdos < /boot/custom/bin/s3.sh | at now + 1 minute
    • Make sure you adjust file directory structure as necessary depending upon where you saved your s3.sh script.

    11. Re-boot / test

    Good luck!

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/shrink-array/index.html b/legacy/FAQ/shrink-array/index.html index 5f406143a..0a0f9ef13 100644 --- a/legacy/FAQ/shrink-array/index.html +++ b/legacy/FAQ/shrink-array/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -147,7 +147,7 @@ write" (sometimes known as "turbo write" because it runs significantly faster) with the following command at the command line after* the array is started:

    mdcmd set md_write_method 1
    - - + + \ No newline at end of file diff --git a/legacy/FAQ/terminal-access/index.html b/legacy/FAQ/terminal-access/index.html index 68a82f206..fc4adc258 100644 --- a/legacy/FAQ/terminal-access/index.html +++ b/legacy/FAQ/terminal-access/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -124,7 +124,7 @@ server"
  • Console - basics of console usage, plus commands for drives, networking, system management, files and folders, and system information
  • - - + + \ No newline at end of file diff --git a/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html b/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html index 5f34a6018..6601211f3 100644 --- a/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html +++ b/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -41,7 +41,7 @@ that have been created as part of this job. This can be rectified by running the 'New Permissions' job from the tools menu in the web admin after the copy process has completed.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/transferring-files-within-the-unraid-server/index.html b/legacy/FAQ/transferring-files-within-the-unraid-server/index.html index 385898b55..d02852ff3 100644 --- a/legacy/FAQ/transferring-files-within-the-unraid-server/index.html +++ b/legacy/FAQ/transferring-files-within-the-unraid-server/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -74,7 +74,7 @@ structure.

    Wildcards

    Wildcards are available as well. For example, if you want to copy all of the files from Disk 2 over to Disk 3, use the mv command like this:

    mv /mnt/disk2/* /mnt/disk3

    In this example, all files and folders on Disk 2 would be relocated over to Disk 3 in the exact same folder structure as it was on Disk 2.

    - - + + \ No newline at end of file diff --git a/legacy/FAQ/understanding-smart-reports/index.html b/legacy/FAQ/understanding-smart-reports/index.html index d5f4d073a..e61593586 100644 --- a/legacy/FAQ/understanding-smart-reports/index.html +++ b/legacy/FAQ/understanding-smart-reports/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -217,7 +217,7 @@ MyMain thread; an UnMENU plugin; after installing UnMENU, install this next; has a Smart View that provides color-coded SMART info for all drives
    - - + + \ No newline at end of file diff --git a/legacy/FAQ/usb-flash-drive-preparation/index.html b/legacy/FAQ/usb-flash-drive-preparation/index.html index 06c77c37d..1f8fe05a9 100644 --- a/legacy/FAQ/usb-flash-drive-preparation/index.html +++ b/legacy/FAQ/usb-flash-drive-preparation/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -99,7 +99,7 @@ flash drive, check here, near the bottom of the page. Also see -here

    If the Flash will not boot, read over the following tips

    Unfortunately, some motherboards and BIOS versions are very picky about +here

    If the Flash will not boot, read over the following tips

    Unfortunately, some motherboards and BIOS versions are very picky about the geometry or configuration of the USB flash drive. Some combinations of motherboard, BIOS, and flash drive do not work, or only work after more advanced 'modifications'. The following tips are what users have @@ -165,7 +165,7 @@ instructions, using Ubuntu or similar, can be found here: http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/.

  • And last of all, try upgrading the BIOS of your motherboard. A later BIOS may have better support for booting from USB.

  • - - + + \ No newline at end of file diff --git a/search/index.html b/search/index.html index d0ced039c..f29e11b61 100644 --- a/search/index.html +++ b/search/index.html @@ -9,14 +9,14 @@ - - - + + +

    Search the documentation

    - - + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index cb4bdf178..b4e340f93 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://docs.unraid.net/search/weekly0.5https://docs.unraid.net/weekly0.5https://docs.unraid.net/category/contribute/weekly0.5https://docs.unraid.net/category/faq/weekly0.5https://docs.unraid.net/category/getting-started/weekly0.5https://docs.unraid.net/category/guides/weekly0.5https://docs.unraid.net/category/legacy-documentation/weekly0.5https://docs.unraid.net/category/manual/weekly0.5https://docs.unraid.net/category/release-notes/weekly0.5https://docs.unraid.net/category/tutorial---basics/weekly0.5https://docs.unraid.net/category/tutorial---extras/weekly0.5https://docs.unraid.net/category/unraid-connect/weekly0.5https://docs.unraid.net/category/unraid-os/weekly0.5https://docs.unraid.net/category/zfs/weekly0.5https://docs.unraid.net/connect/about/weekly0.5https://docs.unraid.net/connect/help/weekly0.5https://docs.unraid.net/connect/remote-access/weekly0.5https://docs.unraid.net/contribute-to-docs/intro/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/congratulations/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/create-a-blog-post/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/create-a-document/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/create-a-page/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-extras/manage-docs-versions/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-extras/translate-your-site/weekly0.5https://docs.unraid.net/legacy/Articles/dual-boot-unraid-and-windows/weekly0.5https://docs.unraid.net/legacy/Articles/expanding-windows-vm-vdisk-partitions/weekly0.5https://docs.unraid.net/legacy/Articles/upgrading-to-unraid-6/weekly0.5https://docs.unraid.net/legacy/FAQ/cache-disk/weekly0.5https://docs.unraid.net/legacy/FAQ/check-disk-filesystems/weekly0.5https://docs.unraid.net/legacy/FAQ/check-harddrive-speed/weekly0.5https://docs.unraid.net/legacy/FAQ/console/weekly0.5https://docs.unraid.net/legacy/FAQ/parity-swap-procedure/weekly0.5https://docs.unraid.net/legacy/FAQ/Parity/weekly0.5https://docs.unraid.net/legacy/FAQ/replacing-a-data-drive/weekly0.5https://docs.unraid.net/legacy/FAQ/replacing-multiple-data-drives/weekly0.5https://docs.unraid.net/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/weekly0.5https://docs.unraid.net/legacy/FAQ/setup-sleep-and-wake-on-lan/weekly0.5https://docs.unraid.net/legacy/FAQ/shrink-array/weekly0.5https://docs.unraid.net/legacy/FAQ/terminal-access/weekly0.5https://docs.unraid.net/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/weekly0.5https://docs.unraid.net/legacy/FAQ/transferring-files-within-the-unraid-server/weekly0.5https://docs.unraid.net/legacy/FAQ/understanding-smart-reports/weekly0.5https://docs.unraid.net/legacy/FAQ/usb-flash-drive-preparation/weekly0.5https://docs.unraid.net/unraid-os/faq/licensing-faq/weekly0.5https://docs.unraid.net/unraid-os/faq/os-faq/weekly0.5https://docs.unraid.net/unraid-os/faq/redeem-license-activation-code/weekly0.5https://docs.unraid.net/unraid-os/faq/unraid-account/weekly0.5https://docs.unraid.net/unraid-os/guides/configuring-time-machine/weekly0.5https://docs.unraid.net/unraid-os/guides/wol-setup-for-unraid/weekly0.5https://docs.unraid.net/unraid-os/manual/additional-settings/weekly0.5https://docs.unraid.net/unraid-os/manual/applications/weekly0.5https://docs.unraid.net/unraid-os/manual/changing-the-flash-device/weekly0.5https://docs.unraid.net/unraid-os/manual/docker-management/weekly0.5https://docs.unraid.net/unraid-os/manual/getting-started/weekly0.5https://docs.unraid.net/unraid-os/manual/getting-started/manual-install-method/weekly0.5https://docs.unraid.net/unraid-os/manual/multi-language/weekly0.5https://docs.unraid.net/unraid-os/manual/security/weekly0.5https://docs.unraid.net/unraid-os/manual/shares/weekly0.5https://docs.unraid.net/unraid-os/manual/storage-management/weekly0.5https://docs.unraid.net/unraid-os/manual/tools/weekly0.5https://docs.unraid.net/unraid-os/manual/troubleshooting/weekly0.5https://docs.unraid.net/unraid-os/manual/upgrade-instructions/weekly0.5https://docs.unraid.net/unraid-os/manual/users/weekly0.5https://docs.unraid.net/unraid-os/manual/vm-management/weekly0.5https://docs.unraid.net/unraid-os/manual/vm-support/weekly0.5https://docs.unraid.net/unraid-os/manual/what-is-unraid/weekly0.5https://docs.unraid.net/unraid-os/manual/zfs/placeholder/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.2/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.3/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.2/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.3/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.4/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.5/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.2/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.3/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.9.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.9.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.9.2/weekly0.5 \ No newline at end of file +https://docs.unraid.net/search/weekly0.5https://docs.unraid.net/weekly0.5https://docs.unraid.net/category/contribute/weekly0.5https://docs.unraid.net/category/faq/weekly0.5https://docs.unraid.net/category/getting-started/weekly0.5https://docs.unraid.net/category/guides/weekly0.5https://docs.unraid.net/category/legacy-documentation/weekly0.5https://docs.unraid.net/category/manual/weekly0.5https://docs.unraid.net/category/release-notes/weekly0.5https://docs.unraid.net/category/tutorial---basics/weekly0.5https://docs.unraid.net/category/tutorial---extras/weekly0.5https://docs.unraid.net/category/unraid-connect/weekly0.5https://docs.unraid.net/category/unraid-os/weekly0.5https://docs.unraid.net/category/zfs/weekly0.5https://docs.unraid.net/connect/about/weekly0.5https://docs.unraid.net/connect/help/weekly0.5https://docs.unraid.net/connect/remote-access/weekly0.5https://docs.unraid.net/contribute-to-docs/intro/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/congratulations/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/create-a-blog-post/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/create-a-document/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/create-a-page/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-extras/manage-docs-versions/weekly0.5https://docs.unraid.net/contribute-to-docs/tutorial-extras/translate-your-site/weekly0.5https://docs.unraid.net/legacy/Articles/dual-boot-unraid-and-windows/weekly0.5https://docs.unraid.net/legacy/Articles/expanding-windows-vm-vdisk-partitions/weekly0.5https://docs.unraid.net/legacy/Articles/upgrading-to-unraid-6/weekly0.5https://docs.unraid.net/legacy/FAQ/cache-disk/weekly0.5https://docs.unraid.net/legacy/FAQ/check-disk-filesystems/weekly0.5https://docs.unraid.net/legacy/FAQ/check-harddrive-speed/weekly0.5https://docs.unraid.net/legacy/FAQ/console/weekly0.5https://docs.unraid.net/legacy/FAQ/parity-swap-procedure/weekly0.5https://docs.unraid.net/legacy/FAQ/Parity/weekly0.5https://docs.unraid.net/legacy/FAQ/replacing-a-data-drive/weekly0.5https://docs.unraid.net/legacy/FAQ/replacing-multiple-data-drives/weekly0.5https://docs.unraid.net/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/weekly0.5https://docs.unraid.net/legacy/FAQ/setup-sleep-and-wake-on-lan/weekly0.5https://docs.unraid.net/legacy/FAQ/shrink-array/weekly0.5https://docs.unraid.net/legacy/FAQ/terminal-access/weekly0.5https://docs.unraid.net/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/weekly0.5https://docs.unraid.net/legacy/FAQ/transferring-files-within-the-unraid-server/weekly0.5https://docs.unraid.net/legacy/FAQ/understanding-smart-reports/weekly0.5https://docs.unraid.net/legacy/FAQ/usb-flash-drive-preparation/weekly0.5https://docs.unraid.net/unraid-os/faq/licensing-faq/weekly0.5https://docs.unraid.net/unraid-os/faq/os-faq/weekly0.5https://docs.unraid.net/unraid-os/faq/redeem-license-activation-code/weekly0.5https://docs.unraid.net/unraid-os/faq/unraid-account/weekly0.5https://docs.unraid.net/unraid-os/guides/configuring-time-machine/weekly0.5https://docs.unraid.net/unraid-os/guides/wol-setup-for-unraid/weekly0.5https://docs.unraid.net/unraid-os/manual/additional-settings/weekly0.5https://docs.unraid.net/unraid-os/manual/applications/weekly0.5https://docs.unraid.net/unraid-os/manual/changing-the-flash-device/weekly0.5https://docs.unraid.net/unraid-os/manual/docker-management/weekly0.5https://docs.unraid.net/unraid-os/manual/getting-started/weekly0.5https://docs.unraid.net/unraid-os/manual/getting-started/manual-install-method/weekly0.5https://docs.unraid.net/unraid-os/manual/multi-language/weekly0.5https://docs.unraid.net/unraid-os/manual/security/weekly0.5https://docs.unraid.net/unraid-os/manual/security/data-encryption/weekly0.5https://docs.unraid.net/unraid-os/manual/security/flash-drive/weekly0.5https://docs.unraid.net/unraid-os/manual/security/good-practices/weekly0.5https://docs.unraid.net/unraid-os/manual/security/secure-webgui-ssl/weekly0.5https://docs.unraid.net/unraid-os/manual/security/vpn/weekly0.5https://docs.unraid.net/unraid-os/manual/shares/weekly0.5https://docs.unraid.net/unraid-os/manual/shares/create-a-share/weekly0.5https://docs.unraid.net/unraid-os/manual/shares/delete-a-share/weekly0.5https://docs.unraid.net/unraid-os/manual/shares/disk-shares/weekly0.5https://docs.unraid.net/unraid-os/manual/shares/network-access/weekly0.5https://docs.unraid.net/unraid-os/manual/shares/user-shares/weekly0.5https://docs.unraid.net/unraid-os/manual/storage-management/weekly0.5https://docs.unraid.net/unraid-os/manual/tools/weekly0.5https://docs.unraid.net/unraid-os/manual/troubleshooting/weekly0.5https://docs.unraid.net/unraid-os/manual/upgrade-instructions/weekly0.5https://docs.unraid.net/unraid-os/manual/users/weekly0.5https://docs.unraid.net/unraid-os/manual/vm-management/weekly0.5https://docs.unraid.net/unraid-os/manual/vm-support/weekly0.5https://docs.unraid.net/unraid-os/manual/what-is-unraid/weekly0.5https://docs.unraid.net/unraid-os/manual/zfs/placeholder/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.2/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.10.3/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.2/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.3/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.4/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.11.5/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.2/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.12.3/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.9.0/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.9.1/weekly0.5https://docs.unraid.net/unraid-os/release-notes/6.9.2/weekly0.5 \ No newline at end of file diff --git a/unraid-os/faq/licensing-faq/index.html b/unraid-os/faq/licensing-faq/index.html index 18126b693..891f19197 100644 --- a/unraid-os/faq/licensing-faq/index.html +++ b/unraid-os/faq/licensing-faq/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -20,7 +20,7 @@ corner of the page.

    You can also purchase a license activation code directly from our website and redeem the code for a license later when your server is up and running. The activation code will be on -your receipt.

    How to Redeem a License Activation Code

    First, buy an activation code via our website. Your unique activation code will be listed on your purchase receipt.

    Next, follow our Getting Started guide to set up an Unraid server.

    Once your server is up and running:

    Login to your Unraid server's webgui. (http://tower or http://tower.local from Mac by default) +your receipt.

    How to Redeem a License Activation Code

    First, buy an activation code via our website. Your unique activation code will be listed on your purchase receipt.

    Next, follow our Getting Started guide to set up an Unraid server.

    Once your server is up and running:

    Login to your Unraid server's webgui. (http://tower or http://tower.local from Mac by default) For Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key." Select the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile. If you have any issues or questions with the above, there is also a walk through video: Activation Code Instructional Video

    How do I Upgrade my Unraid License?

    If you want or need to upgrade your license to a higher tier, upgrades @@ -76,7 +76,7 @@ to them. There will also be an invoice download link upon completion of the checkout.

    For bulk OEM/reseller pricing of 10 licenses or more, please contact us!

    - - + + \ No newline at end of file diff --git a/unraid-os/faq/os-faq/index.html b/unraid-os/faq/os-faq/index.html index eb2670c8c..15eaf2728 100644 --- a/unraid-os/faq/os-faq/index.html +++ b/unraid-os/faq/os-faq/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -43,12 +43,7 @@ able to simply re-assign them all and start the array.

    You may need to reconfigure your shares, users, and other system settings, but your data should be intact.

    If you cannot remember your drive assignments, please post on the forum for further assistance (under General -Support).

    What Should I do if I have Forgotten my Root Password?

    To reset your root -password:

    1. Shutdown your server.
    2. Plug your USB flash into a laptop or another computer.
    3. Open the USB folder and delete the files "config/shadow" and -"config/smbpasswd". (DO NOT delete "config/passwd). This will -reset all user passwords, including the root user to blank.
    4. Now, safely eject your USB and reboot it on your Unraid server and -you’re in. You can then set a new password in the Users tab of the -Unraid webgui.

    Important: this process only works for user passwords. If you encrypt +Support).

    What Should I do if I have Forgotten my Root Password?

    See Lost Root Password

    Important: this process only works for user passwords. If you encrypt your drives and forget this password, unfortunately you are hosed. There is no way for Lime Technology or anyone to recover this password. Please remember it or write it down in a secure, locked place!

    How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?

    1. Ensure there is no data on the system that you want or need.
    2. Stop the array and shut down the server.
    3. Remove the USB flash device.
    4. Using a Windows or Mac computer, reformat the flash using the USB @@ -114,7 +109,7 @@ each time to perform the swap and rebuilds. This will ensure the devices are not written during the process. At the end of the process, the original storage device should be intact.

      Also highly recommend downloading flash backup: Main/Flash/Flash Backup

    - - + + \ No newline at end of file diff --git a/unraid-os/faq/redeem-license-activation-code/index.html b/unraid-os/faq/redeem-license-activation-code/index.html index 69a950279..0f386339c 100644 --- a/unraid-os/faq/redeem-license-activation-code/index.html +++ b/unraid-os/faq/redeem-license-activation-code/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Redeem License Activation Code

    First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.

    Next, follow our Getting Started guide to set up an Unraid server.

    Once your server is up and running:

    1. Login to your Unraid server's webgui. (http://tower or +

      Redeem License Activation Code

      First, buy an activation code via our website. Your unique activation code will be on your purchase receipt.

      Next, follow our Getting Started guide to set up an Unraid server.

      Once your server is up and running:

      1. Login to your Unraid server's webgui. (http://tower or http://tower.local from Mac by default)
      2. For Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to @@ -27,7 +27,7 @@ Codes are one-time use for generating your Unraid license keyfile.

      If you have any issues or questions with the above, there is also a walk through video: Activation Code Instructional Video

    - - + + \ No newline at end of file diff --git a/unraid-os/faq/unraid-account/index.html b/unraid-os/faq/unraid-account/index.html index 17a957ed1..7a164103a 100644 --- a/unraid-os/faq/unraid-account/index.html +++ b/unraid-os/faq/unraid-account/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ Unraid Connect. This account is not the same as your server's root password that you use to login to the Unraid webgui.

    - - + + \ No newline at end of file diff --git a/unraid-os/guides/configuring-time-machine/index.html b/unraid-os/guides/configuring-time-machine/index.html index ee3f26c85..7472f7265 100644 --- a/unraid-os/guides/configuring-time-machine/index.html +++ b/unraid-os/guides/configuring-time-machine/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -59,7 +59,7 @@ there, simply follow the instructions above!

    For more info on Time Machine shares, be sure to also check out Space Invader One's excellent video on Unraid Shares and MacOS!

    - - + + \ No newline at end of file diff --git a/unraid-os/guides/wol-setup-for-unraid/index.html b/unraid-os/guides/wol-setup-for-unraid/index.html index 03be25b60..52c92a6aa 100644 --- a/unraid-os/guides/wol-setup-for-unraid/index.html +++ b/unraid-os/guides/wol-setup-for-unraid/index.html @@ -9,14 +9,14 @@ - - - + + +

    How To Setup Wake On LAN (WOL) for UNRAID

    (assuming onboard NIC and WOL activated in motherboard's BIOS)

    Put to sleep

    1. Webterminal or SSH into server
    2. Type ifconfig and note IP-address and MAC-Address (ether) of used NIC
    3. Type ethtool -s eth0 wol g
    4. Type echo -n mem > /sys/power/state

    Wake up using

    MacOS / Linux / Windows

    1. Download "MiniWOL2" from https://www.tweaking4all.com/home-theatre/miniwol2/ and install
    2. Click miniicon, push "Add" button and name the device to wake (Alias in Menu)
    3. Set "IPv4 Address" (manually or select from ARP List) and "MAC-Address" (manually or click on 'detect') in appropriate fields
    4. Set "Broadcast" 255.255.255.255
    5. Push "Test" to wake-up device (needs to be in sleep mode: see above)

    Windows: (ALTERNATIVE)

    1. Download "wolcmd.exe" from https://www.depicus.com/wake-on-lan/wake-on-lan-cmd and unpack
    2. Open command line prompt and cd to dowload directory
    3. Type wolcmd.exe <ether> <ip-dest> 255.255.255.255

    Linux: (ALTERNATIVE)

    1. Type wakeonlan <MAC-Address> OR
    2. Type wol <MAC-Address>

    For Guide assistance, see: https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/

    - - + + \ No newline at end of file diff --git a/unraid-os/manual/additional-settings/index.html b/unraid-os/manual/additional-settings/index.html index a212df70d..859bacf80 100644 --- a/unraid-os/manual/additional-settings/index.html +++ b/unraid-os/manual/additional-settings/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Additional Settings

    While Unraid is configured to work automatically, you may wish to +

    Additional Settings

    While Unraid is configured to work automatically, you may wish to further refine your setup by customizing your IP address, hostname, disk tunables, and other settings. This section goes over the various settings you can configure from the Unraid webGui. All settings controls @@ -65,7 +65,7 @@ workgroup, or even join an active directory domain.

    FTP (File Transfer Protocol)

    Users can connect via FTP if they are added to the FTP user(s) field on this page. If no users are added, the FTP service will not be started.

    Syslog

    Users can set up logging of the syslog to permanent storage

    WireGuard

    WireGuard VPN Server

    Users can set up a VPN connection using -WireGuard for secure connections +WireGuard for secure connections to/from the internet

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    Confirmations

    From here, you can disable the need for confirmations to perform various tasks.

    Display Settings

    Customize the appearance of the Unraid webGui from this page. This includes adjusting the date and time format, number format, toggles for @@ -121,7 +121,7 @@ Scheduler settings page of the Unraid GUI. Typically they are related to enhancing/tuning the Parity Check or Mover functionality although this is not mandated.

    - - + + \ No newline at end of file diff --git a/unraid-os/manual/applications/index.html b/unraid-os/manual/applications/index.html index 269e42ee1..cec5123f4 100644 --- a/unraid-os/manual/applications/index.html +++ b/unraid-os/manual/applications/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Community Applications

    This section discusses running applications on an Unraid server or +

    Community Applications

    This section discusses running applications on an Unraid server or extending the base capabilities. One of the great strengths of Unraid is the ability for it to easily be made to function as more than a basic NAS system.

    Overview

    A number of mechanisms are provided by which the capability of an Unraid @@ -236,8 +236,8 @@ Unraid. The port to be used for such clients is displayed in the Unraid GUI on the VM tab when a VM is running. Using such an alternative client can work in cases where the NoVNC client does -not work correctly for some reason.

    - - +not work correctly for some reason.
    + + \ No newline at end of file diff --git a/unraid-os/manual/changing-the-flash-device/index.html b/unraid-os/manual/changing-the-flash-device/index.html index e6d9408a9..819fd18b7 100644 --- a/unraid-os/manual/changing-the-flash-device/index.html +++ b/unraid-os/manual/changing-the-flash-device/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Changing the Flash Device

    There are two ways to swap out your USB flash device. If you are using a +

    - - + + \ No newline at end of file diff --git a/unraid-os/manual/docker-management/index.html b/unraid-os/manual/docker-management/index.html index d4becc629..3fa879962 100644 --- a/unraid-os/manual/docker-management/index.html +++ b/unraid-os/manual/docker-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Docker Management

    Docker is a technology that allows users to provide each application +

    Docker Management

    Docker is a technology that allows users to provide each application with its own isolated operating Linux environment, isolating compatibility or coexistence conflicts with other applications. If you want more information on docker and its underlying technology than is @@ -246,8 +246,8 @@ useful for testing out alternate versions before upgrading.

  • Click the Advanced View toggle on the top right when viewing the Docker page or adding applications to see additional configuration options.
  • Learn more about Docker containers from our helpful user -community.
  • - - +community.
    + + \ No newline at end of file diff --git a/unraid-os/manual/getting-started/index.html b/unraid-os/manual/getting-started/index.html index acb5c0238..c70a24a8c 100644 --- a/unraid-os/manual/getting-started/index.html +++ b/unraid-os/manual/getting-started/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Getting Started

    In this guide, we will be covering how to prepare your flash device, +

    Getting Started

    In this guide, we will be covering how to prepare your flash device, boot the system, and configure your first array. The entire process should take less than 15 minutes.

    Prerequisites

    Before we begin:

    • You should have your server assembled and connected via power and Ethernet.
    • You should have a monitor and keyboard attached for the initial @@ -113,7 +113,7 @@ field.

      It is strongly recommended that you make use of this feature as the information available via that route is likely to be more extensive and up-to-date than any documentation.

      Security Best Practices

      Your Unraid server is likely to end up containing data that is valuable -to you so it can be a good idea to review the Security Good +to you so it can be a good idea to review the Security Good Practices part of the documentation to ensure you are not doing something that may leave your system open to attack while leaving your valuable data at risk.

      Advanced BIOS Configuration Guide

      @@ -207,7 +207,7 @@ can click for a 15 day extension. You can do this a total of two times before you must decide if you would like to purchase Unraid or not.

      Note: You cannot change the USB flash device for Unraid Trials if you wish to continue where you left off.

    - - + + \ No newline at end of file diff --git a/unraid-os/manual/getting-started/manual-install-method/index.html b/unraid-os/manual/getting-started/manual-install-method/index.html index d0e7319d5..209ee6719 100644 --- a/unraid-os/manual/getting-started/manual-install-method/index.html +++ b/unraid-os/manual/getting-started/manual-install-method/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Manual Install Method

    If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, +

    Manual Install Method

    If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, it is possible to manually format and prepare a bootable USB flash device. Note: this method only works for devices 32GB and smaller.

    • Plug the USB flash device into your Mac or PC.
    • Format the device using the FAT32 file system. It must not be ex-FAT or NTFS. If your drive is larger than 32GB then you need to use @@ -29,8 +29,8 @@ admin password when prompted.
  • Linux:
    • copy make_bootable_linux file to hard drive
    • unmount (not eject) USB drive
    • run the following command from wherever you unpacked it to on your Linux system:
    • sudo bash ./make_bootable_linux
  • NOTE: during the process of running this script, the flash device may seem to disappear and reappear on your workstation a few times – -this is expected behavior.

    - - +this is expected behavior.

    + + \ No newline at end of file diff --git a/unraid-os/manual/multi-language/index.html b/unraid-os/manual/multi-language/index.html index 025f43255..792f288d4 100644 --- a/unraid-os/manual/multi-language/index.html +++ b/unraid-os/manual/multi-language/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Multi-Language Support

    Introduction

    Unraid 6.9 +

    - - +take part in these growing communities!

    + + \ No newline at end of file diff --git a/unraid-os/manual/security/data-encryption/index.html b/unraid-os/manual/security/data-encryption/index.html new file mode 100644 index 000000000..db69057c9 --- /dev/null +++ b/unraid-os/manual/security/data-encryption/index.html @@ -0,0 +1,22 @@ + + + + + +Data Encryption | Unraid Docs + + + + + + + + + + +
    +

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly.

    The home page for LUKS can be found here

    Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives.


    To encrypt a drive (Note that this will erase any content already on the drive).

    1. Go to the Main tab.
    2. Stop the array.
    3. Select the drive.
    4. In File system type change the file system to the encrypted type that you want.
    5. Select Apply to commit the change.
    6. Select Done to return to the Main tab. The drive will now show as unmountable and the option to format unmountable drives will be present.
    7. Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.

    Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted.

    caution

    Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/security/flash-drive/index.html b/unraid-os/manual/security/flash-drive/index.html new file mode 100644 index 000000000..14b1c8281 --- /dev/null +++ b/unraid-os/manual/security/flash-drive/index.html @@ -0,0 +1,22 @@ + + + + + +Flash Drive | Unraid Docs + + + + + + + + + + +
    +

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.

    Backups

    If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change.

    You can easily achieve this from the Unraid webGUI:

    1. Select the flash drive on the Main tab.
    2. In the Flash Device Settings section select the Flash Backup button.
    3. The system will now create a ZIP file that is a backup of the contents of the flash drive.
    4. When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason, use this backup as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the Main tab.

    • *Network visibility: You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location.

    There are a few ways to handle this:

    1. Copy the files to a location from which they can be executed.

      • The location /usr/local/bin is a good choice if you want the files on the default search path.
      • You can copy the files into position when booting by adding appropriate commands to the config/go file on the flash drive.
      • Give the files execute permission after copying them.
    2. For scripts, prefix the script name with the command that runs the script (e.g. bash path-to-script).

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/security/good-practices/index.html b/unraid-os/manual/security/good-practices/index.html new file mode 100644 index 000000000..fcba897cb --- /dev/null +++ b/unraid-os/manual/security/good-practices/index.html @@ -0,0 +1,26 @@ + + + + + +Good Practices | Unraid Docs + + + + + + + + + + +
    +

    Good Practices

    We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.

    #1 Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the Users tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI.

    tip

    There is a plugin available in Community Apps called Dynamix Password Validator. This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in.

    You could also use this webpage to get a very quick assessment of the strength of any specific password.

    #2 Review port mappings on your router

    Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk.

    Here are just a few ports you should be extra careful with when forwarding:

    • Port 80: Used to access the webGUI without SSL - unless you've rebound access to another port on the Management Access settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you're doing. If you want to make the webGUI remotely accessible, install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.
    • Port 443: Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the Unraid Connect plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate. +Consider making life easier for yourself and utilize the Unraid Connect plugin to enable simple, safe, and secure remote access to your Unraid systems.
    • Port 445: Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a WireGuard VPN to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this.
    • Port 111/2049: Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS.
    • Port 22/23: Used by Telnet and SSH for console access. +Especially dangerous for users that don't have a root password set. +Similar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols.
    • Ports in the 57xx range: These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the Unraid Connect plugin. +This ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.
    tip

    Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.

    #3 Never put your server in your network's DMZ

    We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.

    Never, ever, do this.

    #4 Set security on your shares to private

    The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares.

    #5 Don't expose the flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents.

    #6 Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to Tools > Update OS to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the Settings > Notifications page.

    #7 Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet.

    A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used.

    An alternative for making the webGUI remotely accessible is to install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/security/index.html b/unraid-os/manual/security/index.html index 9cdb8c892..029aea481 100644 --- a/unraid-os/manual/security/index.html +++ b/unraid-os/manual/security/index.html @@ -1,535 +1,22 @@ - + -Security | Unraid Docs +Security | Unraid Docs - - - + + +
    -

    Security

    This section covers various security-related aspects of Unraid

    Good Practices

    An Unraid server is likely to contain data that is sensitive or that a -user would hate to lose. Since most users will have their home network -connected to the internet then precautions should be taken to avoid an -Unraid server being compromised by malicious actors trying to access -them remotely.

    The following simple guidelines will help avoid many common pitfalls -that some user encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are -safe.

    There is also a forum -thread -that discusses this topic.

    Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by -default. This is to ensure you can quickly and easily access the -management console immediately after initial installation. However, this -doesn't mean you shouldn't set one. Doing this is simple. Just -navigate to the Users tab and click on root. Now set a password. From -then on, you will be required to authenticate anytime you attempt to -login to the webGui.

    In addition, there is a plugin available in Community Apps called -Dynamix Password Validator. This plugin will provide guidance on how -strong of a password you're creating based on complexity rules (how -many capital vs. lowercase letters, numbers, symbols, and overall -password length are used to judge this). Consider installing this for -extra guidance on password strength. Once installed it is available in -the settings for any user to give guidance on the strength of any -password you type in.

    You could also use this web -page to get a very quick -assessment of the strength of any specific password.

    Review port mappings on your router

    Forwarding ports to your server is required for specific services that -you want to be Internet-accessible such as Plex, FTP servers, game -servers, VoIP servers, etc. But forwarding the wrong ports can expose -your server to significant security risk. Here are just a few ports you -should be extra careful with when forwarding:

    • Port 80: Used to access the webGui without SSL (unless you've -rebound access to another port on the Management Access settings -page). Forwarding this port by default will allow you to access the -webGui remotely, but without SSL securing the connection, devices in -between your browser and the server could "sniff" the packets to -see what you're doing. If you want to make the webGui remotely -accessible, install the Unraid Connect plugin, which can provide a -secure remote access solution that utilizes SSL to ensure your -connection is fully encrypted.

    • Port 443: Used to access the webGui with SSL. This is only -better than port 80 if you have a root password set. If no root -password is set and you forward this port, unauthorized users can -connect to your webGui and have full access to your server. In -addition, if you forward this port without using the Unraid Connect -plugin, attempts to connect to the webGui through a browser will -present a security warning due to the lack of an SSL certificate. -Consider making life easier for yourself and utilize the Unraid Connect -plugin to enable simple, safe, and secure remote access to your -Unraid systems.

    • Port 445: Used for SMB (shares). If you forward this port to -your server, any public shares can be connected to by any user over -the internet. Generally speaking, it is never advisable to expose -SMB shares directly over the internet. If you need the ability to -access your shares remotely, we suggest utilizing a WireGuard VPN to -create a secure tunnel between your device and the server. In -addition, if the flash device itself is exported using SMB and this -port is forwarded, its contents can easily be deleted and your paid -key could easily be stolen. Just don't do this.

    • Port 111/2049: Used for NFS (shares). While NFS is disabled by -default, if you are making use of this protocol, just make sure you -aren't forwarding these ports through your router. Similar to SMB, -just utilize WireGuard to create a secure tunnel from any remote -devices that need to connect to the server over NFS.

    • Port 22/23: Used by Telnet and SSH for console access. -Especially dangerous for users that don't have a root password set. -Similar to SMB, we don't recommend forwarding these ports at all, -but rather, suggest users leverage a WireGuard VPN connection for -the purposes of connecting using either of these protocols.

    • Ports in the 57xx range: These ports are generally used by VMs -for VNC access. While you can forward these ports to enable VNC -access remotely for your VMs, the better and easier way to do this -is through installing the Unraid Connect plugin. -This ensures that those connections -are secure via SSL and does not require individual ports to be -forwarded for each VM.

    Generally speaking, you really shouldn't need to forward many ports to -your server. If you see a forwarding rule you don't understand, -consider removing it, see if anyone complains, and if so, you can always -put it back.

    Never ever ever put your server in the DMZ

    No matter how locked down you think you have your server, it is never -advisable to place it in the DMZ on your network. By doing so, you are -essentially forwarding every port on your public IP address to your -server directly, allowing all locally accessible services to be remotely -accessible as well. Regardless of how "locked down" you think you -actually have the server, placing it in the DMZ exposes it to -unnecessary risks. Never ever do this.

    Consider setting shares to private with users and passwords

    The convenience of password-less share access is pretty great. We know -that and its why we don't require you to set passwords for your shares. -However, there is a security risk posed to your data when you do this, -even if you don't forward any ports to your server and have a strong -root password. If another device on your network such as a PC, Mac, -phone, tablet, IoT device, etc. were to have its security breached, it -could be used to make a local connection to your server's shares. By -default, shares are set to be publicly readable/writeable, which means -those rogue devices can be used to steal, delete, or encrypt the data -within them. In addition, malicious users could also use this method to -put data on your server that you don't want. It is for these reasons -that if you are going to create public shares, we highly recommend -setting access to read-only. Only authorized users with a strong -password should be able to write data to your shares.

    Don't expose the Flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if -you need to make advanced changes to your system such as modifying the -go file in the config directory. However, the flash device itself -contains the files needed to boot Unraid as well as your configuration -data (disk assignments, shares, etc). Exposing this share publicly can -be extremely dangerous, so we advise against doing so unless you -absolutely have to, and when you do, it is advised to do so privately, -requiring a username and password to see and modify the contents.

    Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current -with the latest release(s) is vital to ensuring security. There are -constant security notices (CVEs) published for the various components -used in Unraid OS. We here at Lime Technology do our best to ensure all -vulnerabilities are addressed in a timely manner with software updates. -However, these updates are useless to you if you don't apply them in a -timely manner as well. Keeping your OS up-to-date is easy. Just navigate -to Tools -> Update OS to check for and apply any updates. You can -configure notifications to prompt you when a new update is available -from the Settings -> Notifications page.

    Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be -administered remotely but this should never be done by simply exposing -exposing the Unraid webGui to the internet.

    A frequent way to secure such a connection is to use VPN technology. -Unraid includes as standard the WireGuard VPN and an OpenVPN plugin and -Docker container is also available. In addition many routers have built -in VPN support which can be used.

    An alternative for making the webGui remotely accessible is to install -the Unraid Connect plugin, which can provide a secure remote access solution -that utilizes SSL to ensure your connection is fully encrypted.

    Securing webGui connections (SSL)

    Using wildcard SSL Certificates provisioned by Let's -Encrypt, Unraid OS 6.10 improves the security -of the SSL implementation for both local access and Unraid Connect Remote Access.

    A few details before we begin

    Some terms:

    • servername can be changed on the Settings -> Identification -page. It defaults to "tower".
    • localTLD can be changed on the Settings -> Management Access -page. It defaults to "local".
    • Use SSL/TLS can be changed on the Settings -> Management Access -page. It defaults to "No".
    • HTTP port can be changed on the Settings -> Management Access -page. It defaults to "80". If you change this, add :[HTTP port] to any of the http URLs in the scenarios below. (example: -http://tower.local:8080)
    • HTTPS port can be changed on the Settings -> Management Access -page. It defaults to "443". If you change this, add :[HTTPS port] to any of the https URLs in the scenarios below. (example: -https://tower.local:3443)
    • certificate refers to either a self-signed SSL Certificate, or a -SSL certificate issued by a Certificate Authority (Let's Encrypt)
    • lan-ip is your server's LAN IP address with dots changed to -dashes (example 192-168-100-1)
    • wan-ip is your internet-facing IP address with dots changed to -dashes (example 136-26-144-139)
    • hash is a random 40 character hex string (160 bits) uniquely -assigned to your server when a certificate is first issued

    Caveats of using a self-signed certificate: Note that browsers will -show a certificate error because they cannot verify the authenticity of -self-signed certificates. All traffic will be encrypted once users -acknowledge the browser warning.

    How would you like to access the Unraid webGui while on your LAN?

    Http only

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to No
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Traffic between the browser and the server will not be encrypted

    Https with Self-signed certificate

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • All traffic will be encrypted
    • Unraid will manage the certificate for you. See "Caveats of using a -self-signed certificate" above.

    Https with Myunraid.net certificate - with fallback URL if DNS is unavailable

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate)
    • Leave Use SSL/TLS set to either No or Yes
    • Press Provision
    • Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Your primary URLs when Use SSL/TLS set to Yes. Note that these -URLs use a self-signed certificate (See "Caveats of using a -self-signed certificate" above)
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • Your alternate URL will be -https://[lan-ip].[hash].myunraid.net (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net). This personal link -is shown in the Certificate subject field on the Management Access -page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted if using https.
    • Unraid will manage the certificates for you.
    • If at any point DNS resolution becomes unavailable, the alternate -URL may not resolve. In this case use the primary URL as a fallback.

    Https with Myunraid.net certificate - with no fallback URL

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate if you run the use_ssl command mentioned -below)
    • Press Provision
    • If DNS Rebinding is not an issue, the "Strict" option for Use -SSL/TLS will be available.
    • Set Use SSL/TLS to Strict (this was previously called "Auto", -but "Strict" is more descriptive)
    • Your URL will be https://[lan-ip].[hash].myunraid.net -(example: https://192-168-100-1.a1b2c3d4e5.myunraid.net) This -personal link is shown in the Certificate subject field on the -Management Access page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted
    • Unraid will manage the certificates for you.
    • Note: If at any point DNS resolution becomes unavailable (e.g., your -Internet goes down), use telnet, SSH or local keyboard/monitor to -login. Then:
      • type use_ssl no to access the webgui via -http://[servername].[localTLD] or http://[ipaddress]
      • type use_ssl yes to access the webgui via -https://[servername].[localTLD] or https://[ipaddress] -using a self-signed certificate (See -"Caveats of using a self-signed certificate" above)
      • Once DNS resolution is available again, change Use SSL/TLS -back to Strict

    Redirects

    When accessing http://[ipaddress] or -http://[servername].[localTLD] , the behavior will change -depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to -https://[lan-ip].[hash].myunraid.net However, this behavior -makes it more difficult to access your server when DNS is -unavailable (i.e. your Internet goes down). If that happens see the -note under HTTPS with Myunraid.net certificate - with no fallback -URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to -https://[ipaddress] or https://[servername].[localTLD] -as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the http url will load -directly.

    Note: for the redirects to work, you must start from http urls not https -urls.

    Unraid Connect Remote Access

    • Install the Unraid Connect plugin
    • Navigate to the Settings -> Management Access page
    • Click Provision if you haven't already
    • Regardless of the value of Use SSL/TLS, you will have the option -to access the server using -https://[lan-ip].[hash].myunraid.net:[wan-port] (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net).
    • Navigate to Settings -> Management Access -> Unraid Connect page
    • Set Allow Remote Access to yes
    • Set the WAN port you want to use. For added security we -recommend you choose a random port over 1000 rather than using the -default of 443. i.e. something like 13856, 48653, etc
    • Click Apply
    • Setup your router to port forward the WAN port you specified to -the LAN IP address and HTTPS port used by the server. There is a -note on the screen telling you the exact port and IP to use.
    • Press the Check button. If the port is forwarded correctly you -will see a message saying "Your Unraid Server is reachable from the -Internet"
    • To access your server using Remote Access, login to the Unraid Connect -Dashboard and click the Remote Access link. The URL will be -https://[wan-ip].[hash].myunraid.net:[wan-port] (example: -https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856).

    Custom Certificates

    Https with Custom certificate - with option to have Unraid Connect Remote Access

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • Set the LocalTLD to the domain name used in the "Subject" of -the certificate.
    • Your URL will be https://[servername].[localTLD] (example: -https://tower.mydomain.com). You are responsible for managing DNS -for this URL.
    • You are responsible for managing the certificate. Upload it to -/boot/config/ssl/certs/[servername]_unraid_bundle.pem
    • The certificate must be valid for [servername].[localTLD] -(example: tower.mydomain.com). For a wildcard cert it must be -*.[localTLD] (example: *.mydomain.com). This url can be -specified in either the "Subject" of the certificate or one of the -"Subject Alternative Name" fields (prior to 6.10.3, only the -"Subject" field was used). If you find that Unraid deletes your -certificate, it is because the server's url is not specified in the -certificate.
    • All traffic will be encrypted
    • (optional) If desired, see the Unraid Connect Remote Access section -above

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the -array. It does this using the Linux LUKS (Linux Unified Key System) -encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a -standard on-disk-format, it does not only facilitate compatibility among -distributions but also provides secure management of multiple user -passwords. In contrast to an existing solution, LUKS stores all -necessary setup information in the partition header, enabling the user -to transport or migrate their data seamlessly.

    The home page for LUKS can be found -here

    Because it is a Linux standard drives that are encrypted using LUKS can -be read on any standard Linux system even when removed from Unraid as -long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting -all drives being used by Unraid. The key for the encryption can be -either a pass phrase, or provided via a key file. When using a key file -it is a good idea to use something like an image as there is no chance -of that ever being guessed. You must make sure that you do not lose the -encryption key as without it you will not be able to access the data on -encrypted drives.

    To encrypt a drive (Note that this will erase any content already on the -drive).

    • Stop the array
    • Click on the drive on the Main tab
    • change the file system to the encrypted type that you want to use
    • click Apply to commit the change
    • click Done to return to the Main tab
    • the drive will now show as unmountable and the option to format -unmountable drives will be present. Check that the drive is the one -you are expecting to be encrypted and if it is correct go ahead and -format it.

    Once you have set up encryption then it will be necessary to provide the -encryption key when starting the array. Once this has been done and the -array successfully started then you can access the data without being -aware of the fact that any drive is encrypted.

    CAUTION: Encrypting data is good from a security perspective, but users -should be aware of the fact that it can complicate recovering from -certain types of hardware failure without data loss. On that basis only -use encryption if you feel you have a real need for it, and ideally make -sure you have a good system for backing up any important data.

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains -all the configuration information relating to an Unraid server. You -therefore want to consider the security of the information it contains -and how it is accessed.

    Backups

    If a flash drive ever fails for any reason then as long as you have a -backup getting the Unraid server back into normal operation is an easy -process. It is recommended that you make a backup whenever you make a -significant configuration change.

    You easily achieve this from the Unraid GUI by:

    1. Click on the flash drive on the Main tab in the GUI.
    2. In the Flash Device Settings section click on the Flash Backup -button.
    3. The system will now start creating a zip file that is a backup of -the contents of the flash drive
    4. When the zip file has been created your browser should prompt you to -provide the location where you want the backup saved to. It is -recommended that this is a location off the Unraid server so that it -is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason this -backup can be used as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control -access over the network as is the case for other shares on an Unraid -system. The difference is that you set this up by clicking on the -flash device on the Main tab in the GUI rather than doing it via -the Shares tab.

    • Network visibility: You can specify whether the flash drive -should even be accessible via the network, and if it is accessible -whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any -access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with -Unraid 6.8 files on the flash drive can no longer be given execute -permission.

    The implication of this is that if a user has their own custom scripts -(or programs) stored on the flash drive they can no longer be executed -from that location. There are a number of ways to handle this:

    • Copy the files to a location from which they can be executed
      • The location /usr/local/bin is a good choice if you want the -files on the default search path.
      • You can copy the files into position when booting by adding -appropriate commands to the config/go file on the flash drive.
      • Remember to give the files execute permission after copying -them.
    • For scripts precede the script name with the command that runs the -script (e.g. bash path-to-script)

    VPN

    Unraid servers are not hardened against attack via the network so -should NEVER be exposed directly to the internet.

    • One exception is the WireGuard VPN service introduced in Unraid 6.8 -explicitly to address secure access to/from the internet.
    • If running Docker containers are exposed to the internet then the -security of these needs to be assessed on a case-by-case basis.

    You may need to contact the developer of the container to determine -how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a -'sandboxed' environment so the level of access to the content of -your disks is constrained to what you allow in the path mapping -settings for the container.

    • If running VMs that are exposed to the internet then you need to -apply the same security to these that you would apply to a physical -PC attached to the local LAN.

    If you want to make secure connections between an Unraid server and the -Internet then you want to use a technology known as VPN (Virtual Private -Network). VPN works on a client/server model where you have a server -that accepts incoming connections and a client that initiates such -connections.

    In simplistic terms, the idea behind VPN connections is to set up an -encrypted 'tunnel' between the client and server ends so that no -malicious players can intercept or eavesdrop on your interactions. Such -tunnels are set up so that only authorized users are able to make such -connections. More information on VPN as a technology can be found in -this wiki -article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the -commonest use case and many users want to be able to safely access -their Unraid servers (and potentially their whole home LAN) when -away from home. When running in this mode the server end of the VPN -link will either be running on the user's router (if it supports -such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you -want applications running on Unraid to access the internet. This -could be to access generic internet content or to access another -server located remotely to the Unraid server. If in is generic -access to the internet then it is highly likely that the server end -of such connection will be via a commercial VPN provider. When -running in this mode Unraid will be acting as the client end of any -VPN link.

    There are a wide variety of VPN solutions available both free and -commercial.

    Router

    Many modern routers have a VPN server built-in as standard (typically -based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of -not needing any other component on your home LAN to be operational for -the VPN to function. Once setup it should allow you to access all -devices on your home LAN in a similar manner to when you are directly -connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow -connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN -then you can search Community Applications for a plugin or docker -container that meets your requirements. You may also find the -SpaceInvaderOne YouTube -video of use in setting it -up.

    It is expected that with the introduction of WireGuard support in -Unraid 6.8 that WireGuard will become the favored way of setting up a -VPN connection to an Unraid server.

    WireGuard

    Overview

    Unraid 6.8 introduces built-in support for WireGuard VPN connections. The -intention is to make it as easy as possible for Unraid users to set up -VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to -add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid -boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be -better than OpenVPN.

    More information about WireGuard can be found on the WireGuard web -site. It should be noted that WireGuard is -still labeled as ''experimental'' by its developers but many users are -already finding that it appears to be robust enough for real-world use. -A number of the commercial VPN services are working on adding WireGuard -support so they must deem it to be mature enough for this to make sense -to them.

    The initial Unraid implementation includes adding the WireGuard kernel -modules to the standard Unraid distribution and starting the WireGuard -services as part of the Unraid boot process, but does not yet have the -management of WireGuard built-in. At the moment the GUI part is offered -as a separate plugin, but it is intended that it will be integrated into -Unraid in the future. This approach allows for quick updates and -enhancements without dependency on Unraid version releases. The Unraid -WireGuard GUI plugin can be installed via Community Applications, and -when it is installed you will find that an entry called VPN Manager -is added to the GUI under Settings->Network Services

    Note that the Unraid WireGuard plugin is still evolving so in the event -of a discrepancy between what is described here and the following forum -threads then it is likely that the thread is correct and this wiki needs -updating to bring it inline. These threads are also the appropriate -place to ask questions regarding Unraid's WireGuard implementation.

    What can you do with WireGuard? Let's walk through each of the -connection types:

    • Remote access to server: Use your phone or computer to remotely -access your Unraid server, including:

      • Unraid administration via the webgui
      • Access dockers, VMs, and network shares as though you were -physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", -allowing you to access your entire LAN as well.

    • Server to server access: Allows two Unraid servers to connect to -each other.

    • LAN to LAN access: Builds on "Server to server access", -allowing two entire networks to communicate. May require additional -settings, TBD.

    • Server hub & spoke access: Builds on "Remote access to -server", except that all of the VPN clients can connect to each -other as well. Note that all traffic passes through the server.

    • LAN hub & spoke access: Builds on "Server hub & spoke access", -allowing you to access your entire LAN as well.

    • VPN tunneled access: Route traffic for specific Dockers and VMs -through a commercial WireGuard VPN provider (see this guide)

    • Remote tunneled access: Securely access the Internet from -untrusted networks by routing all of your traffic through the VPN -and out Unraid's Internet connection

    The following diagram attempts to show these different connection types -in a graphical format

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your -trusted devices can VPN into your home network to access Unraid and the -other systems on your network.

    Prerequisites
    • You must be running Unraid 6.8 with the Dynamix WireGuard plugin -installed via the Apps tab (Community Applications).

    • Be aware that WireGuard is technically classified as experimental. -It has not gone through a full security audit yet and has not -reached 1.0 status. But it is the first open-source VPN solution -that is extremely simple to install, fast, and designed from the -ground up to be secure.

    • Understand that giving someone VPN access to your LAN is just like -giving them physical access to your LAN, except they have it 24x7 -when you aren't around to supervise. Only give access to people and -devices that you trust, and make certain that the configuration -details (particularly the private keys) are not passed around -insecurely. Regardless of the "connection type" you choose, assume -that anyone who gets access to this configuration information will -be able to get full access to your network.

    • This guide works great for simple networks. But if you have Dockers -with custom IPs or VMs with strict networking requirements, please -see the "Complex Networks" section below.

    • Unraid will automatically configure your WireGuard clients to -connect to Unraid using your current public IP address, which will -work until that IP address changes. To future-proof the setup, you -can use Dynamic DNS instead. There are many ways to do this, -probably the easiest is described in this 2 minute video from -SpaceInvaderOne.

    • If your router has UPnP enabled, Unraid will be able to -automatically forward the port for you. If not, you will need to -know how to configure your router to forward a port.

    • You will need to install WireGuard on a client system. It is -available for many operating systems as mentioned at WireGuard -clients. Android or iOS make -good first client systems because you can get all the details via QR -code.

    Setting up the Unraid side of the VPN tunnel
    • First, go to Settings -> Network Settings -> Interface eth0. If -"Enable bridging" is "Yes", then WireGuard will work as -described below. If bridging is disabled, then none of the "Peer -type of connections" that involve the local LAN will work properly. -As a general rule, bridging should be enabled in Unraid.

    • If UPnP is enabled on your router and you want to use it in Unraid, -go to Settings -> Management Access and confirm "Use UPnP" is set -to Yes
    • On Unraid go to Settings -> VPN Manager

    • Give the VPN Tunnel a name, such as "MyHome VPN"
    • Press "Generate Keypair". This will generate a set of public and -private keys for Unraid. Take care not to inadvertently share the -private key with anyone (such as in a screenshot like this)
    • By default, the local endpoint will be configured with your current -public IP address. If you chose to setup DDNS earlier, change the IP -address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to -change this unless you already have WireGuard running elsewhere on -your network.
    • Hit Apply
    • If Unraid detects that your router supports UPnP, it will -automatically setup port forwarding for you:

    • If you see a note that says "configure your router for port -forwarding..." you will need to login to your router and setup the -port forward as directed by the note:

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports -should be set to the value Unraid provides. If your router -interface asks you to put in a range, use the same port for both -the starting and ending values. Be sure to specify that it is a -UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of -your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, -i.e. "how to port forward Asus RT-AC68U"
    • Note that after hitting Apply, the public and private keys are -removed from view. If you ever need to access them, click the -"key" icon on the right-hand side.

    • Similarly, you can access other advanced settings by pressing the -"down chevron" on the right-hand side. They are beyond the scope -of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to -Active to start WireGuard. You can optionally set the tunnel to -Autostart when Unraid boots.

    There have been cases where this step has been omitted and users -end up wondering why the WireGuard VPN link is not working!

    Defining a Peer (client)
    • Click "Add Peer"

    • Give it a name, such as "MyAndroid"
    • For the initial connection type, choose "Remote access to LAN". -This will give your device access to Unraid and other items on your -network.
    • Click "Generate Keypair" to generate public and private keys for -the client. The private key will be given to the client/peer, but -take care not to share it with anyone else (such as in a screenshot -like this)
    • For an additional layer of security, click "Generate Key" to -generate a preshared key. Again, this should only be shared with -this client/peer.
    • Click Apply.
    • Note: Technically, the peer should generate these keys and not -give the private key to Unraid. You are welcome to do that, but it -is less convenient as the config files Unraid generates will not be -complete and you will have to finish configuring the client -manually.
    Caution

    It can be a little risky to add a new client ("peer") to WireGuard if -you are already connected remotely using WireGuard as adding a new peer -sometimes toggles the WireGuard tunnel off which will render you -unable to reconnect. This is because a configuration change is made -effective by inactivating the tunnel with the current (old) -configuration and next activating it with the updated (new) -configuration. If there is any sort of configuration conflict at this -point the tunnel stays inactive, and you can no longer connect to the -Unraid server

    Configuring a Peer (client)
    • Click the "eye" icon to view the peer configuration. If the button -is not clickable, you need to apply or reset your unsaved changes -first.

    • If you are setting up a mobile device, choose the "Create from QR -code" option in the mobile app and take a picture of the QR code. -Give it a name and make the connection. The VPN tunnel starts almost -instantaneously, once it is up you can open a browser and connect to -Unraid or another system on your network. Be careful not to share -screenshots of the QR code with anyone, or they will be able to use -it to access your VPN.
    • If you are setting up another type of device, download the file and -transfer it to the remote computer via trusted email or dropbox, -etc. Then unzip it and load the configuration into the client. -Protect this file, anyone who has access to it will be able to -access your VPN.
    About DNS

    The Dynamix WireGuard plugin includes a "Peer DNS Server" option

    If you are having trouble with DNS resolution on the WireGuard client, -return to the VPN Manager page in Unraid and switch from Basic to -Advanced mode, add the IP address of your desired DNS server into the -"Peer DNS Server" field, then install the updated config file on the -client. You may want to use the IP address of the router on the LAN you -are connecting to, or you could use a globally available IP like 8.8.8.8

    This is required for "Remote tunneled access" mode if the client's -original DNS server is no longer accessible after all traffic is routed -through the tunnel.

    If you are using any of the split tunneling modes, adding a DNS server -may provide name resolution on the remote network, although you will -lose name resolution on the client's local network in the process. The -simplest solution is to add a hosts file on the client that provides -name resolution for both networks.

    Complex Networks

    The instructions above should work out of the box for simple networks. -With "Use NAT" defaulted to Yes, all network traffic on Unraid uses -Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Dockers with custom IPs or VMs with strict -networking requirements, things may not work right (I know, kind of -vague, but feel free to read the two WireGuard threads for examples)

    A partial solution is:

    • In the WireGuard config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the -WireGuard "Local tunnel network pool" through the IP address of -your Unraid system. For instance, for the default pool of -10.253.0.0/24 you should add this static route:
      • Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)
      • Gateway: <IP address of your Unraid system>
    • Note that this covers the entire class B 10.253.x.x network, so you -can add other WireGuard tunnels without having to modify your router -setup again.

    With these changes, your network should work normally. However, your -WireGuard clients still may not be able to access Dockers on custom IPs -or VMs. If you find a solution to this, please ask questions in the -forum threads mentioned earlier.

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be -invisible! There aren't really any error messages if things aren't -working, it either works or it doesn't. It cannot be detected by a port -scanner.

    If you can't connect, it will mainly be an exercise in double-checking -your work:

    • Confirm that the tunnel is active (!)
    • Confirm that your DDNS is pointed at your current public IP address, -and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router -to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your -clients, you will need to set the clients up again so they have the -latest config.
    • Be sure you save your changes before you press "View Peer Config", -otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    - For your first client, setup a phone using its data connection (not -wifi). This eliminates issues related to the client network, and the QR -code is the easiest way to transfer settings. Once you have it working -from your phone, move on to other clients.

    • Disable any energy-saving features on the client, phones in particular -may not use VPNs properly when in low power mode. Also, you may need to -disable any "Data Saver" features on the phone so that VPN is not -throttled. See this post. -- If your "Peer type of connection" includes one of the LAN options but -you can only access Unraid, go to Settings -> Network Settings and see -whether "Enable bridging" is yes.  If bridging is disabled, you will not -be able to access your LAN over WireGuard.
    • If you are connecting from another network over the Internet, be -sure that the networks on both sides use different subnets. You -can't connect two networks that both use 192.168.1.0/24, for -instance.
    • If you can connect from some locations but not others, keep in mind -that the "broken" remote locations may have a firewall that blocks -UDP traffic. Hopefully, WireGuard will support TCP in the future, -but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm -that the "Local tunnel network pool" is not already in use on your -network or on one of the networks you are connecting to. If there is -a conflict you will need to change it to a different private network -(10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | -192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webgui for some reason and you need -to prevent a WireGuard tunnel from automatically starting, delete -this file from your flash drive and reboot:

    /boot/config/wireguard/autostart

    • Note that if you have Dockers with custom IPs or VMs with strict -networking requirements, you will likely have issues. Please see the -"Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection -from an Unraid server to a commercial VPN provider. If you are trying to -access your Unraid network from a remote location, see the section on -making inbound connections. There is a forum -thread -discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. A few are listed -below but this is not intended to be an exhaustive list. No endorsement -is implied, you need to research and determine which one meets your -needs.

    Note that with the current state of WireGuard, VPN providers cannot -guarantee the same amount of privacy as they can with OpenVPN. See -here for more detail. -Typically the objections are not around security, but around the fact -that it is harder for them to guarantee that they cannot track you.

    Configuring VPN tunneled access
    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" -button and select the file on your hard drive. This will create a -new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. -Click Apply.
    • Note: You do not need to forward any ports through your router for -this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN -tunnel.
      • In the future it may be possible to restrict it so that only -specific Dockers use the VPN tunnel. Until then, you may need to -disable the tunnel in order to check for plugin updates or -perform other Unraid administrative tasks.
      • Note that currently, Unraid will ignore any DNS server that is -specified in the downloaded config file. Unraid's DNS should be -set to something that will work whether the tunnel is up or -down, such as 8.8.8.8 and 8.8.4.4
    Testing the tunnel
    • Using Community Applications, install a browser such as the -jlesage/Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should -see that your IP address is in the country you selected when you -signed up with the provider

    Support

    WireGuard is a new feature in Unraid so the forum is the place to -ask questions and get the most up-to-date information on using -WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - +

    Security

    An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.

    The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are safe.

    There is also a forum thread that discusses this topic.

    + + \ No newline at end of file diff --git a/unraid-os/manual/security/secure-webgui-ssl/index.html b/unraid-os/manual/security/secure-webgui-ssl/index.html new file mode 100644 index 000000000..8ec694209 --- /dev/null +++ b/unraid-os/manual/security/secure-webgui-ssl/index.html @@ -0,0 +1,22 @@ + + + + + +Securing webGUI connections (SSL) | Unraid Docs + + + + + + + + + + +
    +

    Securing webGUI connections (SSL)

    As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.

    SSL parameters

    When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server.

    ParameterDescription
    servernameCan be changed in Settings > Identification. The default value is tower.
    localTLDCan be changed in Settings > Management Access. Default value is local.
    Use SSL/TLSCan be changed in Settings > Management Access. Default value is No.
    HTTP portCan be changed in Settings > Management Access. Default value is 80. If you change this, add :[HTTP port] to any of the HTTP URLs in the scenarios below. (example: http://tower.local:8080)
    HTTPS portCan be changed in Settings > Management Access page. It defaults to "443". If you change this, add :[HTTPS port] to any of the HTTPS URLs in the scenarios below. (example: https://tower.local:3443)
    certificateRefers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)
    lan-ipThis is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)
    wan-ipThis is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)
    hashThis is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued

    How to access the Unraid server webGUI on your LAN

    HTTP-only

    With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to No.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution.
    4. Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    5. Select Apply.

    HTTPS with self-signed certificate

    With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to Yes.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution
    4. Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    5. Select Apply.
    info

    When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.


    HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable

    You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down.

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate).
    3. Leave Use SSL/TLS set to either No or Yes.
    4. Press Provision.
    5. Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    6. Your primary URLs when Use SSL/TLS set to Yes. Note that these URLs use a self-signed certificate.
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    7. Your alternate URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the Unraid Connect plugin it will also be shown on the Connect dashboard.

    HTTPS with Myunraid.net certificate and with no fallback URL

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the use_ssl command mentioned below).
    3. Press Provision.
    4. If DNS Rebinding is not an issue, the Strict option for Use SSL/TLS will be available.
    5. Set Use SSL/TLS to Strict (or Auto in earlier versions of Unraid).
    6. Your URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the optional Unraid Connect plugin it will also be shown on the Connect dashboard.
    caution

    If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:

    • Type use_ssl no to access the webGUI via http://[servername].[localTLD] or http://[ipaddress].
    • Type use_ssl yes to access the webGUI via https://[servername].[localTLD] or https://[ipaddress] using a self-signed certificate (See HTTPS with a self-signed certificate above).
    • Once DNS resolution is available again, change Use SSL/TLS back to Strict.

    Redirects

    When you access http://[ipaddress] or http://[servername].[localTLD], the behavior will change depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to https://[lan-ip].[hash].myunraid.net However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under HTTPS with Myunraid.net certificate - with no fallback URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to https://[ipaddress] or https://[servername].[localTLD] as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the HTTP URL will load directly.
    tip

    For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.


    Unraid Connect remote access

    Looking for setup instructions for Unraid Connect remote access? See our dedicated page.


    Custom certificates

    HTTPS with custom certificate - with option to have Unraid Connect Remote Access

    1. Navigate to the Settings > Management Access page.
    2. Set Use SSL/TLS to Yes.
    3. Set the LocalTLD to the domain name used in the "Subject" of the certificate.
    4. Your URL will be https://[servername].[localTLD] (example: https://tower.mydomain.com). You are responsible for managing DNS for this URL.
    5. You are responsible for managing the certificate. Upload it to /boot/config/ssl/certs/[servername]_unraid_bundle.pem.
    6. The certificate must be valid for [servername].[localTLD] (example: tower.mydomain.com). For a wildcard cert it must be *.[localTLD] (example: *.mydomain.com). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server's URL is not specified in the certificate.
    7. As an option, use Unraid Connect Remote Access.
    + + + + \ No newline at end of file diff --git a/unraid-os/manual/security/vpn/index.html b/unraid-os/manual/security/vpn/index.html new file mode 100644 index 000000000..aeb1c154f --- /dev/null +++ b/unraid-os/manual/security/vpn/index.html @@ -0,0 +1,27 @@ + + + + + +VPN | Unraid Docs + + + + + + + + + + +
    +

    VPN

    caution

    Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.

    If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections.

    In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in this wiki article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.

    There are a wide variety of VPN solutions available both free and commercial.

    Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN.

    Router

    Many modern routers have a VPN server built-in as standard (typically based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the SpaceInvaderOne YouTube video of use in setting it up.

    WireGuard

    Overview

    Wireguard logo

    Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN.
    • The interface is available under Settings > VPN Manager.

    More information about WireGuard can be found on the WireGuard website.

    What can you do with WireGuard? Let's walk through each of the connection types:

    • Remote access to server: Use your phone or computer to remotely access your Unraid server, including:
      • Unraid administration via the webGUI
      • Access Docker containers, VMs, and network shares as though you were physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", allowing you to access your entire LAN as well.
    • Server to server access: Allows two Unraid servers to connect to each other.
    • LAN to LAN access: Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.
    • Server hub & spoke access: Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.
    • LAN hub & spoke access: Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.
    • VPN tunneled access: Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider.
    • Remote tunneled access: Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.

    The following diagram attempts to show these different connection types in a graphical format

    Connection Types

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network.

    Implementation considerations

    • Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren't around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.
    • This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the Complex Networks section.
    • Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this 2 minute video from SpaceInvaderOne.
    • If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port.
    • You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at WireGuard clients. Android or iOS make good first client systems because you can get all the details via QR code.

    Setting up the Unraid side of the VPN tunnel

    • If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -> Management Access and confirm "Use UPnP" is set to Yes
    • On Unraid go to Settings > VPN Manager

    Initial setup screen

    • Give the VPN Tunnel a name, for example MyHome VPN.
    • Select Generate Keypair. This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this).
    • By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network.
    • Select Apply.
    • If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:

    UPnP available

    • If you see a note that says "configure your router for port forwarding..." you will need to login to your router and setup the port forward as directed by the note:

    UPnP not available

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".
    • Note that after Apply, the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.

    Key icon

    • Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.

    Activate switch

    Defining a Peer (client)

    1. Select Add Peer. +Add Peer
    2. Give it a name, such as MyAndroid.
    3. For the initial connection type, choose Remote access to LAN. This will give your device access to Unraid and other items on your network.
    4. Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)
    5. For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.
    6. Click Apply.
    info

    Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.

    caution

    It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.

    Configuring a Peer (client)

    • Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.

    Peer area - Eye icon

    Peer details popup

    • If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.
    • If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.

    About DNS

    Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net.

    Short names such as "tower" probably won't work, nor any DNS entries managed by the router.

    To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don't forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8

    This is particularly important for "Remote tunneled access" mode if the client's original DNS server is no longer accessible after all traffic is routed through the tunnel.

    Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection.

    Complex Networks

    The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:

    • In the WireGuard tunnel config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:
      • Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)
      • Gateway / Next Hop: IP address of your Unraid system
      • Distance: 1 (your router may not have this option)
      • If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"
    • Navigate to Settings > Docker Settings and set Host access to custom networks to Enabled

    Configurations to avoid

    There are some configurations you'll want to avoid, here is how a few key settings interact:

    • With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (this is the "simple network" setup assumed by the guide above)
    • With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this config)
    • With "Use NAT" = No and no static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this, if "Use NAT" = No, you really need to add a static route in your router)
    • With "Use NAT" = No and "Host access to custom networks" = disabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (You've come this far, just set "Host access to custom networks" to enabled you're set)
    • With "Use NAT" = No and "Host access to custom networks" = enabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - accessible!
      • (woohoo! the recommended setup for complex networks)

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner.

    If you can't connect, it will mainly be an exercise in double-checking your work:

    • Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.
    • Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config.
    • Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    • For your first client, setup a phone using its data connection (not wifi). This eliminates issues related to the client network, and the QR code is the easiest way to transfer settings. Once you have it working from your phone, move on to other clients.
    • If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection.
    • Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.
    • If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance.
    • If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.
    • If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | 192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot: +/boot/config/wireguard/autostart
    • Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on +making inbound connections. There is a forum thread discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs.

    Note that any provider that requires a custom WireGuard client will not work with Unraid.

    Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see here for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you.

    Configuring “VPN tunneled access for Docker”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • The “Peer type of access” will default to “VPN tunneled access for docker”. There are no settings to change, except perhaps to give it a local name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers
    • Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a "DNS" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.
    Testing the Docker tunnel
    info

    The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.

    Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel before the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.

    • Using Community Applications, install a Firefox Docker container
    • When setting up the container, set the “Network Type” to “Custom: wg2” (or whatever the name of the tunnel was in the previous step)
    • Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.: +--dns=8.8.8.8 +(if you don't set this, the container may leak your ISP's DNS server)
    • The rest of the defaults should be fine, apply the changes and start the container
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider
    • Also visit https://www.dnsleaktest.com/ and run a test, confirm that it only finds IPs related to the DNS provider you specified.
    • Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.

    Configuring “VPN tunneled access for system”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN tunnel.
      • You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks.
      • Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled.
      • Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4
    Testing the System tunnel
    • Using Community Applications, install a Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider

    Support

    The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/shares/create-a-share/index.html b/unraid-os/manual/shares/create-a-share/index.html new file mode 100644 index 000000000..c35dfa018 --- /dev/null +++ b/unraid-os/manual/shares/create-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Create a new share | Unraid Docs + + + + + + + + + + +
    +

    Create a new share

    When you create a new share, plan ahead.

    1. On the Shares tab select Add Share.

    2. Enter a name for your share in Share name

      Share names

      The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so media, Media, and MEDIA would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be.

    3. (Optional) Enter a description for the share in the Comments field. This is visible when viewed over the network.

    4. Set a Minimum free space value, in kilobytes, if you plan to use the setting, otherwise leave it empty.

    5. Select the Primary storage for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.

    6. Select the Allocation method: high-water, fill-up, or most-free, depending on your use case. You can read about the differences here.

    7. Select the Split level method for your data. You can find more information split level, here.

    8. In Included disks choose which disks will be available to the share. By default, all disks will be included.

    9. In Excluded disks choose which disks will not be available to the share. Note that if you configure Included disks there is no need to configure Excluded disks.

    10. Select a Secondary storage if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to None.

    11. (Optional) If you configure a primary and secondary storage, then Mover action option becomes active. This sets the direction of file transfers between Primary and Secondary storage.

    12. Select Add share to complete the creation.

    info

    Note that, by default, a new share will not be shared over the network. You must configure network access after the share is created.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/shares/delete-a-share/index.html b/unraid-os/manual/shares/delete-a-share/index.html new file mode 100644 index 000000000..f17c178cb --- /dev/null +++ b/unraid-os/manual/shares/delete-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Delete a share | Unraid Docs + + + + + + + + + + +
    +

    Delete a share

    To delete a share on your Unraid server the share must contain no data.

    Delete an empty share

    1. Go to Shares.
    2. Select the share you want to delete.
    3. Select the Delete checkbox. The Apply button switches to a Delete button.
    4. Select the Delete button.
    5. The system confirms the share has been deleted. Select Done.

    Delete a share that contains data

    1. Go to Apps.
    2. Install a file management plugin from Community, such as Dynamix File Manager.
    3. Go to Shares.
    4. Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive.
    5. If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion.
    6. Delete the data or move it to another share on the server.
    7. Return to Shares.
    8. Select the share you want to delete. This will open the share settings. If no data is left in the share, a Delete checkbox is available.
    9. Select the Delete checkbox. The Apply button switches to a Delete button.
    10. Select the Delete button.
    11. The system confirms the share has been deleted.
    12. Select Done to return to Shares
    tip

    Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/shares/disk-shares/index.html b/unraid-os/manual/shares/disk-shares/index.html new file mode 100644 index 000000000..c240d36e4 --- /dev/null +++ b/unraid-os/manual/shares/disk-shares/index.html @@ -0,0 +1,22 @@ + + + + + +Disk shares | Unraid Docs + + + + + + + + + + +
    +

    Disk shares

    tip

    Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.

    Overview

    Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a Disk Shares section on the Shares tab. If you create a disk share, you should modify the user access permissions to restrict network user access.

    When viewed at the Linux level, the physical devices or pools will appear directly under /mnt with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled.

    Examples of such names are:

    • /mnt/diskX: - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be diskX.
    • /mnt/pool-name: - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be pool-name.
    caution

    The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the Main tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at /boot.

    Due to the nature of the Unraid boot device, we recommend you maintain your shares in Private mode, with read/write access given to trusted users.

    Disk share constraints

    If you have both disk shares and user shares enabled in Global Share Settings, then there is an important restriction that you must observe to avoid potential data loss.

    You must never copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, cp /mnt/user/share/file /mnt/disk1/share/file.

    At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost.

    There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an Unassigned Disk.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/shares/index.html b/unraid-os/manual/shares/index.html index dec6fd576..d6f5d54c8 100644 --- a/unraid-os/manual/shares/index.html +++ b/unraid-os/manual/shares/index.html @@ -1,495 +1,22 @@ - + -Shares | Unraid Docs +Shares | Unraid Docs - - - + + +
    -

    Shares

    Once you have assigned some devices to Unraid and started the array, you -can create shares to simplify how you store data across multiple disks -in the array. Unraid will automatically create a handful of shares for -you that it needs to support common plugins, containers, and virtual -machines, but you can also create your own shares for storing other -types of data. Unraid supports 2 types of share:

    • User Shares
    • Disk Shares

    You can control which of these types of shares are to be used under -Settings->Global Share Settings. The default on Unraid is to have User -Shares enabled but Disk Shares disabled.

    It is sometimes important to realize that these are two different views -of the same underlying file system. Every file/folder that appears -under a User Share will also appear under the Disk Share for the -physical drive that is storing the file/folder.

    User Shares

    User Shares can be enabled/disabled via Settings->Global Share -Settings.

    From the Shares tab, you can either create a new share or edit -an existing share. Click the Help icon in the top-right of the -Unraid webGui when configuring shares for more information on the -settings available._

    User Shares are implemented by using Linux Fuse file system support. -What they do is provide an aggregated view of all top level folders of -the same name across the cache and the array drives. The name of this -top level folder is used as the share name. From a user perspective this -gives a view that can span multiple drives when viewed at the network -level. Note that no individual file will span multiple drives - it is -just the directory level that is given a unified view.

    When viewed at the Linux level then User Shares will appear under the -path /mnt/user. This includes the files on the main array and also -any for the share on any pool. It is important to note that a User Share -is just a logical view imposed on top of the underlying physical file -system so you can see the same files if you look at the physical level -(as described below for Disk Shares).

    • Current releases of Unraid also include the mount point -/mnt/user0 that shows the files in User Shares OMITTING any -files for a share that are on any pool. This is just a different -view of the files on your server. However This mount point is now -deprecated and may stop being available in a future Unraid release.

    Normally one creates User Shares using the Shares tab. However if you -manually create a top level folder on any drive the system will -automatically consider this to be a user Share and give it default -settings.

    Which physical drive in the main array is used to store a physical file -is controlled by a number of settings for the share:

    • Allocation method: This has various options:

      • Most Free: This option means that new files should go to the -disk with the most free space. It has the downside that one is -continually switching drives which keeps the drive involved spun -up.

      • Fill Up: This option means simply fill up drives in disk -order until the free space falls below the Minimum Free Space -setting, and when that happens move onto the next disk. Many -users like this setting because their content is static in -nature to they find this a simple way to manage their storage.

      • High Water: (default) This option attempts to provide a -compromise between continually switching drives as is caused by -the Most Free setting and filling up disks in a sensible -manner, but not fill each drive to capacity before using the -next one. The aim is to allow related files do be kept together -on the same drive and to let unused drives be spun down.

        • It works with switch points based by continually halving the -size of the largest drive in the array.
        • Many people find this confusing (particularly in an array with -drives of varying size). so as an example if you had an array -consisting of drives of 8TB, 3Tb and 2TB
          • The largest drive is 8TB so the switch points are 4TB, 2TB, -1Tb etc.
          • The 4TB switch point is active so The 8TB Drive one would be -filled to 4TB free space left.
          • The 2TB switch point becomes active so the 8TB and 3TB -drives each gets used in disk order until it they have 2TB -free space
          • The 1TB switch point becomes active so each drive now gets -used in disk order until it only has 1TB free space.
          • etc
    • Included or excluded drives: These settings allow you to -control which array drives can hold files for the share. Never set -both values, set only the one that is most convenient for you. If no -drives are specified under these settings then all drives allowed -under Settings >> Global Share settings are allowed.

    • Split level: This setting controls how files should be grouped.

    Important: in the event of there being contentions between the -Minimum free space, Split Level and the Allocation -method settings in deciding which would be an appropriate drive to -use the Split level setting always wins. This means that you can -get an out-of-space error even though there is plenty of space on -other array drives that the share can logically use.

    Changing any of these settings for a share only affects where any new -files are put. Any files already present in the share are left where -they are located when a setting is changed. It takes Manual action to -move existing files.

    Important: The Linux file systems used by Unraid are case sensitive -while the SMB share system is not. As an example this means that a -folder at the Linux level a folder called 'media' is different to one -called 'Media'. However at the network level case is ignored so for -example 'media', Media', 'MEDIA' would all be the same share. -However to take this example further you would only get the content of -one of the underlying 'media' or 'Media' folders to appear at the -network share level - and it can be non-obvious which one this would be.

    The following sections proved more detail on how these settings work:

    Allocation method

    When a new User share is created, or when any object (file or directory) -is created within a User share, the system must determine which data -disk the User share or object will be created on. In general, a new User -share, or object within a User share, will be created on the data disk -with the most free space. However there are a set of share configuration -parameters available to fine tune disk allocation.

    The basic allocation strategy for a share is defined by the Allocation -method configuration parameter. You may select one of three allocation -methods for the system to use.

    High Water

    The high water allocation method attempts to step fill each disk so at -the end of each step there is an equal free space left on each disk. The -idea is to progressively fill each disk but not constantly go back and -forth between disks each time new data is written to the array. Most -times, only a single disk will be needed when writing a series of files -to the array so the array will only spin-up the needed disk. The high -water level is initially set equal to one-half of the size of the -largest disk. A new high water level is again set to one-half of the -previous high level once all the disks have less free space than the -current high water level.

    The above example shows what will occur when there is a mix of 4 disks -varying is size from 500gig to 2T in size.

    First Pass - The high water level is set to one-half of the size of the -2T drive or 1T. Each disk will be filled until it has <1T of free space -remaining. This means no data is stored on disk1 or disk2 since both -already have <1T of free space. 500gig of data will be stored on disk3 -followed by 1T of data being stored on disk4.

    Second Pass - The high water level is reset to one-half of the previous -level or 500gig. Each disk will be filled until it has <500gig of free -space remaining. This means no data is stored on disk1 since it already -has <500gig of free space. 500gig of data will be stored on disk2 and -then 500gig of data will be stored on disk3 and finally 500gig of data -will be stored on disk4.

    Third Pass - The high water level is again reset to one-half of the -previous level or 250gig. Each disk will be filled until it has <250gig -of free space remaining. 250gig of data will be stored on disk1 and then -250gig of data will be stored on disk2 and then 250gig of data will be -stored on disk3 and finally 250gig of data will be stored on disk4. An -interesting note is that the 500gig disk does not get used at all until -the third pass. Don't be concerned if the smaller sized disks don't -immediately get used with this method.

    This pattern will continue with progressively smaller high water levels -until the disks are full.

    Most Free

    The most free allocation method simply picks the disk with the most free -space and writes the data to that disk. Each time a file is written -Unraid will check the free space on the disks and pick the one with the -most free space.

    Fill-Up

    The fill-up allocation method simply attempts to fill each disk in order -from the lowest numbered disk to the highest numbered disk. The fill-up -allocation method must be used in conjunction with the minimum free -space setting. Otherwise, Unraid will begin to give disk full errors and -not allow any more transfers once the first disk gets close to being -full.

    Min. Free Space

    The minimum free space setting is used with the allocation method and -split level. The Minimum Free space setting doesn't control how much -space is kept free, but instead it controls how much space must be free -for a drive to be chosen for a new file. The minimum free space setting -therefore tells Unraid to stop putting new content onto the disk when -the free space falls below the level you set (as long as the Split Level -setting indicates it can be split to a new disk). This must be used with -the fill-up allocation method or disk full errors will occur when there -is not enough space to fit a file you are trying to write to the array.

    First a brief explanation of how Unraid will typically receive a file. -Unraid typically receives data in this manner. First, Unraid receives -the request to store a file, named for example "file.eg". At this -time, Unraid has no idea how big "file.eg" is so Unraid will pick a -spot to place "file.eg" and begin to store the file data as the data -is transferred over the network. Now, this is important because Unraid -may pick a storage disk that does not have enough space to store the -complete "file.eg". Unraid doesn't know there is not enough space -when it first places the file so Unraid will only find out the disk -doesn't have enough space when the disk is full. At this point, the -transfer will fail with a disk full error.

    So, Unraid will write to a different disk if the minimum free space is -set to a value larger than the biggest file size you will ever transfer. -The recommended setting is 2 times the largest file size you will ever -transfer. For example, if the largest file you have is 8gig in size then -set the minimum free space to 16gig. This allows you to transfer files -that may vary in size somewhat and not accidentally transfer one too -large. The minimum free space is set in kilo-bytes.

    Here are some examples of the minimum free space setting;


    Free SpaceValue
    500 meg500000
    20 gig20000000
    40 gig40000000

    Note that unRAID will still place files on the disk if the split level -does not allow the files to be placed on another disk with more free -space.

    Also note that Unraid will typically not move a file onto a new disk if -you're over-writing or updating it. For example, a backup file that -grows in size over time could end up filling a disk and causing a disk -full error.

    IMPORTANT: There is also a Minimum Free Space setting for cache pools. -This is used to determine when a new file for a User Share with the Use -Cache setting having a value of Yes or Prefer should be written to the -cache or instead bypass the cache and go directly to the array. This -needs to be set if you want to avoid filling a cache pool which can -cause problems. As for this value when used with a User Share it -should be larger than the largest file you intend to write, and some -people like to make it significantly larger. You get to this setting by -clicking on a pool on the Main tab.

    Split level

    The split level setting tells Unraid how many folder levels are allowed -to be created on multiple disks. The split level can be used to ensure -that the contents of a folder are kept on the same disk. The split level -numbering starts with the user share being the top level and given the -number 1.

    IMPORTANT: in the event of there being contention between the -various settings for a share over which array drive to select for a file -the Split Level setting always takes precedence. This means the -Allocation Method and Minimum Free Space settings end up being -over-ridden. This can mean Unraid chooses a drive which does not have -enough space for the file so that an out-of-space error subsequently -occurs for the file.

    The Split level setting is one that many users find confusing to here -is a more detailed description of how it works.

    Here is an example showing a possible directory structure for a user -share called "Media".

    Note: I (the original author of this section) consider combining -media types into a single large share a poor way to store media. I use a -share for each media type. Movies is a share and TV shows is a share. I -combined the movies and TV shows to show the pitfalls in the split -levels when doing this as explained after the figure.

    Here is an explanation of the different split levels, referenced to the -folder structure above;

    1. Level 1
      • This is what you have if in the GUI you select the -"Automatically split only the top level directory as required" -option.
      • The top level Media share can be created on every disk.
      • Every other folder under the Media share must remain on a single -disk.
      • This setting does not allow the SD Movies, HD Movies, Kids -Movies or TV Shows folders to spread to multiple disks.
      • This setting is too low for all the media.
    2. Level 2
      • this is what you have if in the GUI you select the -"Automatically split only the top two directory levels as -required" option.
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder must remain on a single -disk.
      • This setting may work well. It will keep each movie and each TV -series together on a single disk.
      • This setting may give issues because it keeps each TV series on -a single disk. So, a disk may fill as new TV seasons are added -to a TV show which is on a disk which is close to full.
    3. Level 3
      • This is what you have if in the GUI you select "Automatically -split only the top three directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder must remain on a single disk.
      • This setting will allow the contents stored in each Movie Folder -to be spread out onto multiple disks.
      • This setting is too high for the different movie types.
    4. Level 4
      • This is what you have if in the GUI you select "Automatically -split only the top four directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder can be created on every disk.
      • This setting is too high because it will allow the contents of -every folder to be spread out onto multiple disks. The split -level is not being used to keep similar content together.

    The only valid split level for the above example is 2. This causes a -split level limitation which forces each complete TV series to a single -disk. This can force a new TV season to be placed on a disk which is -almost full and result in out of space errors once new episodes -completely fill the disk. The split level can't be increased to 3 -because each individual movie would not be contained to a single disk.

    The first way to fix this split level mismatch issue is to create -separate shares for the movies and the TV shows. This way, the movies -can be set to use a split level of 2 and the TV shows can use a split -level of 3.

    For Movies use a split level = 2. This allows the "SD Movies", "HD -Movies" and "Kids Movies" folders to be placed on every disk and it -keeps each individual movie folder on a single disk. This way, any -single movie folder and the contents of the movie folder will remain on -a single disk.

    For TV_Shows use a split level of either 1 or 2. A split level of 1 will -keep each TV series on a single disk and split level of 2 will keep each -season on a single disk. The split level of 2 means that the complete TV -series can be stored on multiple disks, however each individual season -of that TV series will be on a single disk.

    The second way to fix the issue is to add another folder level to the -movies, starting first with a Movies folder in the Media share and then -placing the different movie types below this.

    This user share structure must use split level = 3. SD Movies, HD -Movies, Kids Movies and each TV series can exist on multiple disks. This -structure means each TV season can be on a different disk. This has the -opposite issue compared to the first example. You can not use split -level 2 to force each complete TV series to remain on a single disk -without messing up the ability of the movies to split to every disk.

    Some things to keep in mind.

    • The above examples are to demonstrate the use of the split level. It -is not necessary to store your media sorted in the same format as -the above example illustrates. You may want to use a Movies share -and then just place a "Movie Name" folder for each movie directly -into the share without sorting the movies by type.

    • It is completely valid to force each complete TV series to stay on a -single disk. Just understand that a continuing TV series will keep -filling the disk where it is first placed. This may require manual -intervention to shift some TV series from an almost full disk to an -empty disk. Using the Most Free allocation method can help eliminate -the issue since a completely new TV series would be placed on the -disk with the most free space.

    • The above TV example applies to any similar share. It could apply to -a Pictures share where you store the pictures in folders based on -the year (2010, 2011, 2012 etc) or it could apply to a Music share -where you store the music in a folder for each artist. In these -cases, a split level of 1 would keep a whole year of pictures on a -single disk or it would keep all the music by an artist on a single -disk.

    Disable Split Level

    It is also possible to disable the split level by setting a high split -level. A file copy or move will fail if a folder is locked to a full -disk and an attempt is made to add more files into that folder. Setting -a high split level will ensure each file will get written to the server -as long as a disk has space for it.

    Split Level = 1 Example

    The following example demonstrates how the share behaves when the split -level is set to 1. The Share name is New_Movies. Each movie stored in -this share has its own folder. Inside the movie folder is the movie file -as well as some metadata files used by MediaBrowser.

    The above Windows Explorer screen shot shows the file structure of the -New_Movies share on the left and the contents of the A History of -Violence movie folder on the right. The levels for this share are -labeled on the example. This is what split level = 1 means:

    • A New_Movies folder can be created on each disk allowed by the -include and exclude disk settings. A new New_Movies folder will be -created on the next disk in line when the allocation method calls -for Unraid to begin filling the next disk. Note that the New_Movies -folder will only be created on the next disk in line when it is -necessary and not when the share is created.

    • The A History of Violence folder can only -exist on one disk. Once it is created on the disk, all of the -contents will remain on the same disk. Any changes or additions to -this folder will remain on the same disk. For example, a new file -called movie.nfo for the XBMC metadata might be created in this -folder in the future. The movie.nfo file will be created in the -existing A History of Violence folder. A duplicate A History of -Violence folder will not be created on another disk to store this new -file.

    You will notice that the movie folders (500) Days of Summer (2009) and -2 Fast 2 Furious (2003) both appear in the New_Movies share. The next -screen shot will show how each of these files is stored on a separate -disk.

    The above screen shot shows side by side Window Explorer views of the -file structure stored on disk1 and disk2. On the left is disk1 and on -the right is disk2. The left Explorer window shows the contents of -disk1. The New_Movies share is a folder stored at the top level or the -root of disk1 with the individual movie directories stored in this -directory. The right Explorer window shows the contents of disk2. The -New_Movies share is a folder stored at the top level or the root of -disk2 with the individual movie folders stored in this directory. As -files were being moved into the New_Movies share, Unraid created the -New_Movies folder on both disk1 and disk2 to store these files.

    The windows side by side can be used to examine the contents of the -New_Movies share on a disk by disk basis. You will notice that the movie -folder (500) Days of Summer (2009) is stored on disk1 and the movie -folder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted, -Unraid combines the movies stored on disk1 and disk2 into one network -share called New_Movies and both movies appear in the New_Movies network -share.

    Take note that a share called Movies is also visible on disk2.

    Split Level 0

    This is what you have if in the GUI you select "Manual: do not -Automatically split directories".

    Split level 0 is a special case. Split level 0 requires you to create -the desired top level or parent folder structure. Unraid will -unconditionally create an object on the disk that contains the parent -folders. Unraid will choose which disk to use according to the -allocation method if the parent folders exist on multiple disks.

    If you set the Split level to 0, then all directories/files created -under that share will be on the same disk where the directory within -that share share was originally created. In other words, use level 0 to -not allow the share to split automatically across disks

    NOTE: If you create the same folder structure on multiple disks then -Unraid will apply the other share settings to decide which disk to use.

    Example

    The server has 4 disks. A user share called Media is desired. Different -types of media will be stored in this share. The desired structure is;

    • disk1 - will hold the DVD movies.
    • disk2 - will hold the BluRay movies.
    • disk3 - will hold the BluRay movies.
    • disk4 - will hold the TV series.

    The desired structure is illustrated below.

    On the left side is how the user share will appear and on the right side -is the folder structure on each disk. The user will go to each disk and -create the folders shown in red to create the storage as listed above. -Then, the Media folder as well as the DVD Movies, BluRay Movies and TV -Shows folders become the parent folders for everything stored in the -Media share. The media will be sorted by disk as follows;

    • Movies placed in the DVD Movies folder will go to disk1.
    • Movies placed in the BluRay Movies folder will go to disk2 or disk3. -The disk is selected by the allocation method.
    • TV shows placed in the TV Shows folder will go to disk4.

    Say one day that disk1 is full and disk5 is added to the server to hold -new DVD Movies. The same folders on disk1 must be created on the new -disk5. In other words, the folder Media and sub-folder DVD Movies must -be created on disk5. Then, Unraid can use either disk1 or disk5 to store -DVD Movies.

    Split By Character

    Specify a character in the split level box to use this method. Then, -Unraid will not allow any folder name containing the character to split. -For example, set the split level to an opening square bracket ( [ ) -instead of a number. Then, create each movie folder with the year -encased in square brackets after the title in this manner - Iron Man 2 -[2010]. Unraid will see the opening square bracket ( [ ) and it will -not split this folder or any content stored inside this folder.

    This type of split level can allow different levels of sub-folders to be -specified as not splitting simply by inserting the character into the -folder name which should not split. This can overcome the limitation of -having a fixed split level for a share.

    Included and Excluded disk(s)

    The included disk(s) and excluded disk(s) parameters control which disks -are allowed to be used by each user share. These parameters can be used -separately or together to define the group of disks allowed for writing -files to each user share. The disks are entered by disk number with a -comma separating each disk, for example "disk2,disk5".

    Unraid will first check the included disks(s) set and then the Excluded -disk(s) set when deciding which disk to place a file on. Then, Unraid -will use the split level and allocation method to pick a disk which is -allowed to hold the file.

    Note: The Include/Exclude settings at the individual share level -only control which disks new files can be written to. Files on other -disks that are in a folder corresponding to the share name will still -show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are -candidates for allocation to that share. All disks may be used by the -user share when the Included disk(s) parameter is left blank. Specify -the disks to include here. For example, set the included disk(s) to -"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and -disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are -excluded from use by the user share. No disks are excluded from use by -the user share when the excluded disk(s) parameter is left blank. -Specify the disks to exclude here. For example, set the excluded disk(s) -to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If you have Docker or VMs enabled then a number of default shares are -set up to support their use. It is not mandated that you use these -shares (and the system will let you remove them if you do not want to -use them for their standard purpose) but it is recommended as it tends -to make it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata: this is the default location for storing working files -associated with docker containers. Typically there will be a -sub-folder for each docker container.
    • system: this is the default location for storing the docker -application binaries, and VM XML templates
    • domains: this is the default location for storing virtual disk -images (vdisks) that are used by VMs.
    • isos: this is the default location for storing CD iso images for -use with VMs.

    Unraid 6.12

    The Unraid 6.12 release has introduced some new terminology to make it -clearer to new users where files are initially placed and where they -will end up. The same functionality is present in earlier releases, but -has often been misunderstood by new users.

    Primary Storage

    This is the location to which new files will be written.

    If Primary storage is below the Minimum Free Space setting then new -files and folders will be created in Secondary storage, if configured

    For the Primary storage drop-down:

    • this option is mandatory. ie, Primary storage must be selected
    • any named pool can be selected
    • "Array" can be selected (meaning the Unraid array)

    Secondary Storage

    This is the location where files will be moved to if appropriate.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this -share i.e Secondary storage is optional
    • if Primary storage is a pool name, then the only options are -"none" and "Array"
    • if Primary storage is "Array", then only "none" appears as an -option

    Unraid 6.11 and earlier

    The following settings are only found in Unraid 6.11 and earlier. They -achieve the same functionality as the settings available in 6.12 but are -presented differently.

    Use Cache (and Mover Behavior with User Shares)

    Note: Starting with Unraid 6.9.0 multiple pools can exist and they -can have any name the user chooses. Any of these pools can act act as a -cache in the way Unraid uses the term. The word cache therefore is -referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called mover that is used in -conjunction with User Shares. It's behavior is controlled by the "Use -Cache for new files" setting under each User Share. The way these -different settings operate is as follows

    • Yes: Write new files to the cache as long as the free space on -the cache is above the Minimum free space value. If the free space -is below that then by-pass the cache and write the files directly to -the main array.

      When mover runs it will attempt to move files to the main array as -long as they are not currently open. Which array drive will get the -file is controlled by the combination of the Allocation method, -Split level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive -will get the file is controlled by the combination of the -Allocation method, Split level, and Minimum Free Space setting -for the share.

      When mover runs it will take no action on files for this share -even if there are files on the cache that logically belong to this -share.

    • Only: Write new files directly to the cache. If the free space -on the cache is below the Minimum free space setting for the cache -then the write will fail with an out-of-space error.

      When mover runs it will take no action on files for this share -even if there are files on the main array that logically belong to -this share.

    • Prefer: Write new files to the cache if the free space on the -cache is above the Minimum free space setting for the share, and -if the free space falls below that value then write the files to the -main array instead.

      When mover runs it will attempt to move any files for this share -that are on the main array back to the cache as long as the free -space on the cache is above the Minimum free space setting for the -cache

      It is the default setting for the appdata and System Shares that -are used to support the Docker and VM sub-systems. In typical use -you want the files/folders belonging to these shares to reside on -the cache as you get much better performance from Docker containers -and VMs if their files are not on the main array (due to the cost of -maintaining parity on the main array significantly slowing down -write operations).

      This setting works for a share even if you do not have (yet) a -physical cache drive(s) as then files will simply be written -directly to the array. If at a later date you add a cache drive -mover will now automatically try and move the files in any share set -to Prefer to the pool defined as the cache for the share to improve -performance. This is why it is the default for shares that are -typically located on the cache rather than Only as it caters for -those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where one wants -the files for a particular share initially written to a pool acting as a -cache to maximise write speed, but later you want it to be moved to the -main array for long term storage. Most of the time all that is required -is to set the Use Cache setting for the share to Yes and the default -behaviour handles the rest with no further user interaction.

    Sometimes for one reason or another users find that the files seem to be -'stuck' on a pool. The way to proceed in such a case to get the files -belonging to a share from a pool onto the main array is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved).
    • Change the Use Cache setting for the share to Yes
    • Manually run mover from the Main tab to get it to move Yes -type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use if you disabled them earlier.
    • (optional) change the Use Cache setting to Only to say files -for this share can never be written to the array.
    Moving Files from the Array to a Pool (cache)

    One typically wants files associated with running Docker containers or -VMs on a pool to maximise performance. It is not unusual for one reason -or another to find that one has files on the main array which you really -want to be on a pool. In particular this is likely to happen for the -appdata or system shares

    The way to proceed to get the files belonging to a share from the main -array onto a pool is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved)
    • Change the Use Cache setting for the share to Prefer
    • Manually run mover from the Main tab to get it to move -Prefer type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use.
    • (optional) change the Use Cache setting to No to say files for -this share can never be cached on a pool.

    Disk Shares

    These are shares that relate to individual array drives or pools within -the Unraid system and that are visible over the network. By default if -User Shares are enabled then Disk Shares are not enabled (see the -IMPORTANT section below for the reason why this is the case). If you -want the Disk Shares to be enabled then this is done under -Settings->Global Share Settings. The Disk Shares will then appear in -the Unraid GUI under a Disk Shares section on the Shares tab. You will -want to modify the user permissions to restrict network user access if -desired, just like User Shares.

    When viewed at the Linux level the physical devices or pools will appear -directly under /mnt with a name corresponding to the array drive or -pool. (This happens regardless of whether Disk Shares are enabled) . -Examples of such names are:

    /mnt/diskX: these are array drives where X corresponds to the disk -number that shows in the Unraid GUI. The corresponding Disk Share at the -network level would be diskX

    /mnt/pool-name: These are pools. A single pool can actually consist of -multiple drives but Unraid treats them as if they were one drive. The -commonest example of a pool-name is 'cache' but it can be any name -defined by the user. The corresponding Disk Share at the network level -would be pool-name.

    The Unraid flash device that is used to boot Unraid and store all user -settings is also a physical device, but is not normally considered to be -a Disk Share. If you want it visible on the network then you can click -on it in the Main tab and set it to appear at the network level as the -'flash' share. At the Linux level it is mounted at /boot

    IMPORTANT -If you have both Disk Shares and User Shares enabled then there -is an important restriction that you must observe if you want to -avoid potential data loss. What you must NEVER do is copy -between a User Share and a Disk Share in the same copy -operation where the folder name on the Disk Share corresponds to the -User Share name. This is because at the base system level Linux does -not understand User Shares and therefore that a file on a Disk -Share and a User Share can be different views of the same -file. If you mix the share types in the same copy command you can -end up trying to copy the file to itself which results in the file -being truncated to zero length and its content thus being lost.

    There is no problem if the copy is between shares of the same type, -or copying to/from a disk mounted as an Unassigned Device.

    There is another quirk of the interaction between Linux and the Unraid -User Share system that users can encounter if they are working at the -Disk Share level. The Linux command for Move is implemented by first -trying a rename on the file (which is fast) and only if that fails does -it do a copy then delete operation. This can mean that under some -circumstances when working locally on the server (e.g. from the command -line when you try to move files from one user share to another, Linux -will often simply rename the files so they have a different path on the -same disk, in violation of any user share settings such as included -disks. The workaround for this is to instead explicitly copy from source -to destination so that new files get created following the user share -settings, then deleting from the source.

    Network access

    You can control what protocols should be supported for accessing the -Unraid server across the network. Click on Settings->Network Services -to see the various options available.. These options are:

    • SMB: This the standard protocol used by Windows systems. It is -widely implemented on other systems.
    • NFS: Network File System. This is a protocol widely -used on Unix compatible systems.
    • AFP: Apple File Protocol. This is the protocol that -has historically been used on Apple Mac systems. It is now a -deprecated option as the latest versions of MacOS now use SMB as the -transferred protocol for accessing files and folders over the -network.
    • FTP: File Transfer Protocol.

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the visibility of the share on the -network for each of the protocols you have enabled. The setting is -labelled Export and has the following options:

    • Yes: With this setting the share will be visible across the -network.
    • Yes (Hidden): With this setting the share can be accessed across -the network but will not be listed when browsing the shares on the -server. Users can still access the share as long as they know the -name and the user is prepared to enter in manually.
    • No: With this option selected then it is not possible to access -the share across the network.

    Access Permissions

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the access rights of the share on the -network for each of the protocols you have enabled. The setting is -labelled Security and has the following options:

    • Public: All users have both read and write access to the -contents of the share
    • Secure: All users including guests have read access, you select -which of your users have write access
    • Private: You select which of your users have access and for each -user whether that user has read/write or read-only access.

    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares that many -users fall foul of:

    • This is the fact that Windows only allows a single username to -be used to connect to a specific server at any given time. All -attempts to then connect to a different share on the same server -that are not public shares put up a Username/Password prompt and -this fails as though you have entered an incorrect password for this -username. If you have any shares on the server set to Private or -Secure access it can therefore be important that you connect to -such a share first before any shares set for Public access which -may connect as a guest user and make subsequent attempts to connect -with a specific user fail.
    • A workaround that can help with avoiding this issue is the fact that -if you access a server both by it's network name and via it's IP -address then Windows will treat it a two separate servers as far as -authentication is concerned.
    - - +

    Shares

    tip

    Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.

    One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives.

    There are two types of shares in Unraid:

    It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder.

    When you first initialize your array, Unraid automatically creates a handful of user shares. These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data.

    You manage shares from the Shares tab in Unraid. You enable or disable shares in Settings > Global Share Settings, with user shares being enabled by default.

    + + \ No newline at end of file diff --git a/unraid-os/manual/shares/network-access/index.html b/unraid-os/manual/shares/network-access/index.html new file mode 100644 index 000000000..4c458c639 --- /dev/null +++ b/unraid-os/manual/shares/network-access/index.html @@ -0,0 +1,22 @@ + + + + + +Network access | Unraid Docs + + + + + + + + + + +
    +

    Network access

    Communication protocols

    For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:

    • SMB, or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X.
    • NFS, or Network File System, is a widely-used protocol on Unix-compatible systems.
    • FTP, or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.
    info

    As of Unraid 6.9, AFP support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in Settings > SMB set the Enhanced macOS interoperability parameter to Yes.

    Protocol selection

    Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases.

    For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer.

    Access permissions at share level

    Each protocol can be configured at the share level. On the Shares tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled Export and has the following options:

    • Yes - The share will be visible across the network.
    • Yes (Hidden) - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually.
    • No - This will disable network access through that protocol, for that share.

    Share security

    Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available.

    For example, you may configure a movies share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials.

    When you select an existing share on the Shares tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols you have enabled.

    The Security setting has the following options:

    • Public - The share is unsecured and all users have both read and write access to the contents of the share.
    • Secure - The share is secured and all users, including guests, have read access. You can select which of your users have write access.
    • Private - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.
    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails.

    If you have any shares on the server set to Private or Secure access, it is important that you connect to that share first, before any shares set for Public access.

    As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/shares/user-shares/index.html b/unraid-os/manual/shares/user-shares/index.html new file mode 100644 index 000000000..ed5dfe56a --- /dev/null +++ b/unraid-os/manual/shares/user-shares/index.html @@ -0,0 +1,27 @@ + + + + + +User shares | Unraid Docs + + + + + + + + + + +
    +

    User shares

    tip

    Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.

    Overview

    User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view.

    You manage User Shares from the Shares tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes.

    When viewed at the Linux level, user shares appear under the path /mnt/user. This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for Disk Shares.

    Note that current releases of Unraid also include the mount point /mnt/user0 that shows the files in User Shares omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release.

    The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the allocation method, included or excluded disks, and the split level.

    If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action.

    caution

    There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation.

    This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.

    Share settings

    tip

    When you configure the settings for the share, select the Help icon in the top-right of the Unraid webGUI for detailed information on the individual settings.

    Minimum free space

    The Minimum free space setting is used with the allocation method and split level. This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk).

    note

    This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.

    When Unraid receives a request to store a file, say for example file.eg, it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer.

    We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large.

    The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter 50GB. Note that new user shares will have a default 10% minimum free space assignment.

    Unraid will still place files on the disk if the split level does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error.

    caution

    There is also a Minimum Free Space setting for cache pools. This is used to determine if a new file for a user share, with the Use Cache setting of Yes or Prefer, should be written to the +cache or, instead, bypass the cache and go directly to the array.

    This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.

    Primary and Secondary storage (Unraid 6.12)

    The Primary storage parameter defines the location - Cache, Array, or any named pool - to which new files will be written for the selected share. The Secondary storage parameter sets the location where files will be moved to if there is not enough room in primary storage.

    When primary storage is below the Minimum Free Space value, new files and folders are created in secondary storage.

    note

    If you select an array or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.

    Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users.

    For the Primary storage drop-down:

    • This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of Cache
      • any named pool can be selected.
      • Array can be selected.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this share. Note that secondary storage is optional.
      • if Primary storage is a pool name, then the only options are None and Array.
      • if Primary storage is Array, then only None appears as an option.

    Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)

    The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently.

    INFO

    Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called Mover that is used in conjunction with user shares. It's behavior is controlled by the Use Cache for new files setting under each user share. The way these settings operate is as follows:

    • Yes: Write new files to the cache as long as the free space on the cache is above the Minimum free space value. If the free space is below that then bypass the cache and write the files directly to the main array.

      When Mover runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the Allocation Method, Split Level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive will get the file is controlled by the combination of the Allocation method, Split level, and Minimum Free Space setting for the share.

      When Mover runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.

    • Only: Write new files directly to the cache. If the free space on the cache is below the Minimum free space setting for the cache then the write will fail with an out-of-space error.

      When Mover runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.

    • Prefer: Write new files to the cache if the free space on the cache is above the Minimum free space setting for the share, and if the free space falls below that value then write the files to the main array instead.

      When Mover runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the Minimum free space setting for the cache

      It is the default setting for the appdata and system shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations.

      This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, Mover will automatically try and move the files in any share set to Prefer to the pool defined as the cache for the share. This is why Prefer is the default for shares that are located on the cache rather than Only as it caters to those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage.

    Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Cache -> Array.
    3. Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the pool (cache) to the array.
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Moving Files from the Array to a Pool (cache)

    You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the appdata or default system shares.

    The way to proceed to get the files belonging to a share from the main array onto a pool is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Array -> Cache.
    3. Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the array to the pool (cache).
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Allocation method

    When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user +share, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation.

    The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: High-water, Most-free, or Fill-up.

    High-water method

    The High-water setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level.

    Example

    If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass.

    • While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left.
    • When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space
    • Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.

    This pattern continues with progressively smaller high-water levels until the disks are full.

    Fill-up method

    The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free +space setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full.

    Most-free method

    The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the +most free space.

    Split level

    The Split level setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level +numbering starts with the user share being the top level and given the number 1.

    Automatically split any directory as required

    When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured Allocation method. If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory.

    Automatically split only the top level directory as required

    When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory.

    Automatically split only the top "N" level directories as required

    Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.

    Manual - do not automatically split directories

    When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists.

    info

    In the event of there being conflicts between the Minimum free space, Split Level and the Allocation method settings in deciding which would be an appropriate drive to use, the Split level setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.

    Included or excluded disks

    These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under Settings > Global Share settings are allowed.

    Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file.

    info

    The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If Docker or VMs are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container.
    • system - This is the default location for storing the docker application binaries, and VM XML templates
    • domains - This is the default location for storing virtual disk images (vdisks) that are used by VMs.
    • isos - This is the default location for storing CD ISO images for use with VMs.
    info

    We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the isos share that can be shared over the network so you can place new ISOs to use in virtual machines.

    + + + + \ No newline at end of file diff --git a/unraid-os/manual/storage-management/index.html b/unraid-os/manual/storage-management/index.html index 4d1030af6..e2a9d04db 100644 --- a/unraid-os/manual/storage-management/index.html +++ b/unraid-os/manual/storage-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Storage Management

    To assign devices to +

    Storage Management

    To assign devices to the array and/or cache, first login to the server's webGui. Click on the Main tab and select the devices to assign to slots for parity, data, and cache disks. Assigning devices to Unraid is easy! Just @@ -920,7 +920,7 @@ parity system is file system agnostic as it works at the physical sector level and is not even aware of the file system that is in use on any particular drive.

    In addition drives can be -encrypted. A point to +encrypted. A point to note about using encryption is that if you get any sort of file system corruption then encryption can make it harder (and sometimes impossible to recover data on the corrupted file system.

    If using a cache pool (i.e multiple drives) then the supported types are @@ -1412,8 +1412,8 @@ using the BTRFS file system.

    BTRFS supports a variety of RAID profiles and these will perform more like a traditional RAID system giving much higher throughput than the main Unraid array.

    Recovery after drive failure tends to be harder and more prone to lead -to data loss which is one disadvantage of using pools for everything.

    - - +to data loss which is one disadvantage of using pools for everything.

    + + \ No newline at end of file diff --git a/unraid-os/manual/tools/index.html b/unraid-os/manual/tools/index.html index f2bb08926..5a0b35534 100644 --- a/unraid-os/manual/tools/index.html +++ b/unraid-os/manual/tools/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools +

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools to help with managing an Unraid server on a day-to-day basis. The list of tools available is often extended by 3rd party supplied plugins.

    Unraid Standard Tools

    This section covers tools that are supplied as standard with an Unraid installation. They are grouped into a number of sections for ease of @@ -68,8 +68,8 @@ application's appdata config files without utilizing the command prompt)

    Docker Safe New Perms

    This is part of the Fix Common Problems plugin.

    It differs from the standard Unraid New Permissions tool in that it will never change permissions on the appdata folder/share that is normally -used to store working files for docker containers.

    About

    Update Assistant

    - - +used to store working files for docker containers.

    About

    Update Assistant

    + + \ No newline at end of file diff --git a/unraid-os/manual/troubleshooting/index.html b/unraid-os/manual/troubleshooting/index.html index 543fd500c..ebe98b1ad 100644 --- a/unraid-os/manual/troubleshooting/index.html +++ b/unraid-os/manual/troubleshooting/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This +

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This section is intended to help with resolving issues that are most commonly encountered.

    There are some important general guidelines that it is recommended that a user follows that will help with any troubleshooting that may be @@ -134,7 +134,7 @@ do so to provide the logs captured by the syslog server as these are not included in the standard system diagnostics.

    Docker Containers

    The standard system diagnostics do not contain much that will help with diagnosing issues with specific docker containers.

    MORE DETAIL NEEDED

    VMs

    The standard system diagnostics do not contain much that will help with -diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting +diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting Started section of the documentation.

    If for any reason you decide that you need to redo the flash drive then it is a good idea to make sure you first backup the current flash drive @@ -600,7 +600,7 @@ User Share will never appear to be on the same mount point so a copy + delete is done automatically.

  • Make sure the mount points for source and target appear to be different at the Linux level.
  • Move between physical drives rather than at the User Share level.
  • - - + + \ No newline at end of file diff --git a/unraid-os/manual/upgrade-instructions/index.html b/unraid-os/manual/upgrade-instructions/index.html index c21d6d841..ee6075869 100644 --- a/unraid-os/manual/upgrade-instructions/index.html +++ b/unraid-os/manual/upgrade-instructions/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your +

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your USB flash device. You can do this by copying the entire contents of the "flash" share to a separate computer.

    From version 6.4 or higher

    1. Boot your server up and login to the web interface
    2. Click the Tools tab
    3. Click "Update OS" under the About section
    4. Click "Check for Updates" to see if a new release is available
    5. Click "Update" to apply the update
    6. Once the upgrade is complete, reboot your server for it to take effect

    Note: You can optionally install releases from the "Next" branch as @@ -100,7 +100,7 @@ earlier.

    From version 5.x or earlier

    Please see this forum post for information on upgrading.

    Manual Upgrade or Downgrade

    This is useful if you don't have access to the Unraid webgui for some reason.

    Manual upgrade using a network share or by putting the flash drive in another system

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Unzip that file locally
    • Access the 'flash' share on the server, or physically put the flash drive in the local computer
    • If the previous directory does not exist on the flash drive, create it
    • Move (not copy) bz* and changes.txt from the root of the flash drive to the previous directory, overwriting files as needed
    • Copy bz* and changes.txt from the unzipped file to the root of the flash drive
    • Reboot the server

    Manual upgrade from the Unraid command line

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Login to the Unraid server using SSH, telnet, or a local keyboard/mouse
    • Type these commands one line at a time and press enter. If there are errors along the way, stop and ask for help:
    cd /tmp
    rm -f unraid.zip
    rm -rf unraid_install
    wget -O unraid.zip <paste the URL from above>
    [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP the file was not downloaded"
    unzip -d unraid_install unraid.zip
    [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP the file was not extracted properly"
    [[ ! -d /boot/previous ]] && mkdir /boot/previous
    mv /boot/bz* /boot/previous
    mv /boot/changes.txt /boot/previous
    cp unraid_install/bz* /boot
    cp unraid_install/changes.txt /boot
    sync -f /boot
    sleep 5
    reboot
    - - + + \ No newline at end of file diff --git a/unraid-os/manual/users/index.html b/unraid-os/manual/users/index.html index a56fd31ed..eaaf2a7cd 100644 --- a/unraid-os/manual/users/index.html +++ b/unraid-os/manual/users/index.html @@ -9,16 +9,16 @@ - - - + + +
    -

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does +

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does not support the standard set of user facilities available on most Linux systems. Instead the users defined in Unraid can be divided into:

    • Admin user:
    • Share permissions Users:
    • Other Users:

    Admin User (root)

    Share permissions Users

    Other Users

    - - + + \ No newline at end of file diff --git a/unraid-os/manual/vm-management/index.html b/unraid-os/manual/vm-management/index.html index 13588634d..9ae8fdd9e 100644 --- a/unraid-os/manual/vm-management/index.html +++ b/unraid-os/manual/vm-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running +

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running Linux-based applications such as media servers, backup software, and file sharing solutions, virtual machines add support for non-Linux workloads and the ability to utilize devices that the host cannot (think @@ -382,7 +382,7 @@ file to install the QEMU guest agent.

  • Shut down your VM.
  • Step 6: Remove the temporary vdisk and start the VM

    1. Click to edit the VM using the form-based editor (the pencil symbol)
    2. Remove the secondary vdisk
    3. Ensure the primary vdisk is pointing to your original vdisk file (it may be pointing to the secondary vdisk, and if so, update it to point to your actual vdisk)
    4. When completed, click Update
    5. Start your VM
    6. Verify your device manager shows no warnings
    7. DONE!
    - - + + \ No newline at end of file diff --git a/unraid-os/manual/vm-support/index.html b/unraid-os/manual/vm-support/index.html index 32c2a9c4e..f65a91690 100644 --- a/unraid-os/manual/vm-support/index.html +++ b/unraid-os/manual/vm-support/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    VM Support

    Overview

    Unraid 6 currently supports the virtualization of nearly any 64-bit +

    - - + + \ No newline at end of file diff --git a/unraid-os/manual/what-is-unraid/index.html b/unraid-os/manual/what-is-unraid/index.html index 0980855c1..fa289c204 100644 --- a/unraid-os/manual/what-is-unraid/index.html +++ b/unraid-os/manual/what-is-unraid/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you +

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you with the ultimate control over your hardware. In addition to performing the duties of a robust NAS (network-attached storage), Unraid is also capable of acting as an application server and virtual machine host. @@ -208,8 +208,8 @@ transfer files from the cache to the array.

  • Docker Containers. Manage application controls from a single pane of glass. Add applications with minimal effort using community-provided templates.
  • Virtual Machines. Choose between pre-created virtual machine -images or create your own custom VM from scratch.
  • - - +images or create your own custom VM from scratch.
    + + \ No newline at end of file diff --git a/unraid-os/manual/zfs/placeholder/index.html b/unraid-os/manual/zfs/placeholder/index.html index b1a73aae8..388b5c43d 100644 --- a/unraid-os/manual/zfs/placeholder/index.html +++ b/unraid-os/manual/zfs/placeholder/index.html @@ -9,14 +9,14 @@ - - - + + + - - +
    + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.10.0/index.html b/unraid-os/release-notes/6.10.0/index.html index eac2b317a..a0e84b253 100644 --- a/unraid-os/release-notes/6.10.0/index.html +++ b/unraid-os/release-notes/6.10.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -80,7 +80,7 @@ daemon, we recommend setting up either a static DHCP lease, or assigning a static IP address for your server.  Finally, we have set up nginx such that the URL's:

    • http://<server-name>.<local-tld>/

    or

    • https://<server-name>.<local-tld>/

    will redirect to https://[lan-ip].[hash].myunraid.net

    More information including use cases may be found in Documentation -here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been +here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been compiled with OpenGL support, and ARM emulation (experimental).

    Windows 11 Support

    To support Windows 11 which requires TPM and Secure boot, we have added TPM emulation; and, added a "Windows 11" VM template which automatically selects TPM-aware OVMF bios.  Also, here are @@ -175,7 +175,7 @@ component called wsdd2 in an effort to eliminate instances where the wsd daemon would start consuming 100% of a CPU core.

  • Fixed issue where you couldn't create a docker image on a share name that contains a space.
  • Fixed issue where 'mover' would not move to a pool name that -contains a space.
  • Fixed issue in User Share +contains a space.
  • Fixed issue in User Share file system where permissions were not being honored.
  • Fixed jumbo frames not working.
  • sysctl: handle net.netfilter.nf_conntrack_count max exceeded (increase setting to 131072) - hattip to Community Member @DieFalse
  • Fixed bug found by @thohell where md_sync_limit was not being honored to limit stripe_head cache usage when other I/O is active. @@ -259,7 +259,7 @@ shares
  • webgui: jQuery: version 3.6.0
  • webgui: present CA-signed certificate subject as a link
  • webgui: privatize host in diagnostics
  • webgui: refactor UpdateDNS.php: anonymize verbose output by default, other improvements
  • webgui: remove 'My Servers' skeleton page
  • webgui: require sign in to provision cert
  • webgui: support simultaneous LAN SSL with self-signed cert and DNS-based SSL with Lets Encrypt cert
  • webgui: various Multi-language corrections
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.10.1/index.html b/unraid-os/release-notes/6.10.1/index.html index 2c273b4db..22dca5321 100644 --- a/unraid-os/release-notes/6.10.1/index.html +++ b/unraid-os/release-notes/6.10.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ introduced a regression where only partition 1 was considered, leaving those users unable to complete the boot sequence.

    This is fixed in 6.10.1 - and this is the only functional change in 6.10.1 vs. 6.10.0.

    Change Log vs. Unraid OS 6.10.0

    Management

    • startup: fix regression: support USB flash boot from other than partition 1
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.10.2/index.html b/unraid-os/release-notes/6.10.2/index.html index a0118082e..f93fa4989 100644 --- a/unraid-os/release-notes/6.10.2/index.html +++ b/unraid-os/release-notes/6.10.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -50,7 +50,7 @@ 'Auto' to 'Strict'
  • webgui: Fixed: smGlue not included when selecting a controller
  • webgui: Fixed: allow share names with embedded ampersand
  • webgui: add LXC terminal support (for LXC Plugin)
  • webgui: Docker Web UI to use Docker label for icons as fallback
  • webgui: VM Manager: support libvirt networks (make libvirt networks accessible via gui)
  • webgui: fix issue where 'root' login works with password from another username which includes string 'root'
  • webgui: Update OS page spelling corrction: warninging -> warning
  • webgui: helptext review: minor corrections
  • - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.10.3/index.html b/unraid-os/release-notes/6.10.3/index.html index eb422445f..cb1e48f41 100644 --- a/unraid-os/release-notes/6.10.3/index.html +++ b/unraid-os/release-notes/6.10.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -20,7 +20,7 @@ reports of data corruption involved platforms which also (coincidentally) used 'tg3' network driver. If you created a blank 'config/modprobe.d/tg3.conf' file you may remove it.

    Plugin authors: A plugin file may include an <ALERT> tag which displays a markdown formatted message when a new version is available. Use this to give instructions or warnings to users before the upgrade is done.

    Brought back color-coding in logging windows.

    Bug fixes

    Fix issue detecting Mellanox NIC.

    Misc. webGUI bug fixes

    Change Log vs. Unraid OS 6.10.2

    Base distro

    • no changes

    Linux kernel

    • version 5.15.46-Unraid
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough

    Management

    • startup: improve network device detection
    • webgui: Added color coding in log files
    • webgui: In case of flash corruption try the test again
    • webgui: Improved syslog reading
    • webgui: Added log size setting when viewing syslog
    • webgui: Plugin manager: add ALERT message function
    • webgui: Add INFO icon to banner
    • webgui: Added translations to PageMap page
    • webgui: Fix: non-correcting parity check actually correcting if non-English language pack installed
    • webgui: Updated azure/gray themes
      • Better support for Firefox
      • Move utilization and notification indicators to the right
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.11.0/index.html b/unraid-os/release-notes/6.11.0/index.html index 735a17a63..b44c3b31c 100644 --- a/unraid-os/release-notes/6.11.0/index.html +++ b/unraid-os/release-notes/6.11.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -25,7 +25,7 @@ "btrfs fi" commands will attempt to read btrfs metadata from this device which fails because there really is not a btrfs filesystem there.

  • Fixed bug in mover that prevented files from being moved from unRAID array to a cache pool (mode Prefer) if the share name contains a space.

  • Change Log vs. Unraid OS 6.10.3

    Management

    • Add sha256 checks of un-zipped files in unRAIDServer.plg.
    • bash: in /etc/profile omit "." (current directory) from PATH
    • docker: do not call 'docker stop' if there are no running containers
    • emhttpd: improve standby (spinning) support
    • mover: fixed issue preventing moving filed from array to cache if share name contains a space
    • rc.nginx: enable OCSP stapling on certs which include an OCSP responder URL
    • rc.nginx: compress 'woff' font files and instruct browser to cache
    • rc.wireguard: add better troubleshooting for WireGuard autostart
    • rc.S: support early load of plugin driver modules
    • SMB: fixed 'fruit' settings for the USB Flash boot device
    • SMB: remove NTLMv1 support since removed from Linux kernel
    • SMB: (temporarily) move vfs_fruit settings into separate /etc/samba/smb-fruit.conf file
    • SMB: (temporarily) get rid of Samba 'idmap_hash is deprecated' nag lines
    • startup: Prevent installing downgraded versions of packages which might exist in /boot/extra
    • upc: version v1.3.0
    • webgui: Plugin system update
      • Detach frontend and backend operation
      • Use nchan as communication channel
      • Allow window to be closed while backend continues
      • Use SWAL as window manager
      • Added multi remove ability on Plugins page
      • Added update all plugins with details
    • webgui: docker: use docker label as primary source for WebUI
      • This makes the 'net.unraid.docker.webui' docker label the primary source when parsing the web UI address. If the docker label is missing, the template value will be used instead.
    • webgui: Update Credits.page
    • webgui: VM manager: Fix VM log can not open when VM name has an embedded '#'
    • webgui: Management Access page: add details for self-signed certs
    • webgui: Parity check: fix regression error
    • webgui: Remove session creation in scripts
    • webgui: Update ssh key regex
      • Add support for ed25519/sk-ed25519
      • Remove support for ecdsa (insecure)
      • Use proper regex to check for valid key types
    • webgui: misc. style updates
    • webgui: Management access: HTTP port setting should always be enabled
    • webgui: Fix: preserve vnc port settings
    • webgui: Fix regression error in plugin system
    • webgui: Fix issue installing registration keys
    • webgui: Highlight case selection when custom image is selected
    • webgui: fix(upc): v1.4.2 apiVersion check regression
    • webgui: Update Disk Capabilities pages for NVME drives
    • webgui: chore(upc): v1.6.0
    • webgui: Plugin system and docker update
    • webgui: System info - style update
    • webgui: Plugins: keep header buttons in same position
    • webgui: Prevent overflow in container size for low resolutions
    • webgui: VM Manager: Add boot order to GUI and CD hot plug function
    • webgui: Docker Manager: add ability to specify shell with container label.
    • webgui: fix: Discord notification agent url
    • webgui: Suppress info icon in banner message when no info is available
    • webgui: Add Spindown message and use -n for identity if scsi drive.
    • webgui: Fix SAS Selftest
    • webgui: Fix plugin multi updates
    • webgui: UPS display enhancements:
      • Add icon for each category
      • Add translation in UPS section on dashboard
      • Add Output voltage / frequency value
      • Add coloring depending on settings
      • Normalize units
      • Make updates near real-time
      • Added UPS model field
    • webgui: JQuery: version 3.6.1
    • webgui: JQueryUI: version 1.13.2
    • webgui: improved 'cache busting' on font file urls
    • webgui: Fixed: text color in docker popup window sometimes wrong
    • webgui: Fixed: show read errors during Read Check
    • webgui: VM Manager: Add USB Startup policy; add Missing USB support
    • webgui: Docker: fixed javascript error when no containers exist
    • webgui: added 3rd party system diagnostics
      • added diagnostics for third party plugin packages
      • added diagnostics for /dev/dri devices
      • added diagnostics for /dev/dvb devices
      • added diagnostics for nvidia devices

    Linux kernel

    • version 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166)
    • md/unraid: version 2.9.24
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough
    • CONFIG_VIRTIO_IOMMU: Virtio IOMMU driver
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_FIREWIRE: FireWire driver stack
    • CONFIG_FIREWIRE_OHCI: OHCI-1394 controllers
    • CONFIG_FIREWIRE_SBP2: Storage devices (SBP-2 protocol)
    • CONFIG_FIREWIRE_NET: IP networking over 1394
    • CONFIG_INPUT_UINPUT: User level driver support
    • CONFIG_INPUT_JOYDEV: Joystick interface
    • CONFIG_INPUT_JOYSTICK: Joysticks/Gamepads
    • CONFIG_JOYSTICK_XPAD: X-Box gamepad support
    • CONFIG_JOYSTICK_XPAD_FF: X-Box gamepad rumble support
    • CONFIG_JOYSTICK_XPAD_LEDS: LED Support for Xbox360 controller 'BigX' LED
    • CONFIG_MLX5_TLS: Mellanox Technologies TLS Connect-X support
    • CONFIG_MLX5_ESWITCH: Mellanox Technologies MLX5 SRIOV E-Switch suppor
    • CONFIG_MLX5_CLS_ACT: MLX5 TC classifier action support
    • CONFIG_MLX5_TC_SAMPLE: MLX5 TC sample offload support
    • CONFIG_MLXSW_SPECTRUM: Mellanox Technologies Spectrum family support
    • CONFIG_NET_SWITCHDEV: Switch (and switch-ish) device support
    • CONFIG_TLS: Transport Layer Security support
    • CONFIG_TLS_DEVICE: Transport Layer Security HW offload
    • CONFIG_TLS_TOE: Transport Layer Security TCP stack bypass
    • CONFIG_VMD: Intel Volume Management Device Driver
    • added additional sensor drivers:
      • CONFIG_AMD_SFH_HID: AMD Sensor Fusion Hub
      • CONFIG_SENSORS_AQUACOMPUTER_D5NEXT: Aquacomputer D5 Next watercooling pump
      • CONFIG_SENSORS_MAX6620: Maxim MAX6620 fan controller
      • CONFIG_SENSORS_NZXT_SMART2: NZXT RGB & Fan Controller/Smart Device v2
      • CONFIG_SENSORS_SBRMI: Emulated SB-RMI sensor
      • CONFIG_SENSORS_SHT4x: Sensiron humidity and temperature sensors. SHT4x and compat.
      • CONFIG_SENSORS_SY7636A: Silergy SY7636A
      • CONFIG_SENSORS_INA238: Texas Instruments INA238
      • CONFIG_SENSORS_TMP464: Texas Instruments TMP464 and compatible
      • CONFIG_SENSORS_ASUS_WMI: ASUS WMI X370/X470/B450/X399
      • CONFIG_SENSORS_ASUS_WMI_EC: ASUS WMI B550/X570
      • CONFIG_SENSORS_ASUS_EC: ASUS EC Sensors
    • patch: add reference to missing firmware in drivers/bluetooth/btrtl.c
      • rtl8723d_fw.bin
      • rtl8761b_fw.bin
      • rtl8761bu_fw.bin
      • rtl8821c_fw.bin
      • rtl8822cs_fw.bin
      • rtl8822cu_fw.bin
    • CONFIG_BPF_UNPRIV_DEFAULT_OFF: Disable unprivileged BPF by default
    • patch: quirk for Team Group MP33 M.2 2280 1TB NVMe (globally duplicate IDs for nsid)
    • turn on all IPv6 kernel options:
      • CONFIGINET6*
      • CONFIGIPV6*
    • CONFIG_RC_CORE: Remote Controller support
    • CONFIG_SFC_SIENA: Solarflare SFC9000 support
    • CONFIG_SFC_SIENA_MCDI_LOGGING: Solarflare SFC9000-family MCDI logging support
    • CONFIG_SFC_SIENA_MCDI_MON: Solarflare SFC9000-family hwmon support
    • CONFIG_SFC_SIENA_SRIOV: Solarflare SFC9000-family SR-IOV support
    • CONFIG_ZRAM: Compressed RAM block device support
    • CONFIG_ZRAM_DEF_COMP_LZ4: Default ram compressor (lz4)
    • turn on all EDAC kernel options
      • CONFIG_EDAC: EDAC (Error Detection And Correction) reporting
      • CONFIGEDAC*

    Base distro

    • aaa_base: version 15.1
    • aaa_glibc-solibs: version 2.36
    • aaa_libraries: version 15.1
    • at: version 3.2.3
    • bind: version 9.18.6
    • btrfs-progs: version 5.19.1
    • ca-certificates: version 20220622
    • cifs-utils: version 7.0
    • coreutils: version 9.1
    • cracklib: version 2.9.8
    • cryptsetup: version 2.5.0
    • curl: version 7.85.0
    • cyrus-sasl: version 2.1.28
    • dbus: version 1.14.0
    • dhcpcd: version 9.4.1
    • dmidecode: version 3.4
    • docker: version 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030)
    • etc: version 15.1
    • ethtool: version 5.19
    • eudev: version 3.2.11
    • file: version 5.43
    • findutils: version 4.9.0
    • firefox: version 105.0.r20220922151854-x86_64 (AppImage)
    • fuse3: version 3.12.0
    • gawk: version 5.2.0
    • gdbm: version 1.23
    • git: version 2.37.3
    • glib2: version 2.72.3
    • glibc: version 2.36
    • glibc-zoneinfo: version 2022c
    • gnutls: version 3.7.7
    • gptfdisk: version 1.0.9
    • grep: version 3.8
    • gzip: version 1.12
    • hdparm: version 9.65
    • htop: version 3.2.1
    • icu4c: version 71.1
    • inotify-tools: version 3.22.6.0
    • iperf3: version 3.11
    • iproute2: version 5.19.0
    • iptables: version 1.8.8
    • jemalloc: version 5.3.0
    • json-c: version 0.16_20220414
    • json-glib: version 1.6.6
    • kmod: version 30
    • krb5: version 1.20
    • libaio: version 0.3.113
    • libarchive: version 3.6.1
    • libcap-ng: version 0.8.3
    • libcgroup: version 3.0.0
    • libdrm: version 2.4.113
    • libepoxy: version 1.5.10
    • libffi: version 3.4.2
    • libgcrypt: version 1.10.1
    • libgpg-error: version 1.45
    • libidn: version 1.41
    • libjpeg-turbo: version 2.1.4
    • libmnl: version 1.0.5
    • libnetfilter_conntrack: version 1.0.9
    • libnfnetlink: version 1.0.2
    • libnftnl: version 1.2.3
    • libnl3: version 3.7.0
    • libpng: version 1.6.38
    • libssh: version 0.10.4
    • libtasn1: version 4.19.0
    • libtirpc: version 1.3.3
    • liburcu: version 0.13.1
    • libusb: version 1.0.26
    • libwebp: version 1.2.4
    • libxml2: version 2.9.14
    • libxslt: version 1.1.36
    • libzip: version 1.9.2
    • logrotate: version 3.20.1
    • lsof: version 4.95.0
    • lzip: version 1.23
    • mc: version 4.8.28
    • mcelog: version 189
    • nano: version 6.4
    • nfs-utils: version 2.6.2
    • nghttp2: version 1.49.0
    • nginx: version 1.22.0
    • ntfs-3g: version 2022.5.17
    • ntp: version 4.2.8p15
    • oniguruma: version 6.9.8
    • openssh: version 9.0p1
    • openssl: version 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274)
    • openssl-solibs: version 1.1.1q (CVE-2022-1292)
    • p11-kit: version 0.24.1
    • pciutils: version 3.8.0
    • pcre2: version 10.40
    • perl: version 5.36.0
    • php: version 7.4.30 (CVE-2022-31625 CVE-2022-31626)
    • pkgtools: version 15.1
    • rpcbind: version 1.2.6
    • rsync: version 3.2.6
    • samba: version 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742)
    • sqlite: version 3.39.3
    • sudo: version 1.9.11p3
    • sysfsutils: version 2.1.1
    • sysstat: version 12.6.0
    • sysvinit-scripts: version 15.1
    • talloc: version 2.3.4
    • tar: version 1.34
    • tevent: version 0.13.0
    • tree: version 2.0.2
    • util-linux: version 2.38.1
    • wayland: version 1.21.0
    • wget: version 1.21.3
    • xfsprogs: version 5.18.0
    • xz: version 5.2.6
    • zlib: version 1.2.12

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.11.1/index.html b/unraid-os/release-notes/6.11.1/index.html index 308b0bd7b..81b354c38 100644 --- a/unraid-os/release-notes/6.11.1/index.html +++ b/unraid-os/release-notes/6.11.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ at system boot up. Users are advised to regenerate the WG configs. This can be done, e.g., by clicking in a field to change a value and then change it back in order to get the Apply button to light up. Then click Apply.

  • Fixed issue where empty popup windows gets displayed with certain browsers and devices.

  • Restored "NTLMv1 authenication" for incoming SMB connections.

  • Change Log vs. Unraid OS 6.11.0

    Base distro

    • acpid: version 2.0.34
    • bash: version 5.2.000
    • bind: version 9.18.7
    • ca-certificates: version 20220922
    • dbus: version 1.14.2
    • dnsmasq: version 2.87
    • docker: version 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109)
    • git: version 2.38.0
    • glib2: version 2.72.4
    • glibc-zoneinfo: version 2022d
    • gnutls: version 3.7.8
    • harfbuzz: version 5.2.0
    • intel-microcode: version 20220809
    • libXtst: version 1.2.4
    • libXxf86vm: version 1.1.5
    • libffi: version 3.4.3
    • libvirt: version 8.7.0
    • libvirt-php: version 0.5.6
    • lsof: version 4.96.3
    • nghttp2: version 1.50.0
    • pango: version 1.50.11
    • qemu: version 7.1.0 (built adding ppc, riscv32/64 support, replace arm with aarch64)
    • sqlite: version 3.39.4
    • xterm: version 373
    • xz: version 5.2.7

    Linux kernel

    • version 5.19.14
    • CONFIG_DRM_MGAG200: Matrox G200
    • CONFIG_X86_SGX: Software Guard eXtensions (SGX)
    • CONFIG_X86_SGX_KVM: Software Guard eXtensions (SGX) Virtualization
    • CONFIG_CRYPTO_ZSTD: Zstd compression algorithm
    • md/unraid: version 2.9.25
    • patch: silence EDID "block all zeros" and "has corrupt header" notices
    • patch: add NVMe quirks for non-compliant devices reported by users

    Management

    • webgui: VM Manager: Update GUI Options
      • Include 9P and Virtiofs
      • Remove 9P option for Windows.
      • Update XML if virtiofs and Windows in addition to Linux.
      • Update VM Share GUI Options
    • webgui: Fixed: wrong feedback display on VM page
    • webgui: Dashboard: store graph data in file instead of cookie
    • webgui: Ask user to provide diagnostics before downgrading the OS
    • webgui: Spice html client in addition to VNC
    • webgui: improve handling of windows-style config files
    • webgui: WireGuard: add explicit interface name in routing
    • webgui: SWAL: intercept "esc" button to stop nchan upon window closing
    • webgui: nchan: delayed command execution
      • This prevents an empty popup window in certain browsers and devices

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.11.2/index.html b/unraid-os/release-notes/6.11.2/index.html index c1f336950..e251bfe9d 100644 --- a/unraid-os/release-notes/6.11.2/index.html +++ b/unraid-os/release-notes/6.11.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ show text for guest not running or guest agent is not installed.
  • Fix unable to change HyperV settings.
  • Add 'start with console' option.
  • OVMF for QEMU: version edk2-stable202208
  • WireGuard

    Changes:

    • Fixed problem setting up tunnels if using default network.cfg settings.
    • Fix typo setting up routes.

    Plugin manager

    Changes:

    • If plugin files cannot be read from CDN URL, fall back to non-CDN URL.
    • Enforce plugin files must end in '.plg'.
    • Fix post hook failing when plugin download fails.
    • Adjust the wget parameters to keep it from indefinitely hanging.

    Scheduler

    For scheduled Parity Checks, change default mode to Non-correcting. In case there are disk issues during a parity check it would be safer to have the default be non-correct. If sync errors are detected then the user can analyze the log and act accordingly.

    Misc. webGUI

    Changes:

    • DashStats: The inbound networkstats is out of place when numeric value is xxx.x.
    • Docker: Add/clarify Help to Docker Custom Network settings.
    • Docker: Fix display aberration on orphan images
    • SMART attributes: clarify message: "Can not read attributes" to "Attributes not available"
    • ShareEdit/ShareList: show pool not defined when share pool is not a defined pool

    Linux kernel

    • version 5.19.17
    • patch: additional NVMe BOGUS_NID quirks for non-compliant devices reported by users
    • sound support:
      • CONFIG_SOUND: Sound card support
      • CONFIG_SND: Advanced Linux Sound Architecture
      • CONFIG_SND_OSSEMUL: Enable OSS Emulation
      • CONFIG_SND_PCM_OSS: OSS PCM (digital audio) API
      • CONFIG_SND_HRTIMER: HR-timer backend support
      • CONFIG_SND_SUPPORT_OLD_API: Support old ALSA API
      • CONFIG_SND_PROC_FS: Sound Proc FS Support
    • CONFIG_IPV6: The IPv6 protocol (change from module to built-in)

    Base Distro

    Package updates including CVE mitigations:

    • bash: version 5.2.002
    • bind: version 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795)
    • btrfs-progs: version 6.0
    • curl: version 7.86.0
    • dbus: version 1.14.4
    • freeglut: version 3.4.0
    • git: version 2.38.1 (CVE-2022-39253 CVE-2022-39260)
    • glibc-zoneinfo: version 2022e
    • harfbuzz: version 5.3.1
    • icu4c: version 72.1
    • iproute2: version 6.0.0
    • kernel-firmware: version 20221017_48407ff
    • less: version 608
    • libXmu: version 1.1.4
    • libXrender: version 0.9.11
    • libedit: version 20221009_3.1
    • libffi: version 3.4.4
    • libgpg-error: version 1.46
    • libpciaccess: version 0.17
    • libunistring: version 1.1
    • libxkbfile: version 1.1.1
    • libxshmfence: version 1.3.1
    • lsof: version 4.96.4
    • nginx: version 1.22.1
    • openssh: version 9.1p1
    • php: version 7.4.32
    • pixman: version 0.42.0
    • rsync: version 3.2.7
    • samba: version 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592)
    • sudo: version 1.9.12
    • tree: version 2.0.4
    • xkeyboard-config: version 2.37
    • xterm: version 375
    • zlib: version 1.2.13 (CVE-2022-37434)

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.11.3/index.html b/unraid-os/release-notes/6.11.3/index.html index 6e0b175f3..d9359f142 100644 --- a/unraid-os/release-notes/6.11.3/index.html +++ b/unraid-os/release-notes/6.11.3/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.3

    Version 6.11.3 2022-11-08

    This release is focused on bug fixes and minor improvements. In particular, we need to revert a base library due to a bug which prevents formatting devices >2TB in size.

    Management

    • Reverted 'libpopt.so.0.0.1' to workaround 'sgdisk' bug used to format devices larger than 2TB.
    • Fixed issue where description setting for 'root' user was not preserved across reboots.
    • Fix issue that sometimes information window opens empty.

    VM Manager

    • Set correct values when edit for USB Boot and correct Share Selection.
    • Add Nic boot order.

    Base Distro

    • gptfdisk: version 1.0.8 (revert from version 1.0.9)
    • libXext: version 1.3.5
    • libXinerama: version 1.1.5
    • libdrm: version 2.4.114
    • libedit: version 20221030_3.1
    • mcelog: version 190
    • ntfs-3g: version 2022.10.3
    • openssl: version 1.1.1s
    • openssl-solibs: version 1.1.1s
    • pixman: version 0.42.2
    • sessreg: version 1.1.3
    • sudo: version 1.9.12p1
    • xsetroot: version 1.1.3
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.11.4/index.html b/unraid-os/release-notes/6.11.4/index.html index 30fc2b426..61d5d8394 100644 --- a/unraid-os/release-notes/6.11.4/index.html +++ b/unraid-os/release-notes/6.11.4/index.html @@ -9,16 +9,16 @@ - - - + + +

    6.11.4

    Version 6.11.4 2022-11-18

    This release is focused on bug fixes and minor improvements.

    Diagnostics

    • Fix share information in Diagnostics.

    Docker

    • docker: version 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715)
    • Fix: "please wait" message after removing orphan image.
    • Set IPVLAN as default for new installations.

    Samba

    • samba: version 4.17.3 (CVE-2022-42898)
    • Set the default "max open files" to the value of 'ulimit -n' which is currently set to 40960.

    VM Manager

    • Allow Network PCI devices to have boot order.
    • Change to use libvirt_domain_interface_addresses which has been available for a long time but was not documented in the API manual. Using this function stops tainted warnings being written to the log, ex: "Domain id=4 is tainted: custom-ga-command".
    • Fix for VM Rename.

    Misc

    • Fixed issue which prevented array Autostart with a Trial key.
    • Fixed encoding issue when passwords contain multi-byte UTF-8 characters.
    • Parity History: add day of week to date.
    • Shares: Fix: do not allow creation of hidden share names.
    • Main page: reinitialize disk transfer statistics upon opening new broswer session.
    • Management Access page: improved messaging for SSL
    • Firefox: version 107.0.r20221110173214 (AppImage)
    • When all browser sessions close, stop unnecessary background processes.

    Base Distro

    • bash: version 5.2.009
    • btrfs-progs: version 6.0.1
    • gdk-pixbuf2: version 2.42.10
    • glibc-zoneinfo: version 2022f
    • intel-microcode: version 20221108
    • libX11: version 1.8.2
    • libnftnl: version 1.2.4
    • nghttp2: version 1.51.0
    • php: version 7.4.33 (CVE-2022-31630 CVE-2022-37454)
    • sed: version 4.9
    • sysstat: version 12.7.1
    • xkbevd: version 1.1.5
    • xkill: version 1.0.6
    • xlsatoms: version 1.1.4
    • xlsclients: version 1.1.5
    • xz: version 5.2.8
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.11.5/index.html b/unraid-os/release-notes/6.11.5/index.html index ef46180c0..9f02ee511 100644 --- a/unraid-os/release-notes/6.11.5/index.html +++ b/unraid-os/release-notes/6.11.5/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.5

    Version 6.11.5 2022-11-20

    This release reverts a change which modified the wrong file. This resulted in not being able to select 'macvlan' custom docker network type. New installations only will now have 'ipvlan' selected by default.

    Docker

    • fix: Set IPVLAN as default only for new installations.
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.12.0/index.html b/unraid-os/release-notes/6.12.0/index.html index 48276429a..ecf70758c 100644 --- a/unraid-os/release-notes/6.12.0/index.html +++ b/unraid-os/release-notes/6.12.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -79,7 +79,7 @@ still mounted - not good.

    To get around this, you must first create a temp directory on the flash device and then 'mv' (or drag) all the existing bz files into this temp directory. Now you can copy the new bz files to the root of the flash device and reboot.

    Linux kernel

    • version 6.1.33
    • md/unraid: version 2.9.27
    • CONFIG_FS_DAX: File system based Direct Access (DAX) support
    • CONFIG_VIRTIO_FS: Virtio Filesystem
    • CONFIG_ZONE_DEVICE: Device memory (pmem, HMM, etc...) hotplug support
    • CONFIG_USBIP_HOST: Host driver
    • CONFIG_INTEL_MEI: Intel Management Engine Interface
    • CONFIG_INTEL_MEI_ME: ME Enabled Intel Chipsets
    • CONFIG_INTEL_MEI_GSC: Intel MEI GSC embedded device
    • CONFIG_INTEL_MEI_PXP: Intel PXP services of ME Interface
    • CONFIG_INTEL_MEI_HDCP: Intel HDCP2.2 services of ME Interface
    • CONFIG_INTEL_PMC_CORE: Intel PMC Core driver
    • CONFIG_DRM_I915_PXP: Enable Intel PXP support
    • CONFIG_SCSI_FC_ATTRS: FiberChannel Transport Attributes
    • CONFIG_FUSION_SPI: Fusion MPT ScsiHost drivers for SPI
    • CONFIG_FUSION_FC: Fusion MPT ScsiHost drivers for FC
    • CONFIG_FUSION_CTL: Fusion MPT misc device (ioctl) driver
    • CONFIG_FUSION_LOGGING: Fusion MPT logging facility
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_LRU_GEN: Multi-Gen LRU
    • CONFIG_SERIAL_8250_NR_UARTS=32: Maximum number of 8250/16550 serial ports
    • CONFIG_SERIAL_8250_RUNTIME_UARTS=4: Number of 8250/16550 serial ports to register at runtime
    • CONFIG_FANOTIFY: Filesystem wide access notification

    Base Distro updates

    • aaa_glibc-solibs: version 2.37
    • adwaita-icon-theme: version 43
    • at-spi2-core: version 2.46.0
    • bash: version 5.2.015
    • bash_completion: version 2.11
    • bind: version 9.18.12
    • btrfs-progs: version 6.2.1
    • ca-certificates: version 20221205
    • cryptsetup: version 2.6.1
    • curl: version 7.88.1
    • dbus: version 1.14.6
    • diffutils: version 3.9
    • dnsmasq: version 2.89
    • docker: version 23.0.6
    • e2fsprogs: version 1.47.0
    • encodings: version 1.0.7
    • file: version 5.44
    • firefox: version 111.0 (AppImage)
    • freetype: version 2.13.0
    • fuse3: version 3.12.0
    • gawk: version 5.2.1
    • git: version 2.39.2
    • glib2: version 2.74.6
    • glibc: version 2.37
    • glibc-zoneinfo: version 2022g
    • gnutls: version 3.7.9
    • gptfdisk: version 1.0.9
    • gtk+3: version 3.24.37
    • harfbuzz: version 7.1.0
    • htop: version 3.2.2
    • iproute2: version 6.2.0
    • iptables: version 1.8.9
    • iputils: version 20221126
    • kernel-firmware: 20230531_fc90c59
    • less: version 612
    • libICE: version 1.1.1
    • libSM: version 1.2.4
    • libX11: version 1.8.4
    • libXau: version 1.0.11
    • libXcomposite: version 0.4.6
    • libXdamage: version 1.1.6
    • libXdmcp: version 1.1.4
    • libXpm: version 3.5.15
    • libXrandr: version 1.5.3
    • libXres: version 1.2.2
    • libXxf86dga: version 1.1.6
    • libarchive: version 3.6.2
    • libdrm: version 2.4.115
    • libfontenc: version 1.1.7
    • libglvnd: version 1.6.0
    • libjpeg-turbo: version 2.1.5.1
    • libpcap: version 1.10.3
    • libpng: version 1.6.39
    • libpsl: version 0.21.2
    • liburcu: version 0.14.0
    • libwebp: version 1.3.0
    • libxkbcommon: version 1.5.0
    • libxkbfile: version 1.1.2
    • libxshmfence: version 1.3.2
    • lmdb: version 0.9.30
    • logrotate: version 3.21.0
    • lsof: version 4.98.0
    • lz4: version 1.9.4
    • lzlib: version 1.13
    • mc: version 4.8.29
    • mcelog: version 191
    • mpfr: version 4.2.0
    • nano: version 7.2
    • ncurses: version 6.4
    • nginx: version 1.23.3
    • nghttp2: version 1.52.0
    • openssh: version 9.2p1
    • openssl: version 1.1.1t
    • openssl-solibs: version 1.1.1t
    • openzfs: version 2.1.12
    • pango: version 1.50.14
    • pciutils: version 3.9.0
    • pcre2: version 10.42
    • php: version 8.2.4
    • php-libvirt: version 0.5.7
    • php-markdown: version 2.0.0
    • samba: version 4.17.7
    • sqlite: version 3.41.0
    • sudo: version 1.9.13p2
    • sysstat: version 12.7.2
    • tdb: version 1.4.8
    • tevent: version 0.14.1
    • traceroute: version 2.1.2
    • transset: version 1.0.3
    • tree: version 2.1.0
    • usbutils: version 015
    • xcb-util: version 0.4.1
    • xdriinfo: version 1.0.7
    • xf86-video-vesa: version 2.6.0
    • xfsprogs: version 6.1.1
    • xhost: version 1.0.9
    • xinit: version 1.4.2
    • xkbcomp: version 1.4.6
    • xkeyboard-config: version 2.38
    • xorg-server: version 21.1.7
    • xprop: version 1.2.6
    • xrandr: version 1.5.2
    • xset: version 1.2.5
    • xterm: version 379
    • xz: version 5.4.1
    • zstd: version 1.5.4
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.12.1/index.html b/unraid-os/release-notes/6.12.1/index.html index 2cbf89526..77dfcb7f2 100644 --- a/unraid-os/release-notes/6.12.1/index.html +++ b/unraid-os/release-notes/6.12.1/index.html @@ -9,14 +9,14 @@ - - - + + +

    Version 6.12.1 2023-06-20

    Changes vs. 6.12.0

    Bug fixes

    • emhttpd: remove "unraid" from reserved names list
    • emhttpd: properly handle "ERROR" strings in 'btrfs filesystem show' command output
    • emhttpd: prevent cmdStart if already Started
    • network: Revised service reload functionality: ensures the services are only reloaded once
    • network: rc.library: read IP addresses directly from interfaces instead of file
    • network: NTP: fix listening interfaces
    • network: NTP: exclude WG tunnels and user defined interfaces
    • network: NTP: add interface name in config
    • network: SSH: add interface name in config
    • webgui: fix PHP8 warning in UPS Settings page
    • webgui: Dashboard: show ZFS percentage based on c_max value
    • webgui: Dashboard: suppress coloring of ZFS utilization bar
    • webgui: Dashboard: other misc fixes

    Linux kernel

    • version 6.1.34

    Base Distro

    • ttyd: version 1.7.3 (fixes issue of invisible underbar characters with certain FireFox versions)

    Security updates

    • ca-certificates: version 20230506
    • curl: version 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319)
    • git: version 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007)
    • ntp: version 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555)
    • openssl: version 1.1.1u (CVE-2023-2650)
    • openssh: version 9.3p1
    • php: version 8.2.7
    • libX11: version 1.8.6 (CVE-2023-3138)
    • libssh: version 0.10.5 (CVE-2023-1667 CVE-2023-2283)
    • zstd: version 1.5.5
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.12.2/index.html b/unraid-os/release-notes/6.12.2/index.html index 4db0b2459..8d3941d51 100644 --- a/unraid-os/release-notes/6.12.2/index.html +++ b/unraid-os/release-notes/6.12.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ is automatically applied to all 'config/wireguard/*.conf' files when you update via Update OS page. For manual update or if you downgrade, it is necessary to make a "dummy change" in a setting on the Settings/VPN Manager page and then click Apply.

    Bug fixes and improvements

    • email notifications: add line in /etc/php.ini: 'mail.mixed_lf_and_crlf=On' to workaround change in PHP8 CRLF handling
    • emhttpd: Fix regression: emulated ZFS volumes not recognized
    • emhttpd: Fix regression: format fails if diskFsType==auto and defaultFsType specifies encryption
    • emhtptd: Fix regression: mount fails if diskFsType==auto
    • htop: remove predefined /root/.config/htop/htoprc file
    • network: RC services update:
      • NFS - fix service reload
      • RPC - fix service reload
      • NGINX - remove HTTPS port in FQDN redirect when default 443
      • All services - register IPv4 Link local assignment (169.254.xxx.xxx)
      • All services - make lock file programmable
      • WireGuard: delayed service update to avoid race condition
      • rc.library: do not allow duplicates in bind list
    • webgui: Dashboard updates:
      • Re-introduce show/hide tile content
      • Add new icon function to show/hide all content at once
      • Reduce gap between columns
      • description -> model
      • ZFS: fix percentage value to max 100%
      • Use prototype function: This makes it easier for 3rd party developers to automatically hide dynamic content
      • Handle duplicate IP assignments and give warning
      • change header MEMORY to SYSTEM
    • webgui: OS Update: add checkbox to confirm reading release notes before upgrading
    • webgui: diagnostics: include list of duplicate assignments
    • webgui: NFS: for Security/Private increase Rule field from 256 to 512 characters.

    Linux kernel

    • version 6.1.36

    Base Distro

    • bind: version -9.16.42 (CVE-2023-2911)
    • docker: 20.10.24 (revert from v23.0.6)
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.12.3/index.html b/unraid-os/release-notes/6.12.3/index.html index 90704f345..2d0a176fe 100644 --- a/unraid-os/release-notes/6.12.3/index.html +++ b/unraid-os/release-notes/6.12.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -19,7 +19,7 @@ an issue where the webGUI will not load in certain instances.

    Note: If you have code in your 'go' script to disable IPv6, remove that and disable it via the 'Settings/Network Settings' page instead. Manually disabling IPv6 will cause conflicts.

    Docker

    This release resolves an issue where Docker does not properly stop when the array Stops, which can result in an unclean shutdown.

    If Docker containers have issues starting after a while, and you are running Plex, go to your Plex Docker container settings, switch to advanced view, and add this to the Extra Params: --no-healthcheck

    Bug fixes and improvements

    • rc.docker:
      • revised docker daemon running check
      • rc.docker: change route metric of main interface as needed to avoid conflict with shim interface with shim interface
    • rc.library:
      • code optimization for ipv6 max/min
      • support ipv4 mapped addresses
    • rc.nginx: explicit ipv4/ipv6 selection on lo interface
    • shfs: correct share size calculation when ZFS is one of the volumes
    • webgui:
      • VM settings page: fixed typo
      • Share Edit page: make minimum free space settings always available
      • Wireguard: fix typo in Ipv6 mask
      • Routing table: fix display of metric value when zero

    Linux kernel

    • version 6.1.38
    • Added support to monitor and also limit power on Intel Core (2nd Gen+) CPU models:
      • CONFIG_POWERCAP: Generic powercap sysfs driver
      • CONFIG_INTEL_RAPL: Intel RAPL Support via MSR Interface
      • CONFIG_IDLE_INJECT: Idle injection framework

    Base Distro

    • firefox: version 115.0.r20230710165010 (AppImage)
    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.9.0/index.html b/unraid-os/release-notes/6.9.0/index.html index a6af87bd6..cb36a23cb 100644 --- a/unraid-os/release-notes/6.9.0/index.html +++ b/unraid-os/release-notes/6.9.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -284,7 +284,7 @@ can override at boot
  • mount all btrfs volumes using 'space_cache=v2' option
  • mount loopbacks with 'noatime' option; enable 'direct-io'
  • mount_image: suppport bind-mount
  • non-rotational device partitions aligned on 1MiB boundary by default
  • plugin: support sha256 file validation
  • rsyslog: fix broken "Mirror syslog to flash"
  • samba: disable aio by default
  • shfs: move: preserve ioctl_iflags when moving between same file system types
  • shfs: move: support spares files
  • smart-one.cfg keeps SMART info per-ID instead of per-slot; disk warning/critical config moved to disk/pool cfg
  • smb: fixed Ad join issue
  • smb: remove setting 'aio' options in smb.conf, use samba defaults
  • ssh: add /root/.ssh symlink to /boot/config/ssh/root directory
  • ssh: allow only root user, require passwords, disable non-root tunneling
  • ssh: require passwords, disable non-root tunneling
  • startup: setup an overlayfs for /lib/modules and /lib/firmware
  • syslog: configure to also listen on localhost udp port 514
  • web terminal: inhibit warning pop-up when closing window
  • wireguard support: rc.wireguard: add iptables rules
  • webGUI: Fix dockerupdate.php warnings
  • webGUI: Update statuscheck
  • webgui: Add 'Portuguese (pt)' key map option for libvirt
  • webgui: Add customizable timeout when stopping containers
  • webgui: Add log viewer for vfio-pci
  • webgui: Add notification agent for Discord
  • webgui: Add pools information to diagnostics
  • webgui: Add raid1c3 and raid1c4 btrfs pool balance options.
  • webgui: Add update dialog to docker context menu
  • webgui: Added "safe mode" one-shot safemode reboot option
  • webgui: Added btrfs info for all pools in diagnostics
  • webgui: Added new display setting: show normalized or raw device identifiers
  • webgui: Added new setting "Enable user share assignment" to cache pool
  • webgui: Added support for private docker registries with basic auth or no auth, and improvements for token based authentication
  • webgui: Allow different image types to upload with 512K max
  • webgui: Allow duplicate containers different icons
  • webgui: Allow markdown within container descriptions
  • webgui: Change Icon for Motherboard Info from cog (settings) to info
  • webgui: Changed: Consistency between dashboard and docker on accessing logs
  • webgui: Dashboard: fix stats of missing interface
  • webgui: Dashboard: style adjustment for server icon
  • webgui: Detect invalid session and logout current tab
  • webgui: Diagnostics: Remove SHA256 Hashes
  • webgui: Disallow "?" in share names
  • webgui: Display settings: colors should be 3 or 6 character hex digits
  • webgui: Do not show CA profiles in Add Container list
  • webgui: Docker: allow BTRFS or XFS vdisk, or folder location
  • webgui: Docker: more intuitive handling of images
  • webgui: Fix ' appearing
  • webgui: Fix Azure / Gray Switch Language being cut-off
  • webgui: Fix Banner Warnings Not Dismissing without reload of page
  • webgui: Fix Started VMs not appearing in dashboard
  • webgui: Fix crash when reading very large log files (limiting output to 1000 lines).
  • webgui: Fix dismiss all notification
  • webgui: Fix not able to change parity check schedule if no cache pool present
  • webgui: Fix notifications continually reappearing
  • webgui: Fix unable to use top right icons if notifications present
  • webgui: Fix wrong docker run URL reference
  • webgui: Fix: Dashboard / Docker scrolling on iPad devices
  • webgui: Fix: properly set samesite cookie (fix login issue with Safari)
  • webgui: For raid6 btrfs pool data profile use raid1c3 metadata profile.
  • webgui: Icon buttons re-arrangement
  • webgui: Main page: hide Move button when user shares are not enabled
  • webgui: Multi-language: Fixed regression error: missing indicator for required fields
  • webgui: Multilanguage: Fix unable to delete / edit users
  • webgui: Network settings: show first DNSv6 server
  • webgui: Network: allow metric value of zero to set no default gateway
  • webgui: Network: fix privacy extensions not set
  • webgui: New Perms: Support multi-cache pools
  • webgui: Notifications: Fix gap on white / black
  • webgui: Permit file system configuration when array Started for Unmountable volumes.
  • webgui: Prevent "Add" reverting to English when adding a new user with an invalid username
  • webgui: Prevent bonded nics from being bound to vfio-pci too
  • webgui: Remove WG from Dashboard if no tunnels defined
  • webgui: Show message when too many files for browsing
  • webgui: Support links on notifications
  • webgui: Suppress Autofan link on Dashboard if plugin not installed
  • webgui: Suppress WG on Dashboard if no tunnels defined
  • webgui: Switch Diagnostics to web socket
  • webgui: SysDevs - warn if leave page without saving
  • webgui: SysDevs overhaul with vfio-pci.cfg binding
  • webgui: Tabbed case select window
  • webgui: Task Plugins: Providing Ability to define Display_Name
  • webgui: Update Feedback.php
  • webgui: Update jGrowl to version 1.4.7
  • webgui: Update noVNC to v1.2.0
  • webgui: Updated case icons
  • webgui: Use update image dialog for update entry in docker context menu
  • webgui: VM Manager: add 'virtio-win-0.1.189-1' to VirtIO-ISOs list
  • webgui: VM manager: Fix: Changing from VM VNC graphics to GPU passthrough
  • webgui: VM manager: add virtio-win-0.1.190-1
  • webgui: VM manager: new setting "Network Model"
  • webgui: VMs: Fixed: Adding NICs or VirtFS mounts to a VM is limited
  • webgui: VMs: Fixed: rare cases vdisk defaults to Auto when it should be Manual
  • webgui: VMs: change default network model to virtio-net
  • webgui: VMs: more intuitive handling of image selection
  • webgui: avoid php syntax error if autov() source file does not exist
  • webgui: better handling of multiple nics with vfio-pci
  • webgui: correct login form wrong default case icon displayed
  • webgui: do not try to display SMART info that causes spin-up for devices that are spun-down
  • webgui: dockerMan: Allow readmore in advanced view
  • webgui: dockerMan: Only allow name compatible with docker
  • webgui: dockerMan: Selectable start upon install
  • webgui: fix: jGrowl covering buttons
  • webgui: fix: login prompt when switching between servers
  • webgui: other misc. improvements
  • webgui: pools not enabled for user shares should not be selectable for cache
  • webgui: sanitize input on tail_log
  • webgui: set 'mid-tower' default case icon
  • webgui: support spin-up/down and temperature monitoring of unassigned devices
  • webgui: turn off username autocomplete in login form
  • webgui: vm manager: Preserve VNC port settings
  • webgui: vnc: add browser cache busting
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.9.1/index.html b/unraid-os/release-notes/6.9.1/index.html index 0d34327c0..d17f092c5 100644 --- a/unraid-os/release-notes/6.9.1/index.html +++ b/unraid-os/release-notes/6.9.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -35,7 +35,7 @@ spindown/spinup logic
  • rc.local: ensure required directories exist on USB flash boot device
  • rc.local: for Docker containers: grant access to graphics device nodes /dev/dri/*
  • rc.nginx: add Cache-Control:nocache header to novnc
  • webgui: Increase syslog buffer from 1000 to 3000 lines
  • webgui: SysDevs fix display aberration
  • webgui: Diagnostics: include modprobe.d files
  • webgui: Diagnostics: include go as go.txt
  • webgui: Update share security helptext
  • webgui: Deprecate donation links in templates in lieu of links in CA profiles
  • webgui: Protect GUI from invalid .page files
  • webgui: Suppress ipv6 multicast entries in route table display
  • webgui: synchronize helptext.txt with lang-en_US repo
  • webgui: user management - disable password autocomplete
  • webgui: Dashboard: Fix color for utilization of disk
  • - - + + \ No newline at end of file diff --git a/unraid-os/release-notes/6.9.2/index.html b/unraid-os/release-notes/6.9.2/index.html index cf512d1c4..558b0e3b5 100644 --- a/unraid-os/release-notes/6.9.2/index.html +++ b/unraid-os/release-notes/6.9.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -26,7 +26,7 @@ @ich777 to facilitate installing the correct driver.

    Change Log vs. Unraid OS 6.9.1

    Base distro

    • docker: version 20.10.5
    • fuse3: version 3.10.2
    • nginx: version 1.19.9
    • samba: verson 4.12.14 (CVE-2020-27840 CVE-2020-27840)

    Linux kernel

    • version 5.10.28
    • include all CONFIGNF* modules
    • oot: realtek r8125: version 9.005.01

    Management

    • emhttpd: detect out-of-band device spin-up
    • shfs: add 'copy_file_range()' support
    • shfs: fix 'mknod' creating a fifo
    • webgui: login: implement max 3 failed login attempts per 15 minute interval
    • webgui: Fix links on notifications not being present if in summary display
    • webgui: Plugins: Move incompatible plugins to ../plugins-error
    • webgui: Fix missing CSRF when deleting pool
    • webgui: Fix .sweet-alert color
    • webgui: Translations adjustments
    • webgui: Diagnostics: Prevent double clicks on download button
    • webgui: Fix default usage thresholds not sending notification
    • webgui: Fix CSS span.select background-color
    • webgui: Make diagnostics messages left aligned
    • webgui: Fixed javascript error in DeviceInfo.page preventing settings to be saved
    • webgui: Update DeviceInfo.page
    • webgui: Prevent autofilling of passwords on containers
    • webgui: Docker: Do not allow CPU pinning if no template present
    • webgui: Fix .sweet-alert .sa-icon color, * in the CSS
    - - + + \ No newline at end of file diff --git a/zh/404.html b/zh/404.html index 0d1c910c1..a489eed66 100644 --- a/zh/404.html +++ b/zh/404.html @@ -9,14 +9,14 @@ - - - + + +

    找不到页面

    我们找不到您要找的页面。

    请联系原始链接来源网站的所有者,并告知他们链接已损坏。

    - - + + \ No newline at end of file diff --git a/zh/assets/css/styles.2c43762e.css b/zh/assets/css/styles.2c43762e.css new file mode 100644 index 000000000..3b34bd753 --- /dev/null +++ b/zh/assets/css/styles.2c43762e.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/zh/assets/css/styles.5dd3a1e0.css b/zh/assets/css/styles.5dd3a1e0.css deleted file mode 100644 index 60ad42e6b..000000000 --- a/zh/assets/css/styles.5dd3a1e0.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}:root,[data-theme=dark]{--aa-input-border-color-alpha:1!important}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#e22828;--ifm-color-primary-dark:#d31c1c;--ifm-color-primary-darker:#c71b1b;--ifm-color-primary-darkest:#a41616;--ifm-color-primary-light:#e53f3f;--ifm-color-primary-lighter:#e74b4b;--ifm-color-primary-lightest:#eb6e6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--aa-primary-color-rgb:226,40,40!important;--aa-muted-color-rgb:226,40,40!important;--aa-input-border-color-rgb:218,221,225!important;--aa-selected-color-rgb:226,40,40!important;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#ff8c2f;--ifm-color-primary-dark:#ff7b11;--ifm-color-primary-darker:#ff7302;--ifm-color-primary-darkest:#d35f00;--ifm-color-primary-light:#ff9d4d;--ifm-color-primary-lighter:#ffa55c;--ifm-color-primary-lightest:#ffbe8a;--docusaurus-highlighted-code-line-bg:#0000004d;--aa-primary-color-rgb:255,140,47!important;--aa-muted-color-rgb:255,140,47!important;--aa-input-background-color-rgb:27,27,29!important;--aa-background-color-rgb:36,37,38!important;--aa-input-border-color-rgb:68,73,80!important;--aa-selected-color-rgb:255,140,47!important}div[class^=announcementBar_]{background:linear-gradient(90deg,#e22828 0,#ff8c2f);font-weight:700}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/zh/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG b/zh/assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG deleted file mode 100644 index 1875d64774735d7928639130ffdb74e1b546e80a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56760 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 BeH8!z diff --git a/zh/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG b/zh/assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG deleted file mode 100644 index 46e8f061547b2597e889a6e93c7b53c83131142c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64484 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 Xl=8V3LhS66yrnuSj!K_qzmNPc=6Yr+ diff --git a/zh/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG b/zh/assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG deleted file mode 100644 index 22b13894a1c0223da21ccd9a40c85835b674ea54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332398 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�-!3l%MP;}c`U!^ePA#Ct_M(0&SDwFXdvCoyIFQ2sXYYG#6wM8Qq@VU3n zp?rPYh_ynXh{b;~e?q8vKbNl}*G$Qw(FW;Nr&}^isIL z@d#{;-}Na9KXv0Is(l;5I*4yt+g(TrRpJlvkCqsQC;dP>$De|3N#6JgU+=%^{K--) z&0C~X)iLy%2Va5JJI4odSFVn{J5iQ}50vRx84kINaMDM4X}wAy>AW*cj@2J_P>HZu$o=4c@aCR= zpvEI(r-3q?BX|GC*?rOx?1=xnik##04)zG0imiP6i>Hg`hs)5^D@HY219Ofcy>?#V4E;A!^ag`FvT{Z5lYF;Vu$MA2 zVlAmz^#(k!a{|ZR?t$zSVj*_y1!@f0%q@1LAzUg9yz<=pPt`}L z#I*=?n%{-$Fudip^tQVM5?PIT$l`z~4$DARro`_%j%kQZ_j=*}(3}^q?h5rWpbzt5 zi!C^_5hHnIm35__$BZfP0~CN5RiW0b6e$`Eu*!p!m@$r-r3Bwkj+Kd{hw5vx*S@{J z7sf6dlbSmzt-SNqx{Hsih4g331}3xbbL z(B5)re?FMoMm|m%?%z>XXylW)JRDTKt{y2}I#`sp8M#?yQa*w;P|kj?)&^2O;P;CoU|~B_0Gc z5>-OwW%nlc1Wm=$86oIXdK_2Zj+QS7th`MlkE5Jp!&r({%?>=xn$z5>)W1Jo4KSQ? z?E^C8H!qUzPf`0A1gRw;S(|@dh^MNSJMA#sJKfz{5!9lyNj(|xdCBkv$L^&zjO+(X z1>N{9ZxiBC0vSQcVQ!JRg4_-fmgP2Qf#VEqnDHBO&Y7iY1uMQ zJaxX&KYT(oj8fta3rDknK!9%>7wTjqQL^=E1S7?#it@5^$|G>qQ=x{N^ia{fmrW`sU&Iaz4qI#kLj0b`uhi{t1M!(|b6{w(baOdg@_q3m!=gT37%tJIGWwl| z>thRd#1Ks(~$o2aZ@0`a+BFk8f0sKU2im8tY+)MM+%z8hvWtcWRc zciGIVcYkW=pZeKF(6)ro#~Y0MsPxdoLvv250JTEQKgg~E*zpvF5o>~Pw5OVqpRZ&7 z9Pp)|Q9Jwh1b2#*y9YaN3k zyKas*IcwxR8O$5TK^gTWLU|=qx63?qPp2^KbSy*e*VG|nrXcP1;n*tQu)QMm3A=R= z9OK?S<5RRO$u6;)~FSLcf zo7W~_!?rzajD$OG#=KXx>-BS#F;JK^W~h6c%)k)gK`j4v$;(R0U}w^Ee%2Y*?mKiW z-?+a_jERMLIwo2SFNX6@_%+;m(`t41+NZ#cB6?6Ko1RDM?PtWZL7!fVlfQp27hx;% zNy;uf#0M(nJz=(+Q&cbMDthIkK=-ho00L**)6KqE7H(f2+W`~&-LM^$O~?-u9V~tV z#2y$uF?w~Sp%NauY4)@D`RRGK{3)9olRZh7^R8a5f4bGI9N5t;KB{K?1x)x3Hmdk! zS)tF^wczR{BgRMUBK1)_&~&z3o9jm?-p_K)P{VVNe?0Pw%)i!9GmR*rI;8BN?*m?V zuD6SV3ay8F6N&*gz2*ku6?GL&5qRnL=$h^!g{$XT2ptAfuko2RKrSwFfaRwv3lOWB zZZTFIn(yEsl*KqRH-$=J)#dk&7ZAAlE`PlF9-(UkN94zCcS<88Udy*_^4(A}W?i=| zStzK+xI+NF1?;dlMlqw5(}qs=MNZXj4oy5I^GCCHd|evz&!PiO;4Mi5SjT;`L3* z&L;bkG<9%DHup5SM4T}vFkv|;^QaLuq7^ZUR>1YNcr-8Ld6F&7{UGpFKHXG5mhWuX z^ffHO3`_57ceZw%K7@K2z zcu=OhxHZ4sRvVwv1`#0J2H_5ah1=~!h#_-{#V!-O@k~k8wUe1&8#TN?zTNUL!rV=+ zFkt=I-x$JHL3kau(M4o#vpa9yD7Ziht|uD5t%jU-tCJ$!Cs7D^=#QXIhe{{GVrXNQr9S1fOt|%$Y@66q0u*2?o(SLJFZN% z9*a$Vt0egzyiEEqlWO!;PK@ghjkC--LzN6t11t>d5y0iQpAKUIpq!8jS~kE zkdG}v=tvYqD&e&snaSQL=~mFY(a^c7;X+2Id#NhO8Fg(?7C%x25H2+!N8x_EhG68P zM4~g!R#ku0r%(<0WqQr>25#p=}ifu@0e*k206IOdb$_CUq^^$+L_W8p{{n zv|P5Wy?G@(t>$+v9ie;q->Oq`anI3OFJDNDKswTqPkmp>P$6~_h{Ey*~o90bjxv{qiU0ujC z@JifvD8dAFVR)ko&20mnU41z>lUsgs`YrOECqy2#VM-$x)9^(Q6qyC{+v%I$ z%&l@YAQ})AR#iHI!%mEkWs98@20wbfb)qp~{RLv@f92Mr$k!H_gN^fDQ&j8;;Rbkn zKwk}l+cX3t?&bCS4Qy?NoreSi_ZMQOV&fYX&*Jn7jB4zY@Tr&*7Cqa6(&n3i!*k3O zbXB}$cy*)|>=&yd-vbp^!8=cvd6v~d%Loucyw{5x&&_n*otj_c zrb>)LDvL{G9IPcgz6={(JGpk+^meppeDb%mUv_SG21*lEHrN-L&jZr!8fS(zzoXpt8MKR=24og#nzjhmfEggJMmBen@-g%+H4pp?z#$)TW{^j*cJt0~Fj3O&ej#Ul~9 z!48g>ck$L^=O);yqJI@VivXKCm35SzT@#WfhNfh?@}cU9FeBpmjKbf$?yP#kAy2V& z(Z#>~^rc>Km~_1#7pZcFxR7%GS*^rjt49^5A6<>Hv%9=I0U80ER~^_LXGLpCJ& zokm7X$6)e{HF2-t!@pR=oU}LG&2#rTXD8Q`(0K54&5>91hsF*hPyJ@HY*{XVS5kG1 zEUAsoAX|a2BC>(^$RC7Hz;4_vf{oT|iUFto&=~$3i^~p73%yf=W2h}c!l1S-Na8y1 z1T*+Ph5sONeR^^EuL?spd2$g+&@_#W{6oX_qKj-$wM~&qz*-|6VMnI`47F1VvKKRq zm4qw=Mb<7dcf^uTS|L|&S08tgq(M5qa0m9_Dufz8W!VRhE6cz`I*vL7sY1O}R+r0&LFR; z0J=IQk(k$BHocYXdMeO3L9(yn}{1~1|PnEKx|ZlC8?6aM@?&$Z?~ zT`F_P%uKIZ=|Xq!?)FcuOw|$J8{ITX$EOxmzRj{Pu529PW5f9BnyLxgk$a42<~iBo zcdC*8{*kZVM?J&6i8tR-k!EU()73$s43igK9Hb}8C;@+0<#hOXZXIc?eYoiGS5QBxvX1YGa?s>%FTNu?Ryn5Z(PQy2E*3I`8!j8(9( zO3x#r@aFf0<+_FnLVH7gBrJO{<)LAQv_XB-u!m^c&{m1YgdZPI=I)}&n&8_>k*nXl zB?p>Sku4fzN78-3xUB}l2IlNVJ1Si~{5-_C=g*HX>NHf>#hfOYjyPeH>BbhWRBHOF zq{D=#B!!=-rg&@z|DpNH9IipPsv;yzz_z=)sPW@%>3WTb_s{{j7B7FKzw76g>|9Dx z&&=m3UXP6p^3U9eU;4F_X|4Vp;Ud$aGA)5JcYfhBU>D!OGe8m{f|M6c_7Oy^X;0y>dgRB8d143?7e$cbD zmiz>(Mrqu~MwRTaWZ$Gpcw<3{z)?$#eC{MyU}Ea;Kw_5!(YO@atRaB z-rF1rO`=I9i^Z}N@mH63~d@Tjvneyd#;Ke55du#x_++^$geUl82EO1!<>QFd z_*%y{Pfn?qdGm&Udtsz3X1Os@8MiekKRJS8^t82a(b3I3auB>;7SyOsGKQ0IhwYIA zp`ZkKy+(Y#Ej-(xwh0K+NXfC8g})jnX=AWlh0C{|-4EFOta&})ayG;8g_Yz@%c)m*hXMn@x}5GNukLOy6Fo{VLYo5M*{~z<77eMO;M1H!!GBY zE>8=W#PxyA64;DP8!@-7m;G(;t$w16&=y1}^!Q$0V>_=BMg9vloksACE)!}>Bq9lz zHf&{AELD_0TDxV?AP>#t>dG7jV{0`s8;9&c{a}*%D_3sDRfxxVt;k6$ZX=}w9Yyy> zZQj&P{Up0U5o}s7XYXkoPD~V%*LU=cht*V(1dJJs-3HpX=)v52lab6w9loku#3$(g zfD4wx{Uh?4$m*)7t_lzB*F>pz0oQO{EwYR@l$xi5VqbyBrA9vfiD)Vb*gzMHY6>K(W+xBQ~*|vvta5dIHSNDEL)j^B1Xlt7k$^##cSs7i{{y z(|KlN){iuAZ?lV?WbXj^Y*@$bu(am79mArvK*90`OtO|?pXj$J+sb~ZYW@Cx-)ki% z>z}UCJC>qR3ro(Q%>3@q@Zixp7o)DoZ7iV337Q&MoBM2ES10B&qJ|7;#^2jk+>#s} z`W3bEho)p+aZT#YiMKi&CMUp)*27}cn{-3+k(F-F!Xu&Vdi>Yoz)P;R4IyKd?>{$G zdL-(Sd?kB$1f0cKG)h_$gF>#O-cvPwbcVmz@s;qeNE4?RS>>mOxXcdpyu(IkZPP)lL;4%7?Dh z4a<9qG&R)4xTh-ajTBcchxT7(p7QW4-4z=OMHxK0>Jiw97E-%U>^*o3B5cN-2(z(Z zlmwVA{Fpmfk~5MuL^krucehAJx;#)Wl1Z$(-M`70NvnDLodi5*R;L=dUUqaU!KQM1 zK=k>7%BV9WgON`6>;?%v zs@c3BDwsv^#9sz1jvEX^gz>(y5+!Rxe z$0G=9>@N9e-98;eDwyTHA=4@?Xmjs&&zJnw+JM%lW(+_>{9Jmi$Kz>4B# z-HmNiOvu!A`s?3T&E#h@+3Vh2VHPlxIa{|t9Fc^8hF`2ss}XVb?4{3X>|i=G5p0W< zxG-?MI|j)}LJT18P$&6_0<2u=|43(kq~w5|Lvny?)W-e4`A$VJ5BYs@9l1YX^oM4M z(H20ySu7%A@BwM%F(xj|z$gi~9f2JRLYv#-2w0ybM`(ACd;sndQ$oOz*~d zq3SaEg>txrZHOE|n_LnRC3tQY{H%e;u;)jJ4@pZOguG@h6Gvi_M#wHibUTdR%E)J7 zn|5{Xs*g+iEA&+Prv-Sex@Q%|2``o?O zTHU%k_sle8vMH{iV6I<mWS0h)`{r}>6`NiR9<8GQk3lEXu=>;XE-qJ zjzghPLhfjeuBXkH<0McMHUTqdQ|n0z48852CsD{*`KfdMpC0?N=vY&VH0a$Rf*O3T z$*(ynF&SlmyZtcPIH#HnlZ~2C<~Dd9H*=Y#Q}UbbaM-HD4I`r0LBXim zq9su;c#q^y5o+!C&=54VxEUDc<56Jjr8o%f9MXF|VX;k%X&QdZT4QOoWHzKSre%K? zwQbx+72Z-zZ-naQBVK?T?OOx{xS9(G@#|;SZfPm+#A}V7%-kW^tgane4Bj1{Bp30|sORQHN{}+h?WChxXOAO^C9~S+MLizMA|TXe56Vw|04a z;Mfzq)t1?!c7%>ch3=5iWd)d&m?z)lSAVQLAUR>jKe5qhjUx$K-fgZN-D|oxr;3rD zHW>H!?-ny5_VSnY{O-}FvpaJk=JKYOJsnkW8X*c8;n0lM)~jg&Wntc!fSalw%90WN ztQ>CXkM(?gVlQl-+xYf~OEPU$Pb6b(ItLE_dW^Vf$CZ)%W>{wY>HgQ_Of1f;0no8g8QkB#q(B+GMPKV?{^rtYId!5P6Ui9x#0yV393aOxt08P!Bk+dB zJ83=B4^ZkimrrG_jj$_Ke2vhZ>l| zc!@gI%O$E-(BEnPYpWbiL+Kj_#Hl=VUfrk8^H0S;QF7jEEX#qV1vuEQTJpx`)O<8} zh$hwcoW1t$1jt%me9?pG`~Iy(>8O^tf=9mx%VI3efpQ#{4IYDxUwIHVa0?iZi=FV8 z*k~ymWkUue0=wJq4R=~x?c#Z3T!$&X^DDKYE2?Hy1%^nLp!X?O z6t*jGX7U*J1zkItW|Aba_aFmGOU-gaAUZjD?ZA<^IS^!al-~B*BC8k*onK42ncelW zrbHxf{k_nw+<2(dhS#^2G7%t!;A_+{M&*RNw@gh$?Hj+ZNp$6lTpNTZ9OzeNNJw|o zH8*3U^L7N~MjzgKFQS;J2Ix$ljy+{@?}yvw!{f2d4?8Bf<~nuAH?xoDaXX*(TLxC_ zKia7PS$O%=2w}o@tYRz|P%+<*WUpf8Qi=8yzK_XJ?9LqXc%*W*wQp%s{e4o&P=ex= zz}9!$wrt>g-g*OfM;R+f(PTath?L19Hep=mxJSv3VCCr{SZH@ekt$8HU4O%EAjkAAw^KM0KCf4WuI-KFudL*3-kxBhFWruC)mpL%%C&Ha_u z2a)Y*^AR#+e?q}pL-BD=siTp$VY+b@d$4mr^!4V{hhaX68>V$m;u+L((?ODXznns) z2%Cp(^c88jGu^B2T>QNgzXTb7&dEASW3c7w^7#$8R;h5vlMlOc?R%!uT88l{gjWktRevi5+n(y76kZ_{@@+Nn!lQ#a`Nz z=VFcevxx(@^ryk?AQtf`sKx%|-oW`bUwo1O!29DSP&#=C=b=C{8<*KTI%Qb+(5Ayd zpjP9hRfo4|@}-|0V)6An_wAg|tyKIV#9%7jEJhsi1%s?!H^z=0U$|BDGxpiA;@KHa zrv2q+3Cbs|yKp#~V{afBMN4ST&#{6>C{I)wbGd=%yqdhJVB>7{xKIa2u>)V$@BXg7 zw4HKST0HS_Wj);#7@KM=iDHhNt0dFsl8^OUR9*Jd9dEF=kK;+us5XX3UE z;e2f#LXcn_CKJd#?E zmAlj|1O(jz5((7ZuA4%MpMTCyJp|l)pi*p%>-BOgh6P%4UyKx=gU3A9qw`>|-oF(< z$oCD-?d!~8RK*E|{FgNwy$CX6aaS?Or)eB4*^>29H#^{c=KK!Yn_@m_D9G=2f@#2?hSokj{#)}6!WeyBZ5%XyO2&Jh51GFW?wEsg=mrg zWfIT=HRAB<(uU<@Ti%s;=|Pk;9(EZ!YzG$;fP zTd9KX9(2dH+WK`vMk|xB(x)oDg5TgJ0&17y;(l2>(tPYvAxJO6BB`ek5`?@k4=>!T zUPnW1Xe0Y$SlOECTCH-gUzrFgWN%i^zK%Zyu_Eyx4+5 z@U>KhGchmLt*J7g6ppbuIE%cXawJ{Z!2h7^y`$mm!>wT=i54|_jTRC?^k5JXJxcUG z(TNrs$o`#ER5-+SJ(&U(M~{V}ZHm^JHm-@kHQ z*WTCOP;pcTdIqu8-ywkD4|dE8c#BSjyT&_h9wvgSSN0cf=F%2y zzg0IdBv{GXr%;A{@XMvfuH-V*tx^7iqrGsU8Hr__X_FueKEkNyi5A{Ol<*BkaVJcl z@%j%5s8?7nt4u2|a{U<+XIts3*katLeB9Cs(!mm)?O~a&;jook*4O`0*nXCaFbD_2 z^KLefWd^+&>uV;+!f`zHEiK-D#IMeFz|yqfJcsLZ6|2&9?QrL2*t5nh04?(XIKOJR zzyzZ-IK)4y`UmF;1ju<7`v7*3k^}e~81d!<{(vlyt)d>x0RMZw>YdqLYUef?{PdO% zh=P=ldG|od5JWQ=15Q?Qjr800WKBPq(8-VC-6U(F2p)Snso^sQ)bNB&k+#{e1=mLK ziqZ2oGu4@|gSE(slYNK?PZaL|af@+JsgDb^f;*>2iZ;FA*ZJc(ko4qhlZ?YV8oI8* z2mV);nd=rJ1czNV_YM9)Xk^&L`^lCWm8USgrTdbH`^3_Bea3;?9%|&@@}KImM3UvS zOY<&4>>(^Zgp5oKkasOx(u6bX-@co!hw7Rdt5AvUP76|e$*OUl-xwif z5oA2gP>~Jl$}xRyxJEmf>z?4MG9)8E_;(B_?zQ^=?rO6`qXm5e{f5vPN>Rhsp8W>sq zgTvwmY3jTo_?6i8X7$@eg(egFu?9L6cI`Q)!NFBO#M95{xEWu8dmu!Je`sP?C#p@zg;Nwm1UiDu1T zv1(%Se2@#r&H(YfPnv%uP?cGRh=E)<)!WYMnvM_|tC-!jr^@4kU+KtSp{n@qzRNsY z3s9I6X?C#@5cyp&q@*Zgu7Xi#ZAc$HRzrP8tAdnD9CJx8B(!Z~1mP=XmWhT(YbQWfsw!zh6# z&60}A3u1Y19|y*;apJySqz>76b4)iN7#wF=XWUQnXO#N>pCUZx?R#h$FBCFlk0P#6-dcF;r2pdA2CaxVk-JoiJzJ{yy&`71qolBinC7tHE@d zxmkBvvQDnl7z5;0s0ETGI&a^c5#0=Hm+zN(et8D7+0i0U%gh1eXzA8!9U z%Bm^uWI0*3BgL8j3d5**_KJf`s#CKc*ro4+;LdO#cY3* zsSj=Be>0(V%YmcmX<^qWVZ}e35mwdT9@0HXO3>Xd3wU0lR5g5{tKV>r(cdfB@G&3M zO|WilXlPE@v(I=M&S~^!%Vo1`k8W$`hgWf9*u_MHiADp1PgCvMwkluBXsE>az<`0o z@d1R44$Xb*Zok0@vSVC&;f5CP16(m!!|KVaIG5)Omra+8www${0}w@#eXTMPUGd>C$+UcbT3|O zljvx=bk5x2c2wP9GmZdKy-uD_Zy$qxdD)_ZSE+rxMD6!9{dl{?Kbd07uamj8S_?i6 zy>n|=8wz(`@xfQDn>l&0HSJk?R5|1rYh4pNvrqYac$#FX0KejADXr;jQ4d= znuMy~l0-@~@m+1qI&eon$T7L~g}mC*dP%MO35O2H4_9YO0q?(u?EjA0TSBCwGPv}7 zzLUegaJWeAHt`B9#dd!-5WnJ9Hi^wv)p=2?!a+~iW%`VnmWcN^(kX(K%haQ-!m*t03Fgb=1B-+c_PVQgUmXu(SDAM&EOrPK6k3rZjP@cK6b&Kn`ODg z9o#;rUB;Rb9qa*oNKVO#$a-c-KUo2~cp9roqTt~8=$NydDo*>w(80tLx@G+P$jfg> zb3j4aKj__gPQvNLg-nbqp8cRk&de>h8cm}%p>3G4($47So(KQS!6)v%n|jfnyat(s zG80bLb#^{ z#ywtdmW^Nq3TmMpf*+Tub0aUGo$ew@zkoEI9{i}T`25h~UR%*OUyW&+_l&UN7;`~J zgK(grN@NyT7VsFoQsrn)9nlL!RK#AlP;TX^%^v^_noxvtT{IOxxd8|#(T)XiGWX)lw1h*0~!;tq;TGyn$OLop>0n-*wf>FW25>;^Bh3&evd1DuQZ^9K%JBQTN*^Qpg# zRjti5h;P|EYy6yh`KN_bKRC_|vL~sSyat*r>9jO>3Z8#c%N#APLXI5<@Ha6}jTS?^r>YUI}TP`)v>1oAhmN}jayv%9|e zxlGetitP3>=08f>fbM41+bYmq%7Cox#(xyG56vUZ0~#gMy4Ag2DE%yXuWY4C(=`G4 z(|pJpx%f7odE{+!)W$=l_%rHA363XNy|zX-##(~ZM}P3>dhc~T?jCH0cNl}I z9U0P(MTM3O)!ZJYJZQ)~b-kUlGx+TFCx>Vo8#H%@QTt)}iDlf-=iI~oqEioRXG;_= zS*fc2G%a$rZ!^9iG(r0L(`It_uH!C=zY?#Q166Rms|4)~Nn*nYXKzu}Pf5_v+vx}$wS|L55ghHE>Rc>gKQUobsLuVnQghXA<| zbsWU!lQ2N?#(ulLzP70zp;u8okde`!xAE<}O-S_9uKT+k@w%ND@gD}*RkvZ|h0`0^ zGZ~clcc>A6VE0RCd9Z!`ti$95y7@}!V8*cM6W6ma@?Bl$nvPZ znISi%l7FHPLeuTV)-b=5(+^9Ov+)IwdS$Aa^n9VJHF;&FuftIZIG_( zADrBOaQuo8BX9t;i4NijCmd<<9i-QmlvvwITfbebcI<#C|( zHb71=*Y|x5`D1OEk$x&b4>ad)bkzZ*CHp4{MMj>jKgvHD-0`X(>#=O>qBTp%Hdyzj zzn$^O20(IE$y7Dn(*`M!kWKSMWQj)1g06p5ff4mKITL-7sm!#0Krd7Ymb%IQRNIu8Yz;0l=Q0sFXAi5GnVhte#rTT z4oaVOO@{qrVF~L+I{xDojUzA6Lch*{O`^DGV2obnF|T7o3no!*$x^0jwCJQV!nGf$ zIf}!)j~~GKcny#ny{Q% z5(@%)3=vO*fk*ak*)=SD);KJkg)bf?|Ds{~F2{FsniAi(S`CUC^LT+|6{Ej5a6r9r z1oO6S+qk?c81s|zgMc&sqF8Y;v_%;G4&+W%D2Cg4t6gK(a2=h@%(5ox*!qc_!2B;y zMgfbi&zo&r28fqiVi9(*lkh?yqGclFD2OiLRSm)}nxAC7>Zcqmi>Gc(-(4%iuEDTR zyIF9+Te5o8;chBX5?yxdf{ujc4rUv?PVCBbDcjs2JurTlSavW17mGCX&$iSHSv1}s zbJ#IuSK$n@yRlRzmoQu{Rr;Hb+C!KJ!-%0K{oW(6VAiPmL^5L&sx&P8x^5-IBGWU0 zU|CbZ$z=72m)xSc`F_$O#b1vAdPMd@&pbk8oer_OPUI|g`ve_$(L|c;6yiivyx^L; zeaslp-s(0WXlTxOmn=gAIAWQXZ<=wy8hh_}yCo0XT5=;R+9d2;3lB74ddvR0aq`bT zL=k#P5Ojp(%|RT&k;_U^o+Mmt?@QJWWO!>r-%qpG7`ZCU)on*{+l8C4N7z2FN?Lpo zZurcS#BH4lICNqHUbUlbejYAk8(m??N(NJPW42pw<@gKyEk%iaxf{b?P|&0)CeUva z#en~W?>y&t5d5c+ejkg2rr1mj+aO!%F{eVfhG7I@Dxk?5{*;21C5IEPe{hT+QLqn2 zV)tUm2j=b= zCL9k@_^zeNG#7n*d2jb=6t|0&$Xo1AA&1Q9zR@p{h| zO5xzd6Vod^Wr<{e04Q+`bp zI0zqPQVDezn-AMDuI^8bQrIe6KdEzM&&MZH+>HIPY49Ux49w_)ePQpX2RJAspS+wd z8m!Xz^y;EA5fzV~m9+!N+Z!>RwYCecFOnGp1(ZYNsFueIJcLY)49ma15xLUt zC2GF^Ed9mH;-**Lv?1l;UY~TYIRXtb8ic6zG>j{cmg>3Ph# z+~;S_3*i-c|Hi0%5)KR)?1mO$xYU29D>d!%{S>e)Oo2M?8o@DN# z9H^A`x~kvAognId%FxDFXi%%Lc)-ADUPw>XV`Cq%L38UYND2mdyf2wkz>ICQ<10k% z4jd5s>Op&?=mv9YL||>DvjInhT{rjzsG!ex5RQ0hfpcjKh~-3RHHIs_ix`m$i$PQR zS2d2ns$nJ+g(@E1=VK+Q+ZpaZPoK30Pf$-A2aqDnvmKepedK#4<*0Xxe%Xj-DOjYQ47GHsw$Xw;h8-sRa z@q)AG=+~dP`@z?crxhBJ0;WGm@KL&G zJ4AUehXNo7--+vErEI3iXW`_TNNTiX!iTY@JLz*9pwbA}s`$QI^pK2t4}uHX%wK}|dX=Es^8%~FIf%c z(#hHZ&12Zf8|sb}BwlwAC2~H=&a<%r#lk)Xtyi<>CYXv&mYABeUOZ|2vWoY6oRC`e z9A$*I`-Sf8HD_x@du=jSk)xl_O9_x2B%?o%or>^qOr%p67E7a$#mahdrCJ&|m6Cg? zQY3y1#1hI1@Fhb)e6YLE>YA?;`}S1k0+eq8crBer&wRbLjMjW>9<2N(NM-fjFeik! zi330ccO4=jWwW&^HWLyN#9WdH5|oX7!Sx#uM`*lHWAB8@P^oV8`q1cKWI-Q89m~f? zN+3gjE8gkav5~^2ir6!T0;TY-DCx_0$*~>qW#k1VqD(7nS*1C5au9heU z79AA2u4>926ctTe+UqiBL-eDfOMSSzuWn>YihJ|d7FX@lYF5k)do+_AIGw`H39guv zUh=em)8jo|w(DAk^qYY3hT+b#SjzG)5TH6I;>s4b`a;G%FWSalF4gh{ry#87tB0vU zf~+&6Y#3nVry1SGw?zk%h5@pY{=LiQ)j*ylI^M{gEjpg(%~wbhF}oc0#wO%7ovEO$ z{WrGNb(8jG&24G%K+>F3lmJ?;6eA3IV2XK$wsG4WY%`O;y{AdE*pTL;EgEenHo!sg z?QJ<-U~34E)+b(hAfLm*km2_p>-We$M5{{SSvir^{GIP%7eO#|Q4u!Y(I<;VCazIw zXSo>#G2PY3F!LDvEA;lJ3oR!k#t8uq~-wYZA zg4UBc2oSab;D9-|>mkJjBnvcwB`_rlutHbo$ih`VK+Zm@-f7)sc-f1rar8$&`__!4 z`fdpGHNk?8rJg+Pd;!@6)Xn2^sa2RgrAVba=D31#v15%ga>z>M>&rT(D?oWGqQj#v z@tVaFV8$1E`v8~&yCf?NoF(n#lQx^!3IV3?Z6cOE5v}43Y5rfM+K68S^v|xz5Cykd zekJ>0oWT8`0V>X+X8`Q5*#T@sQ5CE#J_bD-R3gnzAcdd3(8V$O_`Hs(qHLn12v!m6 zFLKBG2A%czzk=Q*9*bUT4r#rE(JKt7?&p9vtCj>{3q6NW?Y(Xk%M(QWE|lrhghvV2 z!gmTnHZ3)#s9zo-_qKv3&&^w%;l%cNbl90sUq}W9Hfycoa#QG~eJ(3?2K}=73)eN0 z+XS3#Ktn^fhC(F0Nr`zt>bW{~8aJ}h|hYC`q;SDS)jgtW~# zLql@I@_}>cFieRgKt$KFg|oo5Renw>hHu@3 zZ2}Z5!u;PMABICeE|1=fZGTSj(FlC5%+^-h8do`qRO2i?-hEz`l+^TcaQd!N53nFr zR4=UbKgDp-U^5f3IHnLJRW2gg7?Aw?2M5?au2?Y&zWBg`bDoI63bm>^ItT6cAT#&P zCyXagFHD+bCS3Tfg}QxRsglTQlZ0sXC(KVCwpwTzrddvScJ+e z+@IdS;j_wpPgC}wwCQWqamNzMf!`=qo9~D+?BuAelQ}%7b3PK-`FhkG??(Q?!O*S( zj}P)+N7Q>81hV!U!~wp)JK7M?9c-S31y7v0X8!u(@&>QVl62t$`5^O7Z8#S{U#6j{ zdu3OsStRP`rRMba6Z`+`7iZs9U5&chtA2W%Kp2Yzu^}Af820=@Bg^m#ACUG+#;O+ zAJq!ws=#UpGb8J85Ctb=#pQ>h8W3||9SFGnHIH)3^2p2t-h26wU4PyEdQ zcDe~LA0!pWoLO@gB4}oli1F>m0tfP6_GZD^JEe2#c|(A(^aFe%fDL(GfFN(=lIHz# z_cMUG9NpPX>-M*N7c5Hm@9LbAzArt+Ouw||N?l#wA z`TK;d{Eh!YVvcsNZnthpESh2ARLPu1k3&y2Z7(u_?(Ro`E233n=BJToQ4&WyXZi%^ za;e1+90|^QQlXirKuLitd|e!!u{k@1c?NXi`M5LQ8eJUQc%2fFk@rFzpWk;*3jDQ3 zX~WnhgMZfi|#jAzQm z3{+Si+uhQktGZ<*(QnruBL^d$+Gr6F`NZCNW7|epY_@^^taDow->!q}%==)_e9V2K z4O=#*+LvF+^G}apw^Zu^B*=tNz^uBvO+7zAda|-jVAJ{4zU8D^B^I8bMFsUXPNM*eNUG2%dL+mAn7R1FS?Zg1H2Uvi1Mq2v5X-AL*koBH-Y2 zp#QSd!pzkWT~dW^l|vpU#Q(~r?*@*lM_E;*jIe@_xr?!RYYHBKD(Koblw9Pukafd# zMVqEquRDrvWid2ao1GDtJg4>G<6}slBy^x1`jOD-#b$GRu04dE8RS+&PM}xo3we`~^(HoHpqJ8H=r7>;`|Hu7@Me_~);Iip$m>TGo6n{9X-5cl`fo|*<`Ky zx`s~o#_h$bnuZO;AyUTWE+4Y_BO1A9K3}!bC&@H_a}|@`XW+*j4SJc04R_C75?gjn zmrgNNVD6iWwE$86F=9`xvH12Y6Xm*;yIIIu>wR>!nHV|WIDL@TK`>cy!Q*P(n6P$| zyi6T!EjW0__M!QC6A(n>-D_!Q1-9mkEXPB}SpN~;#bkfSC@#u=H^x%yBr|s+p|A3I zAq3I~J!`J-z6kk0P8_@}VV0ik6fIO&uyt5}IU{NY(VB){5);R3DpN2XzN*w#i)G{C zqev6wO7ROZ_{8|-)usV6k`~p3HbO+oBGNGL(7rG&ffZHR6&B9g-~I4`D=(7-0c~- zC6K2h9dEL<(xi)(5yObIoKbH=RK*4ez#W|}$1aKK>$3HU7f+qFHJ|N8=YOVrTZ0K- zc+MCi2XFb}@s6MGzsbo^0l6Tv$J^#QN?&!!W0JVdn}x9!&7-NU=nfuqXkTsr2a>f_ zSCY0X4$so0fr8W_;#3eN8TCa+wV&sjj8RX7VB8lCT+yM$0NdL1zVw^7Q-$8B2m1DX ztL<-oO!JYEnmyljW8C-KJLCZ;rj8=g+_wXJQtRWp*)mFgUPygBKr&$J_DuA zlG&o$7YsJgI2I0-(;V!yL|&w|AYb$l4z{Jz(feFCY7E5GJXyb+xVw8S~E=2HOt_(IN ztcx_vF={onG&Rx^7&Q{p3-Gg063AGcZXyD+%+MP!GNMJF%u_w2L4?Q%_(8sG)YH~E zKun&{Tr}1AIQvWELotJg>dpF(UWu0Gh);w2YwYoKX0pr@rlqb$wp$ciW7d^?rfs8` z;ZJ?msE3w~=;emktKDMj7?wA7uG#ua4?3$3_WrPt0a2r(k9QZCx{VfYVu1FlQp2&UpU(Hdc-XtH0 zE;2E~3-V~$ah+q<`2q^*7CfX$S~>LYbjeW+G3l&T`(>;#9V@l;!9Fj>SMQkHR>)wX z<{j>B;g)P7lhuNB_5NFL2M(3$f=`LRzkOPC!V67^#Fu?T<~P?2{+@cW^cma9F$}Ru zTvC)>iWoSf^IEzrZkxK0=4@S#4J>#!lRRvV=f5|))RqVv7g`)fQOr!&2FSs)WqTy4 zcgxDbhWmcDxp=E<>t?HkVyJ5N6JHi3w)a%`R4iZOiqb}dybI9cy_yw=43+6c_Q)^+ zh_5$udkwzV+tJE5B%?#LKPUmHXLQ4)x}3|(JZ7^^;#M0YicF7cQ!DtpL5{&M{|HzN zv-atW1+mp-?)4rr3JonJm8Ufl4IK=;ZsO@W6Evy~T80ofcaZiYNx?C>BvxpM^l)u# z-!VLkqCn-9WifS|(Dl=IYp=7$ z6_aHULT0-E-XPB)=gQ7_@fjVacRlTE+}A*!-xDD8(ybs`7WHN3X)TgJOSI2pm?@sC zeS5yfC5}A)`=UE8hx8}6nV4NHUeJKCz)`QOXjO=pnRd^L_H0DaFUId){7q(hv0WV0_&k;3p&+EyU>fOC>gq05p{pn880ZSZlk}+nyglXTDjWL zcZ+1@AJm>4Ar%BNsnM_vpn0sTgAy^<5nqVr?U6K3vZep`%YpL!9!Lr!jUhvW``x zXfO)s8}8AspLMC#?H_6XK3@W4F=X4`2;yvRwcL2ngLS4N1NL%_ zjW-{ok`T2%>H789HN*tUJh*72?4YFtb(fn`bZtP{Eu@iSiw<*rlvntPLqB@*w+*lE zle>Bua#J6>UdibIJ+%FeY`j2c4MsYs7D*I2eG@x_V zl?3evxZZ8VaJNo@9(X}G(`;2vJE$Bp`+-2X;0ag=i%)Y-@)L&xZ$ztf$wqV;b6+oU ztL+)XKvF!rdpQ%yz2|r3>H{1uRxB~T%!lph$`esec@AnR^a1V=GZ}Sv00EFYvi3e+ zc-P|Op9K{ceSf5&8Fu4&hr|Z*fQaO;2CpxQq)E7&)vS7fbqT)b6WhQ3sHtYsnX_H8 zycPy9(*6&RQ-eAIN)w+5&`S1-u9!Q)fZNJGnD|i^Z<@#D z;%v~8)Y-+fn76bm)ZnJ1#?7?kThI((MucS#kV9u62K5n^Xx3ZVu9nrz-SNXUc@_VwI|$C1;lZJ9MNdUThc=;J{nfIMm#|vzX>7n*#e`(OD0_Ho})u{ zZ}m;8B&WS6Qnz_GOsl_Ao^k3=ebeO2=tymuwXA6hp|v*RXLM2>r~1=n9X??$q#=p( zu_!VAB3n(*kvLFCHRp~{zaar7o?#fcsYR(shM%wz9@r+m*79!=gVR@FePb94*_}v} zk%V-EL~~;{>OZ${jWB9P(g+=n<3B7wttI7A? zw-9SC5d(QUaS-P+daK)bA*>1{$2=JGBt>(9W|tSwrsAObqw-(GiB}GOV>F#J@AGY! z#E+Rb#*T}5_H%`CA|(VxUAA4rT?d~eWageHk4%Q{@9S6}wStlQ_bW~UMgR|cfNg!3 zgfVcy551fqaSWoL7m;REUf7<`&tZPEtS(6#I$n3y$e|=8^Oj%hP4{#ZnU-FEb4y?l~-SAld5e0G2bZO;62~jmh|w_K6%T(!d0|Z zN^a+ctf%>UZ;A1+o0|xrp2WYGY(NkttpdWmEGg`6{7}Z*jkAZ(OjhDLUYEMkYSnDe zYwSFq1Y2QLTeu`}ShIp#1*9>%Yo>J@(%32gM5 z-b^XG-*>_tatiIAG*+;xX1u@U;&zQq-LccP*9U47(djQ3=BjjE!+*f^ zREdsRMX=+Y4};hO1Q6@rs`8UQ^KB6rpGY_Cad^BO*U)`AcNW zy$iZkLR^K5>Mzv4opvpmIjuT@H(J*k7Dt6771p%HrzBe?GTF92?vbVNoS-)`87pZS zVcr;xqZ8zCIdQw_cV06ebRZt#D0J&1^tPmauc*R_!XfR%ww$Bwc)LF!&LSSVXt`YZ zudXngLygeV6n3%tw6 zxu(2U0u?8_ITJo}C!vOn{4>~|#K*Vv1OZqAIfxK>WsHu6N&EL07#COl@(B^PfO7p= z?k)K^Tu2Ga9|(->dnr2RH6tAr|GG z-iqaetJR`EP%439Dq?n2g?T(?F&1|T0cJ=|RM9NPFtahD0we6^080&KobX4ArIZhs z%Ipwvtguh8mys&-WZ=84T;$tC=AB5Bxm`~m|4PX@?!FV=RssPQjpCEC@DnPF3}#-;`@8TqTj;~Q zpNB0hDgGAlL~@^WEG46V)`+u#YTc};vcPt24Aofswy*+Dj1T|o_zWvA3Ax0oh9A4N z7-M0Wv_bB*d+t9tuRl6!fKQId^f6P{Rsg=>nPdYbXA0=yujD04lLYtoSoa%5bRh`+ z6WPtL9WPlgA54;AH5RA9wFqILv-Lmy__C01AxF|$)bI%G4|_{1n^ zSL!CAq-2^7!2)n4OahV>4!%*91X$OI@JQfv$1MHwYGY9;xb;|F_#nf&|0QrF@fJJV ziTL7>y9&@II*$Rw3ONXI@z0cPxEuQ{`@jF70;K2SQL?r zGNFfVz3sO3HWk3%px)~w0zHPGMq=q^j%k*cT#V_ohOTg+zj3|ym^CK1Sm!%3U2zft$&`MSK(BoAn-`%Rk>qva#gQ`eb-M8T4KBOd_3R=ai9Y<*`^1Ep11p z!>{X{1lE_(qo69P`ZG``DiZB0JE-}^{24;~Ai8)BouZN4XI}SE;Y&6C=pwxeIOQZX zH|q?UyDW|+T(Ll&Zs8}0mIi3@N5c}Ma;RoK15M-;X2)a8%>vVefA#ctsUwV5ltgep zk8Ka^S%Hc=TBqs)iNR*`yRfCNEs0Vbc+A~0`E{Kz@P5W^I_uSS`Tpcu-vEU`U~-;mQewEV{oZKb%{$w3vxe5r4n$;RNv+A9D3oR3W~#4I zNSU*#wz(zRhE$(bRJAn zs;9^2!%i6Xtw_V)0RJ-VfIK`h+PO`w>>z!e)fqhC3WvHXH8(US`?o)LbYzu!)9hoL zL-X|XU2U?8rT3dCWTpHGg^vzO0-4)G+unw-O8`lbmcU6E4tsA74{n$iwCcF^XD@jj zj?*M22SwD&%@qIcOlx!4F6)q>ULhWSmy_aGB$dbr=Rre?f3I>hbIiV*RirSeS^ozo zZKG<`+hy!RMj8k}H*=T0BQZV;%XU#anq(_JWLSz==I6UBqi3S;OGvo9$~cEMUe1K9 zJis9-)=<>1X_E$SG_nTKIbb47DTF5O``k$UbD~r{3M9+7p6B3Qv;?U2qzOTL2BP+D zTn>^IvF}=c2yWB|&B@%K9@P8sA$at77Iib(aeun-!@X5X$bRj6S_colQ%Ha3!UXrz!=L+CLeJ?LMy*QZ$wfkExudh(Z5d za*fhspLr3t>OpV4xqr9`>pbpS){Xtzcpn$|Y|`Oi=({=c6Bpf8dl-0a%mQz<{&NCf}4Z2e8|!5=_Q z4AR!vbZ1@3*-bp2@GuL($j+#y?3iwP-JQEB2jCaqU)A1n_#3bb2*hNaVLPjuoS7m~ zd(Ho`cbEq}C_Vww02i0gv4F_{{GxIk?QKeB`i$m5WADG*_2VWQ^Y=5uTedONrFRON z`N$Hv|CH5=^Wo5_PvTVg0dk^;1oVAU`Un?+F#r9u)R%mi$*vlOSJoLt{c1mCw(D=? zfA5m2e5{VtPpvSetGHAbIx#0u=HE(<8rmaL8Dw^B1+c^a<@)E$NZ!cllDa2brx~LZ z*7nTH@8Fohp)muG`72Z4ClWu2R~1!{_ZeK;i$oKk%);_49MD5;{MH& zNS*E7hN|K+Y@|8muM#~~)xA;K8u5NcS7INq+O6l`q(Z@`UA+Nuuix>UD8eB`t9PBw zAOmEC0B(R7B0bb|g4V>R;JxH&w6o~p{sojlokMelt-iS}Vfxf@!ka5IDj-c*fqCd! zS6HB95iR?shGuu=-Her3%>5T%^S^&#vcd!5-srcg)N805PRuvG0(0e$;buNMFwJ$gkG!TlxR0a9J&8Cp{w@epu7Fy7tkHt?GrD?Jp`HX@Ig6CW$ru93o@9ze85PKDDCYRA790+gv;@E{O3Myapna ziD?l=5+W>icYONKpDo?oWASM@%D$_VYX{m4ULMAckr25DjaG68;q#q^9s;$LrT2?bfLWb<7JLal=7DC{Q_IohyAy&-ybEc!9bk!OZgQ>wG=Q+u{dpX1^cwsm8lj4r#b+fQCMs1sfp0aBw}auTBoXW2SH zV2L(@Q~Vy~Ev8DCvB3qmVGqaA2f}9{zGNEYsRF@Tt2L;A=+r=?kgR`Eel*PLg?gAX{S$h7xlOUgtU$C zV>+wtj7R}$7_^_5R$wn-KB14?9- zjQ|DJXF|DQfg@z4??$o25^C{F`gYjAbadhKz66ajV!2HWRYfGidq25W+!+yRjLaT9 zrY;zEE5qoqQtAxe)F(#QWer~{A?jEtW7IBdd^`hK&0sg}d$5`!<(nWs8hRq| zveO;HpxqZ|y*1rnQY;hCN*M&uM{rMrxPs>=R>B_R|y#9Op zbjmf=bR7Zm*m8%oHKB*QZ}M6U(tL=n;Go>vghn`+#Xd)32BQRLCEsU##D7WQQNC}$ zV4j+1qya5|ccaV@D(6)m*gR>XMwj8rCqMc%!||fJkRm~4Z>If8i)jd}gjrW;QljaN z8>U_1Er*TW9i-R!+{y)LyIr_!Tn)0`PlqsKbZ$itbDqow$RUeo0A3(z5Y@V)IdelJ zLqyI^LaSB9!M^pC{%yd>emoSK-wy5mW?I-ao+736WD;EhbEOL4M=JG~lM$`~?pBwP z(K0VhOwr?5_<6r%V(QNcSW)u2zj#B_`BwBLXAC{}%uf84uHkBh+pns9jWgfj%R_aC zcUEanaDVI-nfR>=TKa?gLhxch>1+D6IWh z=Ei(nQ!YI^{86MS%&+8oWq46{nhITD>g{U{kuj4^zk~PRCI@4k+1dq?n7kExcANr6 zFIXL4KHtL{fA5TS32akd{i@mdaU3Zg={dn*FV0{NwXiC8xQe0iS8D=b7n}&(scvl{ z-0ja>Ki+eB*}jP{8f`T}U^^dg%Ekx1sJW|qip*&)@UiN%B*V4Ww)YbV-$OLySwJfO z9#%ORFwCC4n0)c>sk#tVL!F`kr@~V8-cbxHvC{Z2q`{>G*{X#Yj4nbel>4M>-;zwD zJ+yM%{IJZ^FB0jwssQq9wUJk-%5-$-s|Zk1H?6AJxz{P3lE)S0JFHB|TicHtmxJnnOdEy4+(sP)^Q{U1 zwGw~~7jUKeV-5t#DPwcK99NRwvZ$Wtr+EmbxsIoS8MjX#0q$A&fY$B5nALV?4fJj{ zw{{}Tsxf(f?a7RV=6cU`ZF0;u;xMuE)I1cGt%QXD*fi!|3J@3m3u>t@F6CEu%#;G2 z=DR@l{zV&tJdpW6hYy`{BH9>H(|`xxtuQb zO8TUA`+7Pdt)R|L#nde_f&-f6z=3#=d(Eu&Ie{IzZd-BW?uJaa9sr14@7iV5X>W$# z(;^qEn)?orVsrR)fVv57fzHLbji&Tvy{|c{`EXD7|6%UEgPQ8Ybx|ycG(mbtI!KeQ z5Q&O35fD*&5s?yFq=y;>=~4s%1tCfm=_Mc#2ptjWO+rm*(i0E}q!TZ4cZ9X*3cx*_`C;IeimNDZ!1)K&lNaFxEg8{d&`iihr|E<42b!y?qp1!+6AF#bm7BD0ORO3S_Vza4|YQ%59|- zQCdy}v6Xkt?lD69pED z(7K4c&oQ4fZIx4NjHkc+Ao+aqo#A>c08kb3C!-Dki3!OEF#@jzaFKrW2=?B@*&+Jq zfX$x!sFV!Y{Kv-*(45P^RXQ!*JW1a_=cTfFECb*^g=NNlpUX4Co?TMOaFGH|zVunk z0>3I?Tyb;-JQ1+xpZZtkRzIb2bN_))AnQx0D&7}CB>a05KT>f`>?4^J0*UQ8aO$~# z5Bv4M{d(d5nk|~ElQ5u`{q9N=%%vE~06iTU5k|ShWwvwI*gn6w@b<5o|E^{#nF;~? z|7rjI7QRJ_=^sI6HdL~3Dy@1vG|KUqWef}(gVEct1X<0i5BxTCg7$${%SF* zo&V<3NLI4M3`mA>&C{m(7-XhaK3ilFTsL12YT~NSXusUSApc`IANdC#v^!oLN7a4? zI7a})(*Hlm3H2Z2xX=IbdHcFvBZ&KWns7gqrQ4LXXYS3(4NQT6+qy~#m?_!*{N&&P!ln<1Jor9&Hw5NE!K(45TZB2l*O`HB8PV^A*pm?I)Ws!s z?W<&2N+sA$(6KL45+GewbI%bAmTgBWw~n(kHcK0m%k>_FjLTlm!LFpf zDne(SV_79KfY-lMD&=E!yN&k-F&|Wr8$4UozEAW&oH$-3)>jgzlb-NyZ7v~sOOP0qOSy%EI|6CK#xcX;$dkX z_sZMQr$_s}f{fi~@b1>l*9$88!6Cx={Zs}KfX|v}3Fh>!MERC%Q`x7 z!Ot0E1GxmF)2Ee+3P-$MMUpxf5;&=^@xlF$@r~dHAlPj0h$Y^#1rdufBcwVK13(G^ zmFlvxM*I={kJ_WmlsgnKn^LuAsG+q6b58f!jxC|D0JHu`L^^;CXUMGEjuFxW_+$Bakgg)yi-DY-}$Zo z)v)mfqiNvR5Zk6zYKDgp;{=k0cNP{?QQ+-q(vaVWIkKv#y{n=(-kbLFX%5faMOKEg z3zgpc(0z@K$14Fdz9o?sWS;sc%x&)bgwZT8<|E2>nKxYH(pLcGep5|iV^+LR@|qr$ zblh<-bRd~4?sex*h1b&zQ9hw$zIe0*C*Z~c72kwb$FvKOC8oSU#=v!;@i_3f(8Kqh z-DVz=lVASQDaJeS17`7T{|B3$vCj!x>-;%606u@J@yS_A*ru1z6shyiR>ETXOn&MN0gnSIA@K7SB;pMnMcaXrKo!+3B5E0W4yfB;Y~|`|LA$awfR((g zKb1jerE!|d4-h=6K4KRf`)0u0M^7g98<<6L!;BR3yG`e}Es~8FdQsYTjoZhT^2(gH zxF^||(%As`t4OBN-CfbfQ90+7enwWMPf>+YdM{0Gd)D2nRpP}V9IT2@o_5uG0@ZL^&N6<0L(4SP3 zH}AkyWqe)uBVRo`Kl{fr+o=3*$=za=jtpZr{(iOHjcjn9_7F&CwS^j!&_dHMNC$dU zzyE{Dm`_sGA7Kk3es>N!i= zKAV0mh)(4FpyOL4Zd5!H_SGJ9yC`ksBD1pu%Ac;e{ZL%rbX55FOb_)sF}fn$U>c>n zB5!2h5Z#BFeq9V z(YW5rUsrD4?%y!y^ah}Qet0(SVdh%k+8H&N%rZ3c7R;?p-%DaAs&waTw-Ak;2^uS0 zxn=fn2yE$5&4lQf!p3`r%CZ4}-=71Xl2^IpejeC%@*IrWSUn>YS7p-mF`GWX4^0*S zL$k~2Mv&PH@bkHr-4m=WXiqn2^xoB3>ezGcRr_;<^l%5f5{K3W2`^V_b+UQH8Pz43 z+CQh-o9v3Z&dLA!ekhJHWUzIY@;Uc>=xsfFJt}|Wu$W`Ia_ezW?Ws-?ysK#n#SSTh z3ELA*ft#^Ak{_S~q-tcVJz)Wn7wtH<|-Ej~(UBIABM@5&f3F9nXD~>f? z^cJHDao)MY{K9y-O?{(}9>?qTJi>=xePX3mJS*kWvzb-~%0o5rP{zF{hdW8v%T@)Z8uLN#NBdQ}FFRIOSZ~ z>r((|r}YD5lfbyGpK>mMg(6>5Pzns?Q2I^O%Ou?T(O3fuMXsg*?YgWRE^kTMryzwt z`GQHmBES|Q{bbfN?9c~|bbpRN^1!bOk0<(tu{bYsI zL@Da$Ea5YAiO6E=pyL5O0Zw`A2j3Jd4oAoTLvx_j15W~kM*8}(=mU{%cnp=z?W>tC zCthkPhIw>MmqsmHjB^!@td7S4_pvY+YUhU}eqr9j@)m7jCX8%Ak)8e_D4R>n!&e&u z7F8$XN3gXp$Xz|9#%Y(^=6`&toLJvW_O|@5vxK4_n9S|AxS3q3kePa%(*jBb6q!jE zZEmCIO02jCSVP{vyqI$C!ap=3Xj6|ZxHpu2f#`PpoFF)qyf&Nz6|b9+YJZ(*R61wx zXp5P*ixntKq%X<{(o=U6;}yJ=L;?|Yx@WQuZQQr{ZQk}&f>IL0lpY(55D_+8AWI;E ztlxoqGQi$pSWw4sYPYB!g?#U-760OKRow3=eSsM;qsz^==<_wdn`I2u|LzQ_FzISe zecCKnRKW?q1v54{&So3~t}GgF{t8EF%TJMwLqUq4H>Vdl62c+NkZX8yfpFbY!m2!k z&*rmw!6I`)(Ej?eS4O|87X0#`GmTdjC=LH-)boU;7!;>J!NDl(LvmGNU|@M)y6HDg zEgRgv2J1X(NwrqSkn#E}bg?!!Q3LBp>yfsl85C36TcKOpTP*1CLy4|`YNrRSd zXq@y8|Naz6)y`36;D0tw9K&ZUSNEjO+2Ypzq3OFV+YuZT$&XizQ>ZxdhIK*%vA^H8 ztc(P@!FpZm0zA)w+={=58f=6vstBtPQAx-}IOR4Xk;44N8RMjJN91AZ*KrOcQ# z23Z8e&R=D6X}l))mFL^H4fpfeJqS9G$O;SRCT6b^Ys$2R*-QU%teL!?eeop7m_JTO zpsIMZ{8dNU#jEdz*esK)R7YNWqkSCX5trKq$x`(w!j)S83U`~}Sj(QqmbDTD%kg{7 z#**ov5r6rf!SIvxxq@0QLYCpB7l(}R9S)yRsv_lyiHbZ#+dJ)}Vg$=>cFIRwSZfex9$Y&^QcB?B8S+(}{-LVx~1? zJdJtYo^Ap+Hg}#*elWXZH9RYB_f^1PrBI+fplIzR@$QN96kwZ>(K)JYc*8 zOqYVYg^U}~SZCZCL8_-!e53o@xXQ??9-@2SD)(My%7o`I&fNS~o5 znN9>Lz0rVuURZ9QCdXABtX9a{*ypj04>pDuP#@BRtlmi+J{?PI>`mxMZy(6*3N;=_ ze=M;wT<_=b^J&s)doEF6-Y-HgahFt-e#1Sf`^=^7Cn_{B%8)62kiW9!lKy)t;dMXl zLGaa+`e6^qqP%|qdcE>gMKW6>qmGKcfMq!sxrFA4RD<<*)VeofgfjVH@J`L?Lg?+q zTsN0$pdd-#(>X4S8NYuniyvB7e$|(~oVRwZ8XY+-%z+BTRnPkOps%VWKVV_sW^b?c zE!?0 za0&@{*UzZ_=dUAe~|fRmNCX z8P$bI@a_2uNT9x2e?F*A!2sw>hmbVkBx+C5iSk(yiB9BlkZ2j-gX1D|jNkJ8#ON!3 zS$x)D)nL)URBX12d@=A{(sa~Y>i8bfz7S(|4@8R%n;Or{=|swMOum?S|MT#2<>E@1 z4ue*0iuBKZ)~Vud4xR;vEK+-aI-rJcuniZ- z7Z%;1%P^{wqgu`P%zY6@e5H6|0x#q#Z(smmX4Dwg3Lm(J&!$A}!2f>qFbi((hG@Q@ zAP38Yg-kl}HJH6>j(1gfXtr$?VBJHYJ12-0;>uY@)lV_s#$JA>idCg}dFK93UvZI8U!2 zMC&I0`um6B$Wn2JF-l{*vL~2co7L7DX8B~S0V+h?c-n*?iP;N$!e%q)Fw(q;GZ+x^ z3OXj(*@2!V4_;u39&!y=p#ZT;aXI#x724vj^f}zKnX>wS@f%1vNlgZ-&5)l`K7a%X z<^2wP)8V!y`Z#Hjgl8CSY(|+b^K|aIUB%tK7qJF&;al%i-PdZ$0iA=b*so6a9hJ}>MtPvn+c$Zlr&~} z-aFyaVCx$K)kb`Le(weQAVcQ)C(d)7KsCEYbcRB!tl(~2V0`NKyKReuKZXJF4J2u` z03>(KT+xHni!M9UPkyfqrb80*?-?<<%sBfvAwDDZjh zqU*xv#9LWE$A4>f2`*d-{%G(Hqo1N~T45SSZU^dO&{PDtD%LRpyj*C*(!HPJ$P#`I zhh`bUMg-&dtops(LU4j2NLkt3;)t5ID0}{9PC*Ne9G-kNx8dFRz3)QYKr#Q#Jrb}! z$ghsTpY(@vM2d~c2cjA7223mZ(_mSL)}Fa4 zP9-|3GmV7aHdje3CXAOu_1ua}K-w*xoX-fnX&$q@0`d|unxI7X4X*0My&x1W{!Vrs zF-zmpt|hlxH9^LKwH@)6bc4~<%=W%oZcuaAY!5sF9R5de#MA(V8#ZWIa) zytNVn6>G@adhv1kW}%tv?fKk9+J_ez;<*YCY6Zn;$5!A;7in^XZr*}tCH-0r1Qf{# zoKF*h2hy(AfMk4eN-`gQw+-O8(`>vFsBzgPz7)B&J+#w52o!!P5bLJ*Be6RsoM|0Eb89Q*$T-_-9_V!#q5EJQLkWFkBvztKCVYweHtXFp5$NJms((L zZSC0N;q7-hZP;x>VBqQ{wb)f!{x65(&~DQ?Xur*VoVEh7|B$&2@1f zboyfFm@W2rueD5y#(X(M&3?%VR6R7p! z<~w>gGj}`URvF}-IxghmhLlig1~p>yZ&m)kUR^Z*{l}HqZYtZI?PEgoP(UD1v^_Eo zXV)k!j505h`;&F!1B2eD>nd|%>NI;+8(ULy{f+e@M*X)70ykPC*PfEV8oVeYih(QBKa9RnS#&L7c{2d_fBEB$y6xvnoez< zDn%sVsxO7hP(CT-P%$JkVstfx&!Np2Sj5w`{1D46s~dgi-6H*F{->Zw|tT-(6BE2Jd5B`-t;l>~<$Trn6jwIF?Sp z{>cpFvf|CPjYTeGQj>AaHzCR2=y$zeH0r;Ts!tzE(pSyR-og5He0|73xr9)5I5`Ob z;IQ_?o}3J{7!}$!m%XO~Fbozn;oVRkSk5^3G7MplUwWmmD+hAKX~}p;4q&&F;+H?^ zje(Lt>#||xkhKG|DDlClU%Zx#I65*Xdk2~kB&bl2V+KDNe_m_+!ox7oAHuL{4moSk z)a><@{aLGjTs{|X!R>bSy=&&In7+%zBrx4%=C+=$_NfK}EZNRRdMY8lEAsMHszfhP zNT8>HnNDDYfQ7qLT0bqykMV*>M*l^~b%UhFs%>C!tI@sBu?6RV`iM?{p466|-)zDp zFEoB0wS#19`X_i*$yq<)0mS=^nNF=Lf<4c6_y*6&;N`hhbB{B)H{lFeoo*xz_zX zMHrvj0k}588FK|Kdl#h%i=PjXJ!k##+I0L30g_32ZF+OChMAM190&Fd$C zp96z=Vsr;rs9;GME}7xPfN*>1ZG(51ace@LG0T(YthLpgOX-p^?~50HNy>c5(ufVx zw|op)uzNsxh+v3ZJX2^ZH!O01Ird=G(WQ_`kx4as&DFWq&2;ynQuCt405}qZu;H zK6pHc*ujrGs-z7hyODQ<@8#IjS8s1eWytx{7s~J^X9kAr15h75p?5z? zExrMMZoV<0g!m6lcj%=IzhtQVNW7PttbqcwXEbfb8jMX0AI$kIf7>}w9cbED z0F=N$NK~ZbbUzq}o(oU?-EB!ME+9TXn6s~)EX9wz^A(Mi+iV+_3-VU(iNDSR6}8#b z_w}egQ$FHUC|;@NiX7y-1aQab;Yn(WNmMBUlFTRhx?mF{k&-MwT)1lL|5AP+O)qN@ zdhzg`zj(4h&=6^s=M^Oav6H*}o+yPIiEBFM=9`HDIhJ{xRh4^&yqsIjc-)?IwyZB6 zX{*Nt`Q7v5=?W&s)-Sfo#`L!*$+jzNns2EWkrXL0rK&{?G-V=2Q4ft$pWrip-55GQ z=rwB9&#^ORs`{A!PZetQ-MI1AFJ>vYJX-#46^Ua9z5MwqG5TpOemV)i--~JLNpPDi zK;zR|YN9qCq?&rVe9yN{kmOnyg?f=otm!j$FVJ{pxN5|Mm%rKwmc~>eDZ+qo8VGLq z?B33XB=ohxeHzoMl1d)Ia@sEUY&o*qNA}xUtptOv}L1_94SH! z>u-5Db2zf%$zRSrjf{pLn@1`<&!4uXGaSnN_&e)s4JAv2=JgYX6~F|AD5;l$0}FTr z-5{p+EbUwuR_3CIGKYs|+1~*I|xtJoF>GOoQ5(rH0e9wFS)71fc2@1S} zwy^{r5B370p{b*2YZTs z^{i8)kho;_;N86P7k{Hoz^CUmkC%kV7bn_TB1cEJ&V-OS9#sSnFeR8L23cdX4H_l| zE8d zk0PtrRQ%T2w@#mf4 zXwow{@^mJfI=QH5EQO_upBq*(mij#o&Sh>LPI|pRARH4&eY#J^BmVtoOGSbaRyq9X zxN~ir?GGn*U6l_wuYtAifm0y9 zPWzGLwOT94H^B*>ZgudM=9y>pSR}o*J0`P;pi_nl(hpGIa~uSq05O3yrI}m%Ig2wW z36_N3SCb82k>`pXbiZ1k9s@SWzjRT}8L|g0dtNs-a>7+!^*Sm4!PXl4mv13$>y(g? z$%+jl=T#o`a?zqpBcUm!Du5zo)=X&F=%ijkbk!S5>>}QT>#CluTJFfd9hDoPCf4b( z+4_efUWi)t#IFSR!SQC`WMM{ap}|Y__;d`nhpphiqXaEh%3L4s0JF+D-ulFiL} z?NXPH`Ez%DP+VR-ar{SlOWR2gygn{E+zFiMG8Imb-Mt6puS_RK8UD=-QG4fxsQozS zYS)>u#^x^+`S`l&73xSkJN|tnhrLE;sQd@K?1CY7+E`BuNcL8 z?^LcEDBO4=EzQa)VI=$p#7}w@e!rfQM0N(eVFh3*EB%YA)Nw$%ijz5l@LSd4$s=Ef zBE(fx=&R&b(sEN4}09iL12u7kJ?q`%621 zoFI7e{NzE)NBTv}t3Q%Dy2@2<{ShJZW6M2djb7kmQ)(b*-p8pP=-JPVVOkq0MsoqD z+E#l)(imNyE6$JoUz=MXl*j&hlF@p0f;oPBh*RoUJo-xHoDjGPuTYHRKZgxNUk<;X z-EBkn??Mtb*cRL~!+p&6^jFiP1-Wg(#;GX|y}CI&*`*hnOZ@-ML`n!S)!=OI7C^hk-RP<#UFa00&n)W6WN3LL&=E3^ zqM?d!msrF7S3LLW!leP&HMNURcR!&)UWm8QmfmeLAVFaln{KaLZT*5fILlSUN3PI4 zYyB2zgW+jg>#-?uDU6W43^2~Vd1^Y;R_H_oJAKU+zTyD$uBdYQm~I65JJ*_&uv;2W zuHtjE?8xLF%#;;-N_h`DS4nK@;X7LD9=S5_=^)pXGh^N6t$5P%$zMT2o7to_9FJ;3I zv=Fc8{E$R)D$ zg)jf_%d(KoehLYWFZ^F^758|O zOi^FEwJy1wkK*h7&#g=EXG_=fKL2Pw5cv?g`S&yPhbz8+ZF2rgVCS5crFN1zfVT720 zP5Hh1kZ6k6>UE%*+%3p9pJ3}_Z-+Q3xMaWeV$i>kLOyiNG4EP`gp;sPMbxfmE}6!e z_U6xJ(nUp{pv))@R9Uhf{m`L=mt$yc3JCE09HI8ou2f)lUL ze;AK*jl~bicR0$Nk34xzbRzk~3i}=LkMf+c56iGJ@~W+QCXD+m7|cRdGj?0n{d1VT z>pG!Gy@~6j#Qoj16b=|B@RBv(Vt}a*af74+E5~K`FEPR^UPiin)D05`nLtRYeiYO$QHy292CQX zlZ?inZDSKAv;}P-O;_Dp_L4#sL58<~vHf!5d#@3tb?u?keT38Z*}Pt1eh=Vb1%w#| zLRSfNvD#doY=4B5CmNthHm;cwMO%KGf4t;NCkt6To#mp87kz_LM1Lf+4X8dCE}kwX zMw6sq2q2Gu45|Jj%%KLpw25G?^zu3i3u6|dSL2~=czj=IoG>3R{^DJ`KT`~^-}h^l z?6_*8L{qF{q}-o&k#V)B7UcbE6Q`T290Gc;+VdB z`|GcUD_I@ZN{)oey@ywx0OfrmS-T#85~o<jjFg~oDr0AcG46!>+j z3(b0=^tDs2EfnwBugw+N#aA6qWg|a|Hg9UehXdL5D0A&{u4tSQBbeiE5kx4UuD{fn z;lZXqj_h zE1e@jdQdNt9ojs=RCKWC=X|>v`&)C>XXxiA%|9IZi2w_anK;_$oWvM4Sz%uiUo`saY2Cipmj$|{wan634 z%(!CAVl#HI@GR(p9R; zX8SFIM#{Cxz<9Mv#vYCI>X=HdwY|S(U(#=SS4lu#)Yrei6Kn8XE2$xQon|K%od_K9 zgN5cQ#%0w(a@+@L%Dk;D-ack)hmXmx_oR(&4sD59doz7dWBtHh&XnnoQzn;$-eR?M znh(JkZrMa;*PB{8Lhhdlwc(-1z4+AK3oES)++D2On6@fJsr8n>r%|b@jaAA4W^rrw zex0|oc$!`L8^+Av*ki%g=3P@0IC_6KP^Q|k=kT}b^<0C>l}7a( z@5)yP>in{0I{6MI0p+wpQF)5*5mFxi3%+QGYfa_oE*&Tlv=I!| zsu!PtU}8|Qihterc}pK@Zfv36<*E#U+X%#F0!`*+Vgkhx)z*VFm!2G-rP<-&|$U<9_MGXCJFHRN>!c+gjkUU?dP5 zD+F7*V=Whc)w?ju!&3bbm+g#>C+`IfqalH+A!Y*59zzP6(zjN7 zj!$OHW=D8)e5`&5iKeoid7J2mo^Eu3>m1_&qm2E|_Djvv;fi00M&0dVjWa%cgAXzu ze5iaswrJB)dzx`NKJc|Co84|eItbHIku2l;_l7nF0&!U?yBf@ucy5Rz@xPn>Ul?!R z7m!mi^yFCP5jSjlyPT$;O8G#2I+`E*egADc_aw*+n-H7c;c=s1^nPyC{*~`rVX+Kw z1_CTL53+XT9A`X?vD)hV4n*PZq-s*qsd5fvJv=q#WJbt)qKD7CmG&Q+pi`-t^?u6H z?jz~~V8}gnvNMNGr5*8JVTpsYc%#g5!aHFjY{bQdD%A){#oGD#*Z}UvJM}1fo`sia z_^Te;TVP->E~&iX3iv&QS4+y<3~}j<2ZFPegec#GWyE{S&*TUqe+BtzBi?&43HJqC z%?gvU(Cp3oi?P|d@oRlN%reE`;k)#TY__X$7g^iBR|`i&oHv)(O!?_}{ekW*+mt9} z0=a&r{P@b&Qu4?3MSkF-zrnzqk1g?zJ<#|_zUdt=H4?AFk-d>#U0AZLF*3#Vt>dlC ztfx^{ubQngUGi@x?U~o+G=SJiVO9eKXm36*fh(aBGw0q861vof)YY-Lkr6KI5 zPnFfOF{nwF$9=L#Je_Cu-GWX?Q?DsetS^b6gT>=_7S-DCh822XT+0K4vD=KN4jWG< zebltdw=bsgR7i%EH#gsZE_$`#y;4QyrUtxb@~pq7?fKSz|5@9}>u{YFTd2^M5SO)fp9!*?9P4YtHBjR^LqNHHCJ9b$V_TazzSs9@rJleN_v;9JReAuBm zbrSu#rDgJ2L+X=J1vRb5InYG8*e{-LzJcz9_LD>~@_xtn)L({Q-d*Sko|)Xbp)?|d zJaFtr6D1mx@vYdZ^5t@7{|AluU(;C_pZ8wC4BO?~EXH=R+n>o&W9*#7X7aNXPS+={ zj~sO5N`F;X-u>}KV^T3Vu%1D>P_>W4EJx*E^QjyfS#U4n;JOF;Xa!7tHT5ND_TiuL*u{{FHkafSe%AYB2-m8+APXYWYz{zb%AYM%`FZ^}4Y5xksi0nF@x=-i1B!f)(lB1@JA6Q=wvA4$B^4*uS{G+NC{B zw?u5aI;>!$OPhWA=%!Q_y=t=PikWd-xn8>V<-IGIy&8QJ&mU;dC6?`+k#0ek04+#0 z&{qt2aY?hbu619DuD#NYX%9|VfUO+~32Mle+eVDdy)w&uQL=;Z4_ofY4~DP<+F;HLx^$|t8U;{lty&zeyZuS6WS+?^hslj~h| z%(UgtWeB%ic6%M}kN-1k)0nJka!+l;$`ljVvnWdWfZ`-*bO~RPA~2&9!&SHw_bMc2DjQD5cZ(Vlw|^W8S{dIuRR79Q zo57x)dCvYI+?-OC-G!hBob?f1i+s%lJ2dCfZ7t(5xhm+TEc4yQ^aXv1?z$h&i~{;E z8B7c=sIB-@hvC9#>^p6af16SS-H{-7SI$FC;iSK{E0o6r;bxvLP$+Z5y|n5ghKXoMi zDWa|mXQl8)MP?3kolwgreE~unrT!#T4lWqZEzwXf1r&eyZiT#yDcNInMLE%ZS+Z%q zxv^Oy+$X=1-mY2>3tgt9x66i~BdEtzz%)-f+U0>FSIT4x#Qy~nDLMtM=psh0ESGhRgO~FVtdX3*iSRCMz8MtfH<-F4o(a=fUY1+# z{g@q_J7`#x!uY~aG@vE%H-}rE_Hakl?9--x-^9?iUE<~$cfshHemA(0yDOE~1GAfw zK@jfDK5^iw%Y8hRE@;CAm_5Ym2uwT(c6xk^qcA;E4_jj*n~d)#b9iFG@kl7|!*C}o z3CawU59mcWW2oWcpF`0H zdUHDJQ`%1n!p9pZqR0xfO?ST#%~V5})0ZXBoQsWoneD~CRh7jHdF8gi;_F?SWqfaB zkXh^tyWqIYV-|gaKXyM+K3oOgYVjJ;rwPFF6o>JB3tQNih76nJN{RZGd~tET^m8vK zD#Bi!Q!l&twOXQ$k`Z|$+!cH^yT1{TqN*+g_tfl;flP~u`6LUz2R0s87p$yGG8GU$ zX>;lECkok6x$!EKC--Y4HkR-cj`m$Pj@f5`uV07OMM`U6?$BfC<-2&ymSd87=sZSs zk<;E!xZW$tH0co#2O?9yvkL_=yy>fOh0A@ty!SE3l+1xPBp#111JHD2VZR01nLIB{B-YiZ?nUAQKg1B$d> zZN>MrOs%*pZH_~xkFU;^6v@3=H&~ps4~hLjr)+eImGfgr5pXxy&G!c5w}Ip$maXSmk#+LV!`WD5eD-ed0?bnC}-mpzS<@!y0F%lV5ck8j`udpy4*EFV> zkOgIuMpJ3Zd-+T1_0-rrZ?rLU}qkZ7p02}&`yo21*fdNPY7$UX`QzUI@4k;{DqnQ}+j))ZX-Gb$m z#s4XJD8EO3z*Mvb1jWfFUm9Bc-Nh#x;^uTco#)yB?@BGjGyIcf4s~2}tv?pT9s=h8 z66rTj417mxjXT2JAmrZgjjOoQxDFGf`hVgq8KqOwZj zG*>(~9A}OCX4)CXR6p!hKp$3KRO+W`3Lj}UGZY9oSC8-tOX)xUK@1}ZuT&?r^TVK> z895)H_6k!d@}D+ z#=5R&JHO&crws>}PzRT|{w_roc3`UGCY~ZX+UW@Wum9$mbUv@Io0i{OsipRlKy3EL za!RK2a7J(^YVo_)#A^TnN{3ZO-dT8ux(mj|)&lr)* zUdx)>m;A87bDtR%RR6B*UL$TTR|^~%pR!|Av$58_nK( z3|_8gBy>Dg`ugety+rl;LAvKe2&*5LsoZ(=EKlrB!DzBs`0AHKXzXU*~kk|`ruWi3S*>1vyF_fc2u;49+E-@vW;Nk|WvhCtbNC0*kOXqv+0K z_3AM7>WxcCt0!qzH-`80Xn4i(=RlS}!1&^JX{jDr=;iH2rWugEb2<6`D9ES+mRaS^ zuls%CIsPawX74D=Or_qz_5qWS<#2}VTDIQ|gd|5Du>p61iISB4Zi?;lP;X3I1CZZb z{iY#Ii=UT#r|&r*ZuWD|&Do;V!53+R0w0q@^vq(XldID-_P+wB7ERShkyR;$WLbix zQA0~D955xo@a4K6XDx~Y=Dpa~!NKAt&kO;Jvt$&z0qFg^lk1$KGB-^6`u%R*3F+LB zdgZzN1yB;8agSl=NjR2nC@c8^ex@6pP`g0%4)-mE@F9}q0wAi^pVMulTL%MDAH%He z299G>INx=v8uTX-B}nJVcN!eC$u<@A{Ce7OmtC*pwlvK|z#BK**>Q)^njsd&6v_fW*|z* zIQ1=T+FtIwd%l?`avAiA>tw>z5x+7IyCMh54G z5dbzO!p(7 zg{oO~;+{O2@9w%jQ~p($k38g#fxDsw7OaWWM%8heZHV3>Xjj@?xDqkCOy3RU$ihv% z>KSJC;)P1Xv9VC0;L6V$v7*YC;)5yNf3H8@NL8M}QlMu-S`G(BXLD5g6TlAsMk$j9 zQ}WNd`Ip-hW*%p{d zM<_4r(zyAu%5I=p0EfRN40|V44j_bWuH&=G;tmRJ)BN_MUVrJDra?+qT6x~-E*4-u zr8(%AjChxbRdD^V(R%(UqkCHlVsm!2Wt23lL!->|V);ez*Q!0-M5RQ2@Ks$lUcnDn zk$^m9zvB{G7IYi$*^@6i6)1cK7?SBV12i<;Lon@H6TyBh3;Ci+``VPP#dva0AC56D zdA|zRILW3(Dlv4urSLnsF(L+_e-ep2hHj(w8xA-_Ih@9erpvLwnUR2rnTElxB5y{AuiIk0Bj%FiRM-6I^10BI6gW!g9 zZLWj>fc9VEtNO)ow|Usm&Pam7-ZR^x77LPWgQqjw?Sih)GHkaep2aaOj^S52&NiZl z3tE=ms>3ea^66Qvcq z&`J4nV*%c>76kd?kp$PQC0&FKJ_z~cx2IoUot7>nI1Iwv_A6I3vrAV@McnHrLzE}R z;P)*coi`0W5=u;3Ug}m9gdGA=ndbQHCqxJiPCtMZW{21;HshFGcASxQsSl_0iV!cZ znu<5Enc#J4aB2p7FW!CFxoWs7%z}Plnv_nA>(f?@!+xT25OhakSrYeE7Zm!9#sk`* zeL1f6Zr`jig}N^f9YXrF;;(!OT{jeK`P7spSin_~>-o9r)O;&4FUnR}c4GokGI+f^ zZ}pnl_r04mSNuor_S=w`C;y>&Zu(XeU_k~KIc&CzeXnU5EdqSouWu&_j*!J|cBTOt zQ>W-pp@j-+f9R&1Pdpfz=L|Spex~wM2P{MBUZWw1Sd3)0C!W-~s5Vvg9RF+rXHd~F z7q)cew~ntb6v}vx0q)K?%X=p^AlB`IVjEVgbhY}h#S#C&V%?zy5P9cEnE% zzGF?gIJE_ny$vhFC4E#gey`NI7#8ESt~XJ=CqF(;rX7s-l>3s#ZTDH;=8SvSe0iTE zTyzrTUxeWDSmdABbC?*e#mCkL`iDNve3+G0i^)y;PXEjz47QrkAy;)r9Clxbfe^gQ z{29oC6{^KoTjTZe@EcF-Cdo!2U)wVK-j4mY9`f*(yZE?%zT58wrWh9=k@ulRR``0G zB9(p+&#-h1p`?%*v7GqEjOFre+k0nOA4_NF=5#sdRCop72)96ZUT3X-@-w-f15t1B z{v+8)h6``6`)UXyHKPBa@tCWogXMNA!?IR%)I+l~gUgAwPe(0wZFe3Dor8N{F!>-H zd2KLXC13VO;Mhjw@3Yo(>7oIV8)`Ck_W|SfEkVKE zB6f^=m$QV)%|FJz?6pwL$s&u7AL@6RfPdx1f+wMP(tX0j)L?O3DQFE2{k~-JL{X7z4teBUHgC&4meqB@!Ze-FFy^0 zPjQG)gB4)*Se{tQ#I(*MTFzyUpNalI#VC-U*xco_jDz86HHu+zI{>}89@BaQFm!BL z(&IO0zS=Kg*5&o_m18>|b4| zK-)lRZp?$nV>F)fFP}(+IDY(!@rc*P+t^*M8rS4?HMdHctABs2;Xvs#Mb%9BYN+@2 z>TjE^M>#b)-(}@ebCeGXclsj|@*cmpy$pyb?xBF3KLvCvr=2vKK zHE#`;mp&@b)4HD^ZZBmL&8yw$^fv&z0b9qZKk(I1>&oFf{Dm53?8AQ@?wV%}%t8Di ztKbE|Mz&VEW*twgq3QUP#urhqllids#W{5Go;y&&z`{<&cJ^)JTKFMyd-iFUUYows zwK;3LvW-+ei`962*OtCl0ryQ`(r=rxe1-oy_n`F5v$TmqIp+ikN_DIGiv}7@dXZ0C zCe*d)vFQ3#9I8G*wq)L&fiv*NCl3IiMOF!7d89Pz;U!FdUYYBYw84n8Y@QBb%YR?%Tk!3IjpJw96 ztbh_MHPBSwB!o{>VU8?A7);I0C2{r6v#vGHtNejWps%`COsXiZ8qAbIgE8_FdHv)1 zn7e#=Pk)6idE(By=J-fl3xJ>bu&of={BlK?pUpaIle*24)HW~JC6c&UAhYT zdOD`_@V-a@NA$V9O7}%Thbm+E0u#Nvk6Y78x=@TPD%gA6Xv+7!9JeqXSIQ`-rN!65 z&Y!%q#@Y9V9A6{PwL^aQEkQa!fT}un=tdUHTerJ8>bZ-mkhIKvocXv49iLKB@kUBC zK40!~RNmYZnp;%=Y;nQhy(bzzoe<_+ELqkCQHnEMj6G%jJLkrmHJfj@@dEsjpDj4s zE%$&<{`>w)l0{N=ruqaTj#smINki@Nm`p|8KxS-O=;`5(PQP(Je!AGKA->qMYT=GC zy|=Qhfkaq@03JWZZnak)~ffr;%OC z(229DrLhooa$wc*zrj+~6Gi2OFPx&>Awj!XaZgGE6CaHiv|(%|rr#W0`wormU4ea8 zU>IlC5fM@mi6JfZ3RR!PQ*ODjZ1I9Rk+fvRW&{NC24{zqJPL7R8Wk~XKFn8h=w|C$eKLr0KZwrG=g?;G;&Me8_ zS1e=3q&`DxP&COcF2E9#PE++mw1O=tJ}=Jm{V63U_{FR=}6|Te1%> zKzNU@L<)W+3fT~z43J-ps9V0q!|dkPtj5VmW-D}hiQ8b|Moo`YC~oSP>`LmKT7+q; zPI`K(L1`g(kDX+uCrM0Aa;9h=JD4>GKnky@5oF>Q=>!}!nEI^3fyR-c3VdPxcrIJu z)&8-4YrcVaQ>)h!XsrKC^Dez=5 zk$F8th+tTh3o8dS=6%vPQtY#H-X2f4!j0Hf14s2QJuW^E&c&pri^XePExivXI~NmEXrgr z(p{-@!s-|Q56h0R)<_746o`00d*Khc;I4a4ipuHq>)T5_*wDJq{=XbNxuthKyb&y# zqDX*PR5qO#y(9J5c`=r`!!|UOYGEN`jF1+0lW4=YU|c1$(3Q(0BG_8ii+BTJM@JH7 zY{GsytA6q)-r{#T*}T3sa(tYB>_IAH$gs8;ZZe4Nyp_N`1S#4fQ8q;5&dpa38`4;7 z|E1bq-Mf0OiPb25l}E6fee(|7jlqH1L08F!1+H_F#K=gp#t&$Dv^@+FSk?L~$c&qq zeRYFdc#ZGtf>W4I(z#9`9fZ^vupr6A9T>9L+XVME^vTnHml$-TS495xrJ)ytQB|95 z4$Jh|NXk5jt)fLA4^vxM*^7k3;c83JJF7%+ly6QXZaxaeW_Zvqpvto??Hnz$daEPI z_6h1qVTXUBra3{peeN!Tbcc7|cAcUciW}~=lWc1sOs<8$sZf_)G%)zO93${Tp z%1OYFBsFWP{ZEuXjmGQ@&|9E<(V{vaH~8_iwl_7_C>0`8Je^VBhoK=Mw5RIS0PZ&F zU7sOgwTv^m%;qmdm*493VbLXl^51$a{j00Wj6P41H`9 zCV}_O!>>Z77p6KZnqoBSJ+2(?!^_XA7$Kn#NgGmf)l`B%y2x$;Ee*afB(8N%Q>00~ z0Cwyst2jbk`v(-quiWJ1&l_BeTMsa^s`@bCEHsEt<4L{!cBH@ineBM6j2hGvvkNkO z_PvT{C6SsxW0-)9SIpseC2m@2<^#DYu+-;1AK1-QmB88jByC3d%7o&PQh~CAP6RdC zzm>E|STmdok%T|1sTw~-(AP)S#d=1}NjAjVeD1e?4tuJmVJx*>_=@$eBUYqgf9cj_ z>}k9G21SsRvxo?9yFW%Y74OZtY6A}Tll{0%$PUA2?uY^zteLss$%>=4gwpp{^Su{8 z&mxBf3cF3LzHn~XWw>ozc!*b@nc{Q!*V|}gdXBQpx}F*uoiWIdRu)@?4^HgWa5E<# z=xx9K@j$%LHGRAhl*X|y-nV05-2`;*T!E&wF%XYZR%7u<+AXW0kMve)u}2lc*JSYT zKT7Jdr(t2NiP@GStmxS>iN@E0LFZujE8<>HBF?cLhyCD-h&#KQRlI2@@MUs10{)r- z6XhX3`9<1bNBMpE;m&>Q&RS2^f4Blz`()GEpOqd^MX*-gL_XJ|xlz5Ee_4y4K7-srM0Ea3B>>kT=n*iH$TpQg zwN4D7nrsV--2+v(1mNG73K~pTDn_7r{c~X@b^lc9OSYW(?p@F6w+@#TNjVER79&BH zBt2s?rYe9!Ke8cFpf_?6!?=O7-7UwZ#uvGJ>lf*GB0)8CFPLzGFClVH2X@yv+F!f; z)6z35zH!Q+MggVofLJhYAS(E6=pISG1@e78@)^{($-1o0ydL`T)K`TpLuahiMBo#GsviuR%|2h%$MO#$j z=kMRyy5(g4%#IKmA~=)`G7%7|3BHuLp$zugG z{Xw|5m1 zzwO;Vy?(bVCwX7sX{m?ICu@$#wA{sCfJ{jc{5&6&a(l9P1o>)w4~E=D zW>4=R1;rvxcPUtyYzlRAZuF;^@(*U+g8WlRjEkXUciXM%mT}5$vJEM*fRs1axjQ>{ zq9=sooPS-*QpLoETSs>|bKBf+^1r@%ui~|!<(=Zf9TM;rL6S0((LaU}TjSc>k8f7@ zsOHssiHq=oMfm-I*1!q_la>KPC0}3xDHr}<(5y=vmYO0{GKyiW*1G&-{gs_6upcvC z?HaY8LA+BM3|acwbk@~j$jg?g=>3=a#A{xp z98l20<~Gr22<_3V{8Hb$$5!Cj!P&XO#YEcKz#QYT#bEL0QFd`#TQQ-&P z{!2yQUn%B4f0Fm<1N_+vtL7SdIw`$9&kx19E=}S=nxcWn>@-qx0QW5?w~L`JF6!gF-Dr=NIH#fGw zc?%XSevJCk!)MdN@~7WQZ|MjVA0kAgjYsX_xD2tV`S>Pe_eS2-4q2|a!wo=FviRk4 zbDeA41oSImH!Ee^#V|~5>-aUI57 zG`muP)KvQbNL@C!5uM;#sBfR5T@W>sG!YkiZ6Wjl_ZCD9*d>Bu+QdS7Kpb$nr7}=7 zE8G}UH6h*dG#TPkE<~7TyWo+;ZGk0i6SV=GSz1oca z<0@O7dB4#<`r>K<=o)a8#4fgkh?DBiA8eha<}A$&fapj^GtbiisL#|4N9L1>+yuAp z<2gQB$7pnXVbTpzpPHWo?8#S8T?|Q<#J&aH?a751L}Vnsr?LUAM zV0DA+9yR0SpHovuie(ix+A!Ctaa(TYGU&3#ucc;zAUIf|b3e2mV7&I3ULPRDeRKUuLA_eOgnE=ype3SCG5|~Js zZFBQvvF^90>*M|2WAcw_3|ONM4Uj^V!FNpU3ji2`D>bNUSusM17$cm^RkG z|LUmk6z+6YZ*+jh+4v{Dal3fsRPS4Nv%3vW7ZhDMc9p9Oc?tfIQ1r2YG<5##;`*8NLLt}zHyOgoaUEfKsEDC;|7sm`4%gbzS>wsIl&8ze3&9V59U?`;jz>twL?Osj3(t3;z5uxQ{E>bmoTgvb z%oM;T<(=H9ie%9b4Fm+S9yk#=Bk~AqJuXD0T_jPqm!jT=T^n%(vj_Uv5X_@}%Onk* z`XltEkxCkm*1+k;slIdtPZ(-@H_uJsg#zMzfPsP3_ly|1lk&sW$|Xh^GpWhq_L<~< z+=*LxjcJP*fLzS}lk{QCMpyJRyee53RqZR)Xv!D5`YxGIM~;vv%8Gp;DmKt&&n?&D|t$9zYfx{@`Yazeo+4w6c( zS+1;{)&4{*#A*3~aG)jsM$Jf5NJDf70eh|8vRT2 zmJg8q_fH|(z|uxLoK4^UdF^`FwatJ$Z1CZL_YXNQLXvgw!4vd_0LCD@0`QXc=6L)^ z0lT#(un$$}*1TIw7@7AT)8#f6QLQw+>Xp2%Fkh@xz({qhv?5fe8t^TkIX#fi_;g{P*e4;<^DXz`9-SlgPHCSRrFMd0NJ-{WM$lecxAk!NHklzD)wAy4T!Hs zr<9x3in@-c0_=^)5+jAcZ-B6`=tV9WhHoHiA)f#x(Qqe1Uzo3#pO>b#4}E%T9NI^HSqwxAMsIv!%Utlvc#RzUJzkf`h5gkBYhZ8Rt^= zxpsoipOUpMGBIut=B+8Kx$u%eI$+$S^K8*q2`?PG&BbMIY$tm6ZmV@w^_`^A^!Qp> zxG1D$20Mmvfy8Knnn;uQc`CrV_<{h6t~`V=Z3v3gO{q)g&u*9vG8{I2x{cFwX=#RS zdIXf`Jr}jaOqSYIL%)AJqC5HF=r+oeD^R@0 z+>UobxGrLDT2yXk#->d1o;z>c^PgqD)iq+~#^!~;FSF3_{DdMN{8l?e437y0b0u0QsPRKD` zHSo2*M!HR4mid4W(gxTvXt|%B+Y+Bpk_j^%X#WrvfPHLwC}~jNI0l2QpwV|P%chAK zs6VlZ_}LzE)m!evr2$tLitK;casIo@$Dqrc&4vsk_}2cJ+o&0SFB%W?k4o;MMEZ4o z3a}wg#|K+G0yWNFhz88rwTj|uI`0=_wMyp~nq%|M-|hGL7s`J%GBSnCdRe&?z6ID} zeqRp_1%nEc94!uK(4yZQm+hdP!*cr_3&l|}t!+El3{?W^qR{lp#OC4omcb-gSkKzE z`<1`IJq?Lp@s>6HDj}u^*zNzgN_MiSbq&fA(_#6iIcSk~o(*gam~>~a?<<9k%rkn( zt?mZwlK!Q#BBfPmEjBZ;+=3`*N9F&uv&(&DY$s{qygv|H4=B4@D-__|;2pR31+27>>q1Q)A$n#h57YQd|!T>4YAt2Vq z7EHo#m2YenZta6zf{NWU{y`(50g^LiI_t2%ZQWkN!9!Zcd!@H=I~15~+wX%3Wd1DT zi|1}@VoeK*hM{qr$;$YK`2FLf_TxijOxs zH};{bD7>`bzJX<>v|)CRf>`bL&&FoGTRKTBfBCD9nQ%)xZFh;D9f^#%Es8kdI32&o zJ`5`z$agn!I|*Rc&D-QM5Xxd<{BA(=?9n%YhGi#HtNxYkQ^?WCiF3SVhsbB290X)4 zBHDuGW5QQ{L=r?0fMbfshtR@Z0axXY46#kbJuO5MHAWT*#+R){qew2JYm=1~o}R)V zGdyc`-@x;J9yHmsiw4|UsbBydZxj3C8G2(Ek<@`EOTBH})mT}$p$h_k{rmV5uXC>0 z$CxocwDae``g~35NhMEg?$5?C>WfSMOJz;bHclCXBDM}RtM+vk9J6ZDbm7#gpQRi&z`sd(*#;L$ z25~qF>(nJ|tceb?Cp_J#n+Cq{q^pHcKl4+B-no6AiMQ6U5e7m8WvQu~cg~4669c+H zxFulNp~91rmIkf6H07E{Wj*VfXAOR1rNcI|MH&G(Tk~_|-G$vsXXDfu89 znM`2lcsN<<#{e=82 z;7aBn)0g`kdh1cHn6!D$!YSnMKy7PU@mwW_Y5(tqNM1`ZP_j{YoD1LsK@pXntCQQl z3_4RMPg}mF=4_`;;TK;eCC{EoYa}k~&A}W^S^|DuK=Gu^=s8O}mKwLpwl}lG2Gkz|qx!KUXW>b< z_jGjRNY9h*h*OdK#FOn@&MmfTJI-&Cp8}{qlM`@TEg`iqzy(qKSCNaeR;(bAKdEWI zviv(mK(f7!nKIL+FzQK`&4UE`fG1kSi#I7e1k;l!PqMbuS#NGY>AHVFwC~M*{|2^M z3H>HhDW0r%Fl1H1DXu;Z_(w!PEDzHql0l2ZHD(+%pTDyW?*kl|(-+U~3fH92SKe#i z=YA(-SJb9{(S&gY$IR1HgyFj5>MELv(8YL>#V5nj(oPA>J>|Fal2Kkw3Xh(@4lR~N zT^y2aPcYG7NN>O!Ko$u6HK(Z4!VBi`xIHrUaZ#5*xg}cst=rT;9U?Q zTz2Uap(m7o@^)d_0a*Z}Rd8fbd@6pHV;(59=oz8OZ8h7mn8WC*$rnoTMA`Hex)Cj< zyBm5>SR{5m=$#I%9mF2q`|kLSF^r6Fdq)ai5{k|dMA+|$blWiycAFPHdEDJzzb_$q zt*V;Uz&KxdN>vm!>%~|6t}2hEPrJ@yyVcOH?@Kg50$&E;@KCiYBus&rNjZ-Rm{9nO zGE(egQh52WTj?L$jr!y4;DWssLy_6XycT&LsMk+x21Gq7t!z)UX{dt!0@Ttr=jz>q`fKNp7Dc%I}k56qmn6N<#>w5OCY9*m%_2 z8dL|;(vCsT$G7;| zFJ$@8bP95!2#B7ocx@ws;Y7yoof5HbWtI9VB!X%BSeO0y489F7O3J$}CNVE(C)+8+ z6Cz1sqg)#X1lTC_yUNTTWW!1Fg97M@YD6tUW0{q2E!5J2^Hb9PP>20=jnvMII`+}` zWf-vo|9`0zAIR83a*s!%bsr)?NRS;^G5*HAWkfvOvp8frM2)0NMD#!iU)^vTCm#`u z8iKqTyV53>p1x&ai(BvaQ_*-T(K^fgtdIbGi{E@y^n%!9&Wrk^dEAUeGZZM}Z@WpD ziu5Y5+InYK?2`vIW7Zew5<0XLGOnsifPM()uPe<^9)P!Bk$!qS0)7%uJw}<_q>Ur< z(^BEw5oOcnzpG0?b#1`7WaGPc!Ca@isM`zSfzET2wHI^vpaCJb{HNexB*|poSEy-> z%RHvn@c!oqQ2m_%z%V)>xn=x|Ay!$15dmeesG?sLP!p&8kq)pIE!H=LmHx84KUlmR zoOLcvJXZ=7p>)WZ=bC4S{3^(q&hOyax=7|aLTXpiHmjy~0Q~BEMPcFM;~74_igU=F zq^Cyx+bU)X$QJ$L4Qv?=R<0m_H-bhmeTkstJ+&c|ET{JcwnklYf@HWrl7Z>&T3@J= zvL(56#(X^GUWkKsrxAz>yl9)Y4OqasvA%cd`YY~Rj8IShlx`Mm_^bLZ(TY?q#Bu&? zai!+z$(Mt1@~{!wEId@BBfQ*0P8Md_mXWxk1=&VIB* z%}ouY89{5w4?l9L3kDAZ_ueBWEr>t}4#V7HZck*xU#uoBN&9peli3JYWAPV4;F<=D ziaNEK%t7PAbN4FYRh-`8&z(<(?W{H&lDG8P20|1^0<* z({_g6W`cHm zmQ|S3{Ui3X%2WMxhI%ue7dqbMg$EPHkNZf81eZn4{H55L#Hh>Gdo+QuFVLC_6FWyR zk?yAW!b1nX<}39L>E#P`G3IWL-)0o6cc$66mjh?9AmJVFmz9+v*X8bek&{f;qv;9x5K!Fx7nP^SI25hM6THmdC8iL_GD5(~5N zg0E1#^#7*TTZSn9OO<5xFBPQ`u{~gwlC}gsh&rL~@6c$XRrbttQmcU?( z@-VgIKZyJEVSwl8pdx4byjQ!&pGj&w@>}Qi0s5S;IV%tzgXp_0vn#uD&7O8mvip$e zO#@m`nMD1_VPupV=S^0x44<)uC0XA~wRYp|!3Q=&+ zRg8C(cJZ|n$IrZx1{uEnoMaT!fMH28LJSX zl;K*On0V5!H4P>N&;qgkySwDHK{Jwo{33&a*+Lgpc6x|D+Qimb3|XRrRx5N*%T+3+ zviyh+_P}!wR+A4O1H%;bS^1NX_1ifH$-Ea0Eq;rjupPW?Oj+qHDgR+Dajvm+{T;hM z%d`P!vZ7Q|kW1XpVR|1aW4&aZO5+T(w70?z<3+{eM>|`8YzESM-UOpYEAN@#=XWV7 z7JW+l5R~Rg;5bWC6@emTtG4YlVlO+WU$6ge9G($%CPOst=G+zw++{)Wi@Cz1Id=62?H*q`qpWDb*I(-GKjLAI)7 zi=6JTt|D#xSK$#som%UXX(jV$M>kQ1<#I9h^sr)TXgzjxxwr72GL|n)&x7yIoB^X{ zG-zuTyME&X{VOUplT&EiE5~tm)N}cabu;}EgFtlZK!6u(mlXbEryC9Dmp7NLRfq=#jREE;GlhhM=s}8ZAbpKHEIE8i_`~Kwq zU7$pg<}9OL=kAB7TwQjQ@k6T_AdmZ>Oz!{tb7>u_)~(zWl3UDYYbd>p`u4%`D;#O1 zA(=t^Th-^~Tz?~x`ibh#N_n2QA7b`v%OR6hrjn=(1DDPCD#BVxUM$Wt!q-B$-oSuC zO8WE6wHVP0EH`(bk)+{23NpH<__m;n__o`B1G~DKm?u2dPjR;nIDd-w+hhOcOc(>t zr55bIEC-r7&C%nr^Q2z|){FUiBea~BlAStJ|myg~^ zPjn~QJQ2Os#qo4oQ-*>Q1hSg0%Gs=h!oQkKAhvQi9Rlx$l>R#`VRIT#f{vrBzyG9`WUMAPT=blVPu=*ttFl!^EmYQjeX8kqnlkowe|INrTKr{wq7P8k zyeQ1!0@nu?&R<;-bea!HnVqT$v5otTBNm5C?35h8d0!LR1pO+|O94}@2^P;EogjesCICi#fKl%us6%Y*#Lb6q6s)i~kfVe#@Yi^lr0l zIg|Wz&3wNG@!l;&7xNX+fBCB85?bAQI67!9GpfD#$6lA4EEi*AvJwpN$#T4$9F(}J zUfpT$<1Ruy{Pp3UsuMp8Y2r^l`xx6}ue>7v4{H233h_O|pZp+aM8GBW(0#PW1=!X< zF*K*NxB&S(-o%I1r-0gfCBOl(kQgE(fT>Xj0ZaQ-#g{?^vw?^-%5^&Y%B{CepvW_( zv*7AHjLU+qhcuXo*eM}nV^%yKYklvE`H2IJ7jDr7rEw08B#Ht6uj(+ki=QUY87kMv}25F*jKLFDi%hBQAw*JsKQqPhk<_amm6jPVJq-vBdlV5d5*pb`$4`Pn4en#ELPRGxj0eo#GHc?Tr z=`WJsMH+j2BT0|Le)YQG-MrIcD z1pIXj&RnQny97#hlTliE-*;S5Zqc-ayflg}iu^P8+IF7e ztM78$9X&odGzgEqt7O+ex+wF>quEFcAyl zbI<2>3r~DF(Z)&gF$XhCVNOiw|o}iPoHOgbXvacRl1(lKy4f% z6KIS2s&otQ$(W_Q3XOHG)G59cqyH*F-}&J=IyK?GvkTRiP;v1~7I8WkKiar^eU(70 zZ9-{8%?g>Ye3x!z=tV`z6Y(_ZEX*G0{oBM(uKDzvf0-HRv{L;b)3uAcKp!bea`)Bd_>YSMWp@1fV{YT?7@v_f1vIfO0nh>RbIHL&b4LHe8E z-4=p}JSoQnH8yTM0dsb>Qu7gQ_}nbQ{yZQ>$WO1w&m4db3)mBH4|F7xFr9?Jf#(NT z&|xxVZ!)s5Y1gt1Q&-4SGjvjs?)-P@LrfU12^O0+tQFpQptP#0yW_P0VT1d}E>1<_ z86>;2MWbaS3OSQXtmY8*hR*f}(tD<22e4Ip)fAm)S&3g7c#?Y|D8&rg81j?6^$-SP zTKo}+VH!8=iwa>F2(Z%vLVAU{UaM;zNpbn}Mn=I{huaSp z&miRiZAC-=kH^DTwGG%^1F)DM?9aJZB54-rN4T_0zI)&KpHRDNezO0S&Tca&LP3nYz>TWy&x~$A^QxCz}X}V z5Vz_A(Rj=?b&*gV#b#Eyf2r&S9tyr*U=UD$K!mh6z0)eRiZv*X{WT8b9UGIE+9f3@ zJBuLwm5y5fKk!4F>F5K}$^Q=&;(zA4pDwq_!0#pEi^FAnr<$R6S0nUjHp4^9W9vvi zhmm%jP2*#Ym?++!p+u)a&$q{`bZ%=4SARXcwgA)+BiU2~{XXSP+2udS(zRX)Ry>jI2405cM`5lxNcW`jLW^xEto%5 z88V6yRGgnKTWD)sf|+$$Pf07fF6|%g@XpEr$zV58z1%u<^fagbO3EaQL8WD+QcqW% z{7Jaaz~V2uR`t0R`~?QJQdaf=5|dMP654`T*b}sJ!vz<`Rt6q`r(iNl!nL+f*qaJb z$|pX2&j09i^q{VMhS58U-)yeVT=d+QBg`)Xp}o3tlk zzH)p(l2INqfy1=SWP^)BO+hkOon?z7k-9^WJ$x^BoYTEt9%<(9@`7`S08bwE~J zWvBF_a7^tb+9H5wE=Vle(c+-xXTz4+RJ~J2nVr<&6cAq(V%kL1&ZQ9WW7Ze4PYEm8 zIi9(5);~3;3kHk7X7sOc#~0~kU(2Mw(Kc3I9@p=sE^tl<*CeRK0p116nZQ(N4yWOJ zzlx2M5UDAdLuoT;kEEX{?pZyoxc=*PnjmiK@R^VCLbM@c`!*zKH*Pqwg$<7gJ<|<` z<+nCZsC$;UR!wU(2W75W$4Z`;7(4D$5K1GJq@imbSQz01e>r(RgD#3bm>~B`FmsNDeP8c zM;d~C_V~^ecpsJ zXub~cC#}K!@_9D8&8u1xRq<`E$0~!C7#5JDP$Y=`O`UbC`NIqiu=#{^ou!|Kf@$km zo#gxG_ntL98m+VCqhOfuOzI~T6OZe3QoSUzZxJxN@mOo)PsKXVk~l(hFi}QCf^f#ex~aUi%ep@+wU?PRLa5D$xZ$(vm*GiKm*S z2Dv1eW(QdoImknjUpigXQv}?F*wkMv04U}rm8cefts>>fsZ`7NY20ARolV^Ydy}gQ`{d3Y2yEa z(&+<}7*8&}T@QFQ3cWm9)WnZYIllpy8f_D?BvmreRZkvHkL?eNP0Bh~)izq|)T$U; zw)EoEBGJw<`l+`>OWtlzW-ZQ>#K9d%`gr{p?Z;Meyy$pP#ICeo>_COxq;GUVg88^` z#IB`d=udUy8td*-b|-Bq}hO?&xBfrEoR z68X(9Rp|W{bIboMtSa)eVy5KFdZcv-aPZNkE&A6k>}Yq@+lh^k^#j}xWjQQc?;@Im ze;B$czQCpL$-WV5O0xgL9p}2AV%YHf(#>NEEeW`yM$FwL8dZE>KW=g^T!QKQ1^eTr zd+OBcLe>0IIz%rE$0&6!z*|+Zi5nn-Ne&Gu88X6{m>)P`NqB?837{wn^)>a0k4G!( zzUF2=Lp8G*r8&5b?RIIJqM}(a^#=kf0-4&!TZCo18>GYv+ramIs#fItlNE;#JUo3H z7BN^^8IwQLJ+H5)d8x3@cF~6fMalqZk;k8~Z#UnNxQ^vWeuM$M*l>)m^i^vHBj?61 z*FdN}v9ZHO8GUG}2kPW2&f=Gv0&2{vhpm51Z|L{X3L2OvorkZwBLKq#L^+x+kd;AL z;D+>F=k&*BpL>(KWAAv$*GRdcA1+ShRl(X>e!-)y6*i)Kb29@clV*w`48-Ta*FPXM*0kUU|u7r zEoLmATtvx)bd=AKA|80k%6Q6%PTWLU-``!%u;kTu-e;FojGGyBmxM+aMD)%ER9V1G?tHjO(;4@UgF_Dt6;cTq zfiU=jBY96gc^twt>F%T}HRs1Q2c>bD1+Z1QNOi$0haTSlwLnh~6xKTA5L0=Pp#1?O zpu3q40uI66V2W$G1x(l(X_Uy<5Cw~yKnqUwB;deHRSlp-S?zW9yw_k<9XwE44^BB3 zj|&;Jy9OXuo|&$juFcm(k~7Ue0?92lj&}@iHKzZdfl|%S?fVRh$mMtArQdgKj@jKN z)Q6QwE9WYf@V8$k-}v#A-%Qw)Ec?j&MnTb$E-af-?O?<-hbCm$Dj-xT@QuSn9bbvG zfg)!u$9~e+J5pYgZN|eT{9Zstl_F_K=7^ zCU)GWal{iqi1^MkyYs5dFqfLexYT5GrQSAsHL9iv%QkBS#6gF|$N(HR;)w4;(rnTb zF3Zr`+Hw{dRj2k#>Dtb+f;EFyVWVSd5SxMlOWVP36FFarKEF31BSI(y&@>_&X>KP$ z^cyOM=1s2+eHnP#I3akGn$uZN#Q&wKnZs`?DnWOU5M`8?t7|X%o%yH2*lynXC?zMh zitMC(8+Rf5dinB4_>DXhX}pXc)2-+JjW(YgG%=~?f_~eT-e^b_ZI|UO!bC<}N&s@x zj`xec+1cLnhWI11_tUb+^SbQO9NYQOip6?SyC+psNURfh*6k_7P-~{iC=R06XVrn0r9_|FyriQ;SCK(tt)+QQf zy?L`M>nGW2vcHi+<0{(NoN75M5^r*Uq|qXYgIS`4`Wp#yPEVF6X_d~}y74jq`hA6r z?@^cy)=%KwRPWSEz0C}+BiKvP?DOwOr%5yAu6RXyZsCtx9&zPYfnrGk+JC8#9K(UM zc)N6>*wOl7saQ6c!F_B!jHQT796@cB=hU~+H4*!Gi|vZ`_I+6DeL_-vL;U4^O)+2~e@9~KZEE`K zULT^cuejrIZacC#1~)BTXIh+zJra7ud9ZQ9dBC2nEfww*aLpyRzN)tMRa;16b>nrmyuRh7 z2j$HWlK60^q<~tFnHNd(FD|fCgkhTvVmru@5uCrH<-xKdVrc9a`vEP?Q2XPVoP;D2 zkU6l9zgjrXc}d!fD{GNMDHr8ZhXN)DW<`~=_}(&rL{akyHbyx+-qrV%S&f*DGd>+x z&6B!GCB49MR?}Dga0noDnV?e{>#6SjcLx#2e=Co5rT?cc`H-9W{}vvf{9n@Kq&8j{ zaUJ`=+vREhXH<2=#N^NZ9!__Gp|5xFnk5d>SDd~aJM1!~EE==$@h?F~ZS^||ajtAb z;(Afr7ge0yIo+LYVs$Eemzvt=&3*2ju#CC?!Pl9GL;1dcpOA#4>_TNLYxb-YvL%Ef z22)wb#3b8bm{RsFgd!ws)+}S+*ChK^W1X?@GuFv0J@@DPeU{(%IiBD1$9*^s2FEe? z+}CxT@AG}W-o$Ex7%GC#gj!HqFk|vK%P>|uCL-CDQA1DrD-Jq8s?dBT%o} zFW5RsP~31rD}*?+Efj1Y?Noq0mIGgAi9Rhuy;y8j4(V~YOx#<_XbG|aSi$)NWzYw1 zTG!BHzRESV1k()qu|d|%&BfF>TiiMwZ`=?2`(e?wBg6Cno8|&Bn4mAj4pcCrB!T!6 zR0T9dFwI={i(6yLA0S^4tX;#Is-Ly-ZTEZlt~X!7={&KYbRPj<)Nd)UCBB1A)duFh z>%@FgQ|dl-_%v=>i_a*@)8(uWuz$$?G}dWHNNz3rc$etG)-CPYHElaN_hwz!0vu;` zV4B6syF8wI0LRAvN&cP$^O<#udt4Riy0xOUfR1gf01?GAM5sbr-4pUXO>h zMGN6VqFAAKG2)F8K_lGgmy|WeJ*Y@q6{@sTL`58UdD!%F^heDB@a>=IjaDbbS_0~s5EEjn*E&SR z#GprwJIYgu6=WG>HHH=v+Z+l~H`>mX+qJr{gr4kvDOn;JWz>FKm}`K_REM87!?$MU z+|@8ulw@Ny!QPb0woTVAdaN<17BJSJz>CYoJl?&e_t7rYKC&YCOU9&4iXS2(8fZ+! z$pUmSBaNFlkPy$G+(RI*gd<7hEw_D_gk{AlN^SojB?6&ZYSApXN^})9zwL?G z>k|4kw1ype6>2?X?|Hf5d~mU}^i1up>Z9erplL5c;j#C4s}fX;zpj3YZ1Nd` zFf+HeHlC=7DZ(|?ebSb0c;*~`_sQts)obq(GHP$Ooo&5sK!E9w?_D#A3e5N}>^YmG z;k_v_+`E8bzDuMlTt9#*w_a;Y>*k9%w#szp zwME3*LAbW5DeH7`-c&m=b5Ew+)sf$zp}_Zv<#Ktw6$wuJ_ zU)+>2CAwewN(*RPNNTaE$^2Q$j+YGwWm82RMFV9!*<$!q`cUDg@E8rbK=`4(y-iu3 zn;`GS+?tmLBAz*8cN0Yn^l1}Q-oMg^aT`+#kwPWNI}x3DcNKYOi zK$Bq)?7F`8(_afY?A;BZeb*4R443MSU0=BK*#ig~)Qnth*oy&OuBixZyKp3Qd27tB zs{k4!lyMwn<5`%pocJvM#+O)ye&O%y(a}sUFBomDtSYTh(~0fC@$dK=9^NfEL+US_ zKHRxS9qyWf1w9R3F>$4Y1!*28JCPJ<;a<9@2_ZqzHP0F$i;+ z^jYAsTR@CPLv39$KHDw0%d5?xyCd=X`MEbQReBIRc=|Q0zd)^BEytfUT%7H!V~?^@ z#mW76-9Y<(Kkp1J<2!ve#Towwjp8Y>N54LM_ejh1F0FV5e^nUzx6WaOiUBP@oJ4K) zqA0W_I@M&GzckkiN`TX^0)P!=y(5$gv@RnFfO-=}Kn&Xp1MAT#*ijEeJwF7zfIf}@ zr-c5i$yv)`z5R)qx@Ad*klaBsxD7Bn8=hK<11%;=TwYS?{-(Ze1vz~r8UmQ|bOred z4>S!T0WY25j^qJ9l}VZ{jZla)Qyq$Mo}p&tRg72sRz&q^;@U_&|9;U5Sr@SF^uP(A zegQ4cHe%n4HZ1DYQqwm2M#USD;rVmlzeLmMDEyg@r~XRC)R83yUqDmG>{|2l2MZ;> z>^|E+d*|E^Yas01MW8|=MR?S z(@zzLN(F2zi;MN_%OhSP&y15D7tLK^GOxcfe+<2L@IcC#mqg0YxbjxR&q8e)PI`vC zNl@vN{Y|m~GHPYNjFvasilff{AMGS zuZAxP$D4AHin%S~4b`BK+N#wU0%vM;WCq6~~NdHJ2#)V=V{ zwR?{Nd1nHCh~i|6=HuG}n9@JFsIqBhb~pb6-^FDN;0dT-btFkb(qxf_4CQ5sZ16z{nObWYTf zMy`atUh8SKfGM9~aCdq|jE}T6^>WaFp<+o!nIQO_aI(?k=E5Y7#4_C|<=_tm+Risz zvyWK`3!#T#Hlp4(Qb_2SF_g-;q1>2J7P%0^8^9q?t>-3?F^7sd~jS zjZwXNxTR;|Ax*0Z$!ufv#x6uIR2uZ`@q!1iF&--Ic!cM44^@uf(ORaAmTPM8@Yb7J zjGmo|39kGgbL7q6_F?8rq~T|7CmX5^szX%?fS(zRuG&j0{iR`CAghlyGZd}YW+^q| zS6Y)&6=s_=97DOetq!EeLf_`HRq3DgcMka#aORdn;pW+!6vna0II^EKjM+kVY_Q2DNkMOGll*Jr^!hN;&wLJS zaH4q+XROHLz;lHsSiR0Sl1u1J+^QlDx2JC{lx7qtH;QExVCi{|#8V6z{ zp6xOu$}Pqjbhz4#qtDh)Xy~p|-WvE^-xt0pQZTxjs+>5SA9x(uEZgAg%~zQDjlu9Eq$)xOmj}3K%6eLfPe1B_viUD=Txk!MJx-BO z#Tb4Ur=c1w2-%Uwff(G$?+$scbmJ2Vb`K~!rwhBD+vZ_;J9D6h$HZwcB_Tu<>To7? zrURg6&8Nx6G}8tzNBRX?aU9$Tx!@zl<(eeK~x~W$wHOb3>HSlg}8r zq#&nQKK;n5cNY|PbUZfO@*5%IUrl@t$R}jBu$s1Cz=R1O(U~B|Tz28K&zhKlg|UTU z#6Hd6Y$ZI#Q!^U3hFa2(eavKTSnL{c-QqxfxgHL6J=3}|oc=O!IonHD2XbYJ5q*Zm zG3)*0@w2%DrLR{P0qceCKOq~}{$o~*-~xaw)+^U!Zf z-HAZ#Jm=ZRO`j!bw)%OBfn8^arK`ELoTX(kPX++Emeiqn zIe=da!_N=(_4v=z;}^ojoXcaEQs zx3*5rqPLHTxiFi%p%3mk=DsjvJe`VsW+#!O;VaNKER^Z>V#+eS9V;NEWCrCH+dT>% z^!oL2>g%AAt0NZJ#TL`3x2Brqun@W}+un?FgskBt8h*k3q^?d*CbtYBzqvW{Fdk$0 z1RXzXay;;`#x3bKj;lg!jEU(HI^mb&(x(MFDaD{n<1S2i8P3pm9qGuK7FjrkZAyJC zRq7MPI$D>C-Epj{)b)n3zcrS6wKAz(H-B&D)t?vM-wzd&grv3G|Ge}b7g}~{jha&j z01;DboS2h@D3lB6_rZhFzckMUE*p}9Yjdz|;aR+6zS$RhJgb_`5g1Kj5(~%2&b%l} zYFIRFgU!>#+Pw$C+)LTp#-&IwrIswd1OnZIN7SiF+9LW))2+F!)BMcm3zF~!x9bKbDpnc`B-xsw)8Of@ z_I=le(Xi~wo-JxGkdJN3!~d~gpFAXGn5MILsr7L*)VxHRtY#4;ws{(lJ40T zS4V0zWxyV&uGVX{c)gR@-J>{#$4%oy<(}dPP7wpuiSfCvA`W)^Rvr>(pJ-W`1ykOK zT!NukpErAzAj10$M|~lYf;Td{51@SZ9St>O#+Vr}Pj}Dd!6aSS+7A*3uct__SN&;8 zX2~Z(MA7_#<2&|W2QwqoR^qUoFRsjNu4;x{M!hq6M6H7#iGTS}m1?&H|E#&u^9{;k zdy~#3Zle6m=p9uKOB$eg^j|MJm7ZD!cQuBeRz!s=tTd z`{JIo(YwoY(!<_=H(c?W_re~_;nD`g!CmERA*Q+fv6Q111_+aMT-uS}U3F{jjSq5+ zO1g^~6>MP>zPhH_Q4xiUjbZp;6)^?7tyoi+0a*_Gz~W)co>a&`yVxr2rX@>k0od7F zcWcIWxVy82@hjA{f)0Nl562{%vUw4xo#Y=_8vVPxSf2_ee8o1y60^rO*}_VEc?wRl z;tE2&JB^#`B+Cas1GNVag{gB3D)6a=Wu)T5x3wN=gJW}|$s%(cTURYN=**F{OpwcH z^HZ-vRHwH9I)5_v=XjsHXk{95bm4}U8!WQ6n&nT|d9&XMy@F?nou`apT0972%eJXj zPMB@*J~5*^&42W<-R9|B&)_KRkM!)E$k_L>S-nc;6+dz=7sf~Hd+E%&-qmRZ;!q3cUm&|U;a!!o7d4u!E zj65BYyw@Xtl#8f3e%m1(CBR7+kOs{FCWy@MTS!!s2DPV8N0D_MaVZmXd(FBsC61+F zk(V=+Py7MAN6rDu2O=yU^%hS2TH_rIt?z$}?$7L2GSb)Hrpx+EGd^oBIvmt84Tz~9 zzLLt6whpKt7lo>Zx64XGhX2xV@|!ES3XPLNLY)ie5X$QIs^9l_52KVIiuC7R=~O!C zR4Tu`^W>3EIdbh0(Sz_7c_9J|iO{%}3_bO0EBQ^VFc0>Fv(38)-mmWWb@3U8>&amTzuBev^j|RA{BTH9LytACabK&Ck{k|l zX`@H|5(8~HL^uSKZg~H%d8W_PpH9>PMk$8{jrf_2*kyl3oczreRe`VIhe{0xsGWhJ zuU$C;%2Pwo8SBaCwn}l#)x{jo?g++lPal@Y9KR%l=Rh_1EH|dd%s>Nj2pg{77oCls z$@RM|sV?OQQYc4n{VV%4YO~#ASC!tEuRM2+Jvj}WtQU#iV2a9333@jZG1V%>+{N*A zO$Z}bQM}q5j9SckU%7*AiAnfL00zH@0Lm9%NH6H3hV0@V1L94e+FzPjMeyJS%)q_I zagVICS&Z6J6)0c0(0eA@+9p-Tw@O%4jcmJYR2zGUhP$9Te(hDrRp{wj{9(m~f&`$v zVDd^!Ww1wj7tnB^fTBt1|Z7;_OR?-%c2K zR@p>Pn$QCA0cNbJ{2Mpb|4>sYdIFb>Puq@8v$Lu~dTggY`IJzsj{^iHh!XSHCXbjw zulrRZ0DkRTw^`_^6IWgMSWwOAtY}X`ne6YS2It5vox8J}SQxSCn2*rY*If}cJue3E zKtX&6gBCyG880BcqsU6rA(ul2LIg*ewHNo8iRY<5 zf=1G1-sEGTep6FBzLMbP)Y{}>7(-XL`KmEAFJ{p7Mu(yKj!&1^czp9w{=w~`n+@LT zmHNuRd^rZ!{Nxh1^bhXX1#?8te0BQ|4}}#Z4zz651{m2OB>Aa)XW}?j4;UvrT>*f5 z(lk&0FZ3dZ03+4{kQx5JajKl6(g`$_`n|nvEdh7GspDb!P2Bvve6-QKD9aZ-R4JBm zkSmeUMkd+Enz-VS4jTW_QPEb7zC^Im>orFr4S z9rrfZB3-0W^rLsLvzS;IkV;xtJ|AT7FhJ%_NU8RvfmOZ3o2?yP1`~g(kI8tI_*O}G z+p}*L7wCz7k6O{G0}sAUJ5DS9(h!FEq!I30KCVpP@Ra!y2^N0MS~?hI822T44RVDz z4v;x5iA(qjFcBma_H4BDFwVPAOQedBNzI3eC71uD@h~Whk#xgFyR;Zpm(ji)zZ3ao zJ~&SNL(0iQ7T28*efM9gq28f{H*`U%Zx>%E^tW$7V7@=5O;7^7E8BaRh1Y_8gksIeAS~$#w7kZZEBD7QFoo`vE?vL7_b{T!BzvZ8~l7t zu&_A^cCRpy%(+d4VOzwzIKbKa;zoa7R(WLd6)*3JRJ-9c>{HEc4(6sx}_q9LP$yraIMzv4mTG$oeo8I;a&lY_o zQjSa`iEcI40iPP?_1?An6U~#aSuO^D{7Zw}&N;Wyj`{f#0c23lEMbSET7}manD-9N zm=Sy3j$N%csAH2-z+kt{2HynNPQiRfBkyj7^u=d3xmIVM^zeRTQ`)ojYydtM+`pYd z?|KTe*M0v%D-2%_eAE-1AAXDRzW-|TJYWCKC%1;;BwEL0?52YcQ8}X@o~<|(DkR9H z{;~N>^YM>A31B$`cOyiU`cse#{|Uql zM8K|K1t;f*u`jSFxUfIT?p}-taEox+zaf2mbv**^R5^=_mkz6!Xl5&LGt^f)PL-2(nFfr(NGa)D*X zfG%mV&bZ;XY{kPh#EUlNA#(_CD?UYxlXU(d+_Px3(eOc&e#Ui18krX*4w_5wS3;K} z`qVSIy0Am}MMOVTw8zpLTyiP&OW(FEw*R?KfQ21%Z6mk3`TO>ZB@vgh?vPx0`_TLW zgU;U@8k(rJe`&6D`b`FAXH-&qZQ-3Uz#9WOU&F?Ru-2ZSN+K-Ab%`Z8w#`DGsZ$+` zt!Wkw7k3Xv$xT~KE`CpiH?1~#qA7xPq90>q#!Sur{H4(>K0A6%EvlKlUFNq&waWWe zsNI_9ZvF7>AqA^ZWh!SbydpzB))pm735*9y2gUQl{}E*9W`&CGMM@R}(ArpFwWNE% zxKc>w%rqmbsq_?5a|DHeQIMJQ0C)s%l`;cpMv(;QUz#F=h`%(4wVlzFwAb9E|2bPy z7c-8ChLhS#ZVwYhwp~DR5cZBON`xaYn_^+TQMa7|Xuf+u6KDG=iXvQ7@pFMFDv=22 zvD!x?rDjwUBS-n9(u8P&AKA!gG$tb1-vw6b0aQ6kCTb=c}b-e0fd+H0xnGP*E@B6;^ z`HSqTzW8z5ap}}u_$M%j?6u9lr_9-Q!r4StUkKX2F9`lS?bwTu7QZ_&08DMqXNVl* z&p9~y`g9w3oV&{~mzRmVQ_Lj#iYECHQjR3yCdifgt1GAk&?2mrht=MHd{1sVE)t;| z^m9-odVL}5RenQH9nJ*nPv4)A_Jz3>_8XR$x!COF)4Z^~nWW0CN}FiPL=!K=)$Vu; z!B(=wx7IYNzA-W`G|UOaLWi6u=3s-2TVNK|&EMK4 z56i4JZ~EPn5sq4pG&-Jn;uJdz21EmFetz$oDlmpJw!cXqttVKtkHMOzSR;FTfS> z$gK%g|DzjFB2d=fRO`_E$C_nK?B%16m0j$1#ndj;dECU&%zM1m2ev5D05mg7&D-(C zn7u)O99OGrGH?2-NGe2{dk|T@H$ZnJ1XUO|o`Y^8*Z`BU1Y0EF$aNhA;n>1`;<(mG zF5{00T4|q6@;1{>%ZA=O8Q@7;@pxYr`*S(U7M^-G_4W^i(u_b4YwCGgTni)4ZrZ<9 z5dRaz>VdR@VU0wMzb;SZtEhj^P(TJd39^bZT z!f$S`A2bv5YZ+>#zS@HEoboYXlCqQ+)-WxQ-)iz)YHaMLWH$>|>s`gqr;lluYFCuV zJH_cR`__i9U-?T@`q=z|&~ALnO&L$uli-EVle>)-L}n@zVJ#8_M@0#-`3|#@jR-Cu za~BX`JECzgu7$rVOQ5yUC4F_vas*oy3TST`*O|Yyxkb@-k26FR{H4*w8|)+yB6@&R zaJYu7_hKfu;S^aH2g{VvgghQQ5)k{bXZFSJudw0au%b)$6QRMRdqjd?mUb zpC^K_v?csP5n2LI%QmCpTe?u9Omcv74$R9tz$@6BvwK9krs`v1;_|a6cM}*Q&wak|hVMY+_b1CL)oh{7 z)57iqjK2xqxwfgqjn6Xy8`KiwH!gFRTP1nc_*mVFe#QQ(UgNvG=+Tc3zay`CK~#v| zW|K;7{6zoGkSm0Wo^!2d$qxyKYRVsjgK=|KYc>;4t4EYzq}9sFf=o2eb5GCG9eNAt z?=D=^E&|_%l8lZDdl!D^c0q(HN|y=rDi$4rX}5KJ(ZW35@T*7eFzKki^mGeFF+G@2Cn)Z!p~F38zXjrwU&Y58-6+KI*>;M zY~N{}A=0DU8k&L`UpM4ujGY5=`vi-2N4~^FKxO&FE?C`WZIc*pcHJlgA1e}_%Z9Ps z869d@1sQ5X2kyoRyWwi;Lhq*X+!JOF15>sGZoT5cXg z>Yhyw$hFx@y%2*c0MGOAE#DcFieyHko17EBJ+-@_U?Ow60ne5+g{YL(+B5q4d+tz3 zvWXu_l4OGkE$NUUhYJL;vP!hQ<^8xlhuhsy#ew$$oCfF1e>|pbXOSFc8J8f zI|>_21XD6~?jMX(E^M|ISN^3*xZO4jq0n0;1^!FO4kfPPZXgvt+s*#GcO6;>-$a;G zL1q4h`QAV{`;}j0Q+)HO^Pi8`GHqBApQx3vC^ON&RGW^-S}cBsx9l2)8tr&jGg;g! z&eu#hONpgkH4q9{Y^%NBdE4V%P26`Ou_3b@X&V&Yyp7pi=n~lrFMf9nDT{>*qTGpT z7P2{r1aP*&7@EQ4!k>;*gtTY&@>O|&!Mt*%T)|-wyZ0O3G0$I%j>q(_8#qPhunxS> z@RV!z-vF=!+*De?wHb~l^MMk`m$7VDpj=fkAEcVKb7$QBD(}&nU++;5Z=}zII#|IqrQOU584XRy>hsZ!Oav*CEgLAiZy8*)$nprl? z)-2+AdHD{gwxDTBsJo62fHX+HytFmg2ow~q^=Ax!S{NzwW;L{qwCz{ewn-x|j}R%^3OAx%!BRqvIT#MwFbdlBZ3PfxZp@ohcXtXRBD z34Rz$&0m}e$f=LeZN%?FV`kgB$DdNshH9yzDF^%f0j8@jt&G5f zuazl9l&7+tD3&?*Deiq>gt8(ie^cK5*q^OXXYBWUKfi(Kgh$;?g+7tUv6~luEML-A zihD|uBdd*tNNk3v)ewUggW&wITS~P#I36GVyOZd1b2`o5_UFjIIf}1J42E*hy`#Cz zQ&eQ|#{%;5-d~zm_jdYE;0Idf`01TFg1QkN2W`DMd8od}i5Tu^_Voa@ol9~6x)%Uq#?3gt2_N*B ztf02qh6M`bw0jZT78`X6VExgWz)y8mgTmn5B;M!O*rTfW&#`0$FJ&iaU8AIcJci>P zZr0T|P5V>`Z1VZP@zK1ri;XL*i%!$4N;ZsBi$TEepP1iY3PVT_G5LvaS6m1g&SC&E z;9v>7P_46gzcd_a=Jw%M*~?-5+BX*U=s0tWx!p(fahIgL!gOZt=<#$$W0Ko3chkmZ zYZLQZex8^^jBlc2o9oz%9)8GdkiTAB+%O>ViZ;h!J|>tmJFBzycyl-$NEH(#0_U?3 z))B1>8$#?gaUko_G9&~iVBD)EF%Etd>`|s+?CpZRu5xiZj<>t2c4;N=-RJWc+%dp! znUbAx((uLkx&r7IY5pE-E!Hs&`vRjpuz_=~JKw3Tp>*mgj>`X0{4w0| zKAfbQm6L->DnvS5MR@5Ugag6cp(QpZr9@XU^LVpSplqcKO>lK-jKAsVY!qX3O`a`V zUR5N?sIr3006=tGuWK&}7<7bOo@j=^=&inO`3Gv&U}EJAZe`sb!@m1blq~W6voh!V zTePo~z*{mKR5i-hooMp}32Ivb@`!X5V9#F)5kXqwS+ir0gqR>3kjrFooIptLjNzDQ zb+Uf2q14~9t zB`oL$4#wl+6!0uE><=d}44U$y)ZB>v70lxyL$BPH5hO*t9&AMlJ!oW{QDOQJ{bo$x@jZN8dEr-xhV{X`yCu^~JuI~J!-E`aHyYN@EJr7tcn$lm z`t2Xh;&0zu7=!DA1%|;gy(2kXB@TPf5_bH9pDw|FrQsU8H@xYySSD%d)KkLV=eg2f z38h^cYxN|W0l@}3M3*f7%G!E-Cs`do9f=fOd^nnHm~L;iDPVACd<_~mZdPL~FgUd$ zXfyxnP3qO`D$iCngd?Ea1Ysp9Y$lVuQ0%&tmkvv6JD>96N_Zvw3fHEX|FgoEIFlCyL{- z!F#gPe^4zU3(Hj)%v<6?Ll|HB@LV7x1)|} zIgCIUyMZgu2wwuu3kOt&()62e*|zNjFLmH3@WUg@uXpdx3m{BEROMJV%Q(86m79`N0tC0`^);1)OrG>2o**}P>xAhkd= zuipc;+3yuzt9k{$Z1M+wSX>>OW6GE0;cu7XpQxaoMW{R^mK72=*E;4o>j|yNZkXVN z$h@(#1?#F>kM=IkQ8VS+_E85FnZtCu!};1tq>)q_A9~i7^NU$=zp&1jX7_8Adq1b}m+X@6vnT&3pEKhki{bkc z4mE>JrkiE4J8)CNUD(-57^+a)`)mbYTyffs&AUHxX&4#lqTiRnWr?6QBA=?J2Y~c~ zMC}iyk%ABvogrdVhj0#HbSwyd&douyp>;ZS_BUqJa$P!C(fWLuf|MkmJGc34UrWSC z_ilLx2^Ey{Um8qTU)yDn8>^%N;XTF$Nail-^ur8?FIJ6qr($MgvI_=-ZnS{Y+{8mS zcb$}z?}X*ZeNPaZ?rT^G83eH@L70F*suKrVyx!33#ga%FvU-8ZXH38IXEU1XydKwX zR?RK({u*VFU=uKTjQ4MsrALAY^M$xL=8h2d5wb}srsFB96nd(OMpKSz&Q*4?R9|Nj zygjD)Q2$wR(d#=jv|ecR0`lxqyUGaGL%1ZYee#yA0mPBq_($m;}y zw@(NauRWCngiXf^+Q!8u%gRz=#x9fT;6&;CadhJ*ovHkwdrW3EDDhajZhI2HIljbC z){6j2^3bQmP{N0d?u{HwdChmr0cVv^kj5LK{u4son;usqk|0tnTbFPlMZB{uf-Rp| z3oZ8@(8mu()lE5PJzmM&b=2g}Q{g%EF! zHwnY9a|r%D>TLWo2q3$|pmR>xIzhJ{j~~H-{~UoyjE$Kxa83_;g}Z~GjO#Mrd2O8@ z9x$TtTgNe!&**Fcgh9u=c-1IbplB;ZysbK@1#DEAZJuF*9^0vCs2M*pZbG<19Sp;_ zVn5^=X`rt%o(5AH5vpkE>v*DWXPG~iqHMx{FO4L|dg>e-{Z%xNwNCENdUP4zySEad z&5t1AsOq#=T1@M;wyvSgjElqPppACpb~c#xM$z(YhSH?s(klITUy3ze(X709e1q{S zt<_%e84UPz9cf-j9sf(i(JHdlc9shCfc8Ss9`L>eHl#fc#Y|MYJ!8rjyb1V?f|wif z8fLs!%%rTw`>(#u`-9W$7DxAyOb{^^z&-FG4)<0PLl=o%cVZrnSIBxIZ#U`ahpF8#*3*zPR(w+gx<_b|Gwm-~mA7FFBkj{G%}nuO>u=oCC(T4vynSkm^{lD^Szs z>flRLF>la4gNLbHv}Igl^ENB~?A4qBZ-d@6DJH-Bxx2H%mxo(8?wEMB{$xCXdMANw z5>x?5`@aV|P>fn)2xIe+X7vK?irIDlK>OV`MP_C6*BLM+>}mY!QMG2f-lOxPex#CN zUO@(2sV>P8QnbjUxIkg&4Ez8lskbSl7FXBh98Yh5@FpoDgatrV#i-?i+jCw<$) zizpI(573T8*8Pj0Xu)I2v!k0HtQZ^Wl@(~QS@BKtBk%;EE23w*9M~pY!@W5t)XGA; z7qRaZI(g`Jd8nv++aYv_&%|Wi02b0Jli>EJ<;*T&AasXZBDn+zkH55T8@cjKgml0K zmR0;AV#nTsFF1Vq8Lyl^YKs6>kKo1fpYN61&)eEKf2rG_(x_xgT7DUVJFFP`7N8F^ z(>(pTM9OGtI?-&bk5%s|65n(4hTtFUaS+F`C)>eGZ5%|Qp14JdYiFb0RJ8!m;W~Yr z6e$elqNy(F&G>NDMXup@z0B0L=`2c(M>8}ZX^N+JxJc|++B?6QrACm>3UkHIFtf3l z74TfMfh#e8)tW9C^zTV&{?pT0yop$aM_L+Dotk!e5W!7 zyHn9U=#kxhGoO-iztK1u&QQ4P!p&XPlCt=C#qFA)_QH$2S0S(KiDr3rNc%d%fUeKH zaLs7mNY1CZwlvn# zN|_*s3D0J;k}ipkVh3YiFQMPkzw`n;lkMhA1Zt{!u6SrfhAXDt?;KU%LbVri{wx~> z?-j3z{-X(6_>0w3nb>JqY8j{9?i}>;lS>a6b z;KuXO9lxc+1mexCI;>fEqkg_nC^~^_gAe`&=!0G%rrAxRx73YiG}ZRZo6tVd{6UJ* ztE=qrW__-CmAJ>ecV8nH9IJrEBp9hyO=!);$x3!tL7@Jpe$^~&752<$CrYKTm36H_ zk9@-lxxVRLR-Tow5WdO|ZF@2t-qp^R9qu>^2UQ+rGtVH@b}tv(d3wk*$3!hfDwD(6 zd{qw^hx}=b&eKfmiJYRW$oH50IkKHkHc*|b(>;4v+zDhCqVM9)Wy_3v9xsFD94#8+ z=WnKinHeI2>kru92aMaz2(w49fAo{DorYu}?Fnyi)?Is%f+F|=Kx}j%_@#Z_$`ZiG zAd(-B`b4hb3#x;V3m&yqB+Xc>14Tcn*h@I|WRBsBi5W5}N8&xG&@LP#iY#6R-n3Xh zZF{@tl+OQQq#sT%+Mx=>6L|ah(W26Wv$@0X+t$T_mfA|5C{U z%RT8hG*IsjkP63E>#}#`>@YvZc(2vl5U!P6^!|x08DJ3|^#X80wJu$gewg5O zyR%TCT6lK?C-NcQrO+EE%d_sgysqk!PaK_2YZHQVxsP$;G0|tM_l5S6TF_&?~oItm~XXy%A#d8NL9X9Y!6?D#K#> zU)ji(7k*r;&wRD0m~15S);o0B3D;QM1lF;r0*a#7|2tgjKfCPi|IvdVIZOY4H`)Jx z0f-yg|E666m`e?_<2Hgk(I1-@W%!{>UC;g7;*ylBo#R6E1SNwEzwNMIB zZm?mFkfCf=bi$dfy7aTz1b>GSp8?cGa2K;Z)JiR0O98A>dAW0Bi8Ej<}yS#1Q1R z)SX`lBfWgIOlddLR=60}qBC>MPlPar9+{jqW9kTUEw!J4*qa2S`~w1A>s0GfWb#wW zuOp0HV)J5F(q7g}b^ju8Z`;* z<}t=D*O45+%e6xZys$a-kC1>S3>;I5QG})AyM(o3p2a;fGbgAVUm=fNWN)i`t|07r;uwk%M7qY{Y} zFPgF4w6zZ-d%?JDgLFJS9eXe-6IZ>wJ#*-U$+2bpDieazln+SOrGywO2h|C(Ivf_OqTB&#}qtA`(MI0~*vbP2xY+xPw{`rP!q&kgX$9dD%6ghZiq z0s|$I93l&Z1{nCOSM_*C1d-cW!x%xaG*qb)a;&A@#)PD zjo)nt+S6$pg6lB~pWVB60g8b{DOMNRx}97>ZU#9Hax{+yo}xbxCZi zPseqtTB*>69^c-JN#6o*6l6!>d{-YwD;0a2@4z#&+M)=_s198+n4}icH_t!GIxDD7 zPX1VUqr#t@ldGQhFL`Bbyf<`=I%)Hgj>DK zB*<0}6^_pl^%nVqB7GLlxQ*!fJ74&C)g{%1>%slxE|+ivbs*zT5s_n3*=_K>m^aK_ z=+_dqG@ENUJ|FLwA|7p;r<7e=ZD^rRVEj$}eML0Zd{$9a|09QC|9<5Y!@P<=ROu?I zT`J`DLET%_V&1$aAu}R+TnAr}iR;&oC_rR%`C}a3lkwi+c*o-%!)5@$>Ub-Kdg8BY0e82AHDp)I1@U!tC${!4Qs?Eeh>DO#X9Z1q8l z@3a74$hUv{PI{v$8LtJtp+P-Bs6sA4)`hecQiUczC6F(DN+guvZVB^_Ja0QJ*M<~; zs-VLW&DMWu9GL;*h(LY_;9lvFa-1R5;jRHb7KSuxsu3hVy9y2%Pox0jNwnEN-jrkl zGt~fS0t1EbjdY?V5W)0MOW5~+TTeLtZ9Ta&$HpU2@{U-sq@GPjL|IN;^Qtx&cb*Vb zwu^duZ`XQ8-79N8ym9Z3>z0EG$$69e)S$ECVn2-gldr(_AdZ}!_cr(T7RRMl z8XD3iVL?7n=TvK^D~7pJKl@&Nc1jAQg{XuKHMX`bdO5nv#1*3lJ4+>*XXHOeew|&3 zPQjo?1FRQb5M4ugBxushx2`(+08bNp8RdEY;lR{LxbklN{2trAFq5u|tS+@|ao zL`=6F;@NMPDmTwBtx0>^MM<3tichm)pgMJs zA0pOl6+AoOaaAIKZZN9-h(~Gvy-*dT2Y!zHa6(G7aZKY8R@$;hi=FVvHY_ubPtn%y zm|K#8e0FwFB-SJa{VBTrU5_Z_{gS_L9`Xh;dy(xIBN(3$wrCH+Dd%WadlU?%S*?+7 zZ1SPU4T2jo2H;}zi+0cZMU!2|X00ds+bYW=GEGmaN4A^!Nq%HCVi+E7LpV+>nx99& z?+|G4le7KqJ=BTm2Vnj0Z9Vkit4tOT{F)U+itpW0+5`ca7rFY$5BS1AJ-_}e!TUIG z|KXcDhJ)C(Sl2S7Fv0rx3^9LkA%d!eca88Ms}q?6Zx&FF>vXZAn(g}#V;|v z{~ALLbS?Pl-Bj4(giyfkMTA^MBy_83#gy2%+ZMjv>-|_Vqbuh0t^Sto3-%5=s*TxY zCnsdL>&tIKXNja^C1M3uHdIh@OhXPoKW_bxf2H{;)>wdV*!CMbqJzC&p`*S=P-nTEiiy}vGk51vo?nFtIjy;Ufk~4`Y*k$yl_jIMarH~lk|2$Qah^q1- z8A&_+3Yn09TVro|FYu~!_1*Gqa zWzlmR+B!KH7Y*6m=@)TgvF^xH2j1-f0vOu|EHA7GN2~)Hf6x&kf#<4(i-#g@DxkKh zaYe*0t_GD2qr#!98$LvR88U8lOnw~mqjvsD*4-u;=^`(XLQ3ApH$4hJ6EZJ<7 zsmrnboz2)+h|uYsHbaM-T>q2K>wCL)kfDFSrYXw96+9OET_p3P2nOsf9kNFhnkLJg z*!M-2ZkJ)8LSL=d?O645HY;g{CA3y&wZ+%+req(skV(@jznyRP^UpY>L z?9n~AISuRRuQw}S+u(d{EVmYZc`yDU{tvd^JCLpafBV-~tF2XgkD67hcCC1qT2-ag zOi5L3p?1s^MeUY~qNu&8y`^?rRPDVIn~)e05_#X}bMNo(cmI+9Bsk~fbzbLrUDxAc z0SuQpJc?mL6P(J2o{34FUd2PDR$N)F)ifrw3XB6191o+%LcWC0MnyzRiCN77ooUP` z{_5Uwa{o1?bd_tJ5!|AFTT!=k@CmM+@4f%byl{5=9!P+-30vr;*(~E8YxcHW!|&^r z@R`P7$(4(Az^8#sdpj>piUh*#)%NGcRC0MCG-D0YOxCVLUcl3_rQVx&iw0cxE}N!BIPX1R3UCb6@qyuikGX-Pt^K@pb$MgP_kZ%8*Teah-^j11Sf z4phiCKbhcn6E{o$9ZOT?Uj%)3tK-3-sK;9JUL2-Nopc*Vl@#K&I?4gl>QixyLXT2v z2RKo-RewEevn{a?UJtFFc18ofL7(}BU);4VZ(tO6Kh1HCthT-;=TFNrCbVXrHP_9q z$l+Zp@RAC4e!25Ah6JSof_#=7t(!vzExV&y*ewhWo7x{#-RkCoR(*)Zo<`wI zf`fxy{On648{Y%|LS%|+E6O0SYe-SB#j?;pJex9{S}MpWBDbODJ>2^WD_zuTo~I66-f3bWAf(A(1OoYF6J!x;Urg5Ql15 zfGIBd1EBkBCd!8@2CK{dneH)|%NJ30OwskvB(G(}Uuk^)54*&8_Ehd^^IjfQXez<% z5=oL?OU2!QupU*0~ zp=~`$C?NX6n0^SF)J=F6wfuoNHtQ!gd6MFZgI$P#c1&> zCqmukn27le%*b-H7Yz882ngw|Z-%wg^EAF*cx?bNl!i}V;C#y@}1 zFPrr?Ve%Q((CJmMLa$D(+Rp?IwCScmgTt6w-)I`?$z>xcaE*TMHyZUP4cps$ksjf@ zK#jb!9Dm5snN%i{%ppyKm>#mbuOBFXbDY}BA<8U=opdxzHb?G968T?}f5C4n@I_*$`h~V#74V`s*X;aS_B@I$d)adSpYg%X&rTojf9j^6OGb;vk;Jh>K=(%n zl}mnzRC5wgM+149v%At4l=!u@iL*NxT>3NI?va4?lXtpmQD5}z!lOor_@ou=rtjg< zp(k)_x(wZNuqS%C1;9C>@)KC{T`bWGXI`*sBiJWsqcN`(G?LaiTql8`br*~t+o)@A zPV(^`cF;R!EDZ0r5eIZWsd{XyQ~?1BrAltp;8`TlKf$h(h4>tTKRitV0ty99@Vl(@ z97U-^(V9@Lou5df$RN=kAst)TerxTj^GrG9vpFU>K3PI&6CWcNSMZaB^fMBku=fGevQG+}epuu_?N)5=>B3&%V zsr6~!jK@KFU2zN6+u$$xaC7R6(0kOsr7Eg!N}-dS3vt-JFUdNqT?!Qny-9CR(= zjql)-aee2%sqK8)%r8Fwe}@iEuyXqwQQp7x?y54XeCO$EL?blVrA`hLc<*8l=S3d4 zj4*WzrKJ4Y1XsQfviEve^9HArEmfQMa=vFbe%)5{LwykwD; z5N-ks;BaJfxv(j23|tFkJhY4(*gfC3>v*6!eh!uGm(yVv<9ctDe2{tUc?I6B4dQh( z*|ruzR)Dw350SO?sU~A5#NbPl34_j-2~!gT!JwvCE<@q=^eAp!$sall16EdS<%DqT zOuq)xe-OfKuqRu_6TVBq{VF`0pP*h|Op6P%8LP0!pA4T0soPbx#2ylROOFn3k-Jp@ z|L`8W2g#y%C@eP6C$n-Ogr648Wqk#jVtm0Qq)OHQl7CXVuwnAM*6t}!8FMt zbA)zti;ULY4|;ZQ-z3mZ{S5gBSbx8U$YG6QN~R?8aVv5A&_*IXUE_54YL%05Lrcys z$udK-+P>j|tu9SpWg=9l<*fim8anYD`92r>%m<4!sxu-y87NT9LT9Om^;o$-;gY25 z5wrU~COA(Lx}{br^h>0@;S5#L1cD}vcB zyzIi6=N3E9s36J;F551J8=9NjCImV%FGT{MKNh%oLL3N4b)~Ow9{G9=iOoeFq~a=i zWZZ%zK>SVhDHiX0tG3xLSWY~$wdNsOv^`Fx((E)X{2#SL7AnGifaIq-3~3l)?LX#Y zB7H}h2H(|(RE0Wav_}=leZ-M+9hJU1h+^OR`3K{(*ZAoTpV$>+xWyv2vcA|rT)d8rK zW}U(jB%xpslN{zV&La0^sHhZSjX5OB^w!;R-dj#>Z9?+S??W?8 z*_RV8MMQL$|8mRQ)?foY+}5B})8H+tPV{zm z%7%Vx9`hB)_>(t&+JC@E*k!K$Fmrre`!P@dHHDBj8&Hgq-V;onOFa+*@$}-0$3Uek zr7HKUtM}KM+tYtFW*(sKWpc4^ePPdcYyO}wP$y;cDSm7_rW27&4D`on%eYM z4>G})o3OR2uF*%Po7z{?|K=J#(zx+{+1>pohHGHaQJGQu4Q!DracnHj>SoQo%YxHA zWDH-UbT5RRkD7q&Q{m0Z-@6E1%;6i`oDyzCteu?2guIPdeHdX(r??TQT$8ThJo*mK za9VTK4VXdQ9yLw~F_`Xnj#>y7H&kw{((Mh3T(Gj$(feLPY_NUcXS?0sMRb>F!_Bi>X6- z@CMX>$U0YB<^HS|hr{{Eq=iaCDD&bEDy_H!5)U@FZw8KiQWMY1*o+k$SFkbAo2hKD z0Sy|pOgPSr8#pE{uL1>TLI|Iyi|kfE7mK=|^HaE`4V6z?c!(8M%$$O{8>jM-O%Y(9 zE#cwUmQA?Mo0PnPgM#D>-bR+>xCV?7xN8F1NX=EHYmg-73B8;BrlsBrD6bH5HQ;}n z@Z!@k^x+>m5a(s1bcYd9pTvpHiC;U6=6#ql&ckKiEBk1ocF5Cda4+X*Ldc_Pf`&m077<$rG;<5ErrHepxOiBGe-UbrbI}`;uu$#k zx>*uxazKwP*-Yv=Cf{bjRu~aH>EnuL{CsQEO>%Xi8f1oS%e|(vw>l0vVhwq2c*0ZT zaJh_E#^2kX>LpGsSfAnN2zGWju1DB1oK4k0144KQ2dverC% z#J9gAQF_MCYts5ke2YFtC9Dx!g0hGXld%B?LsSW;Jde~2JW=c4v0tZEvUX?6@zy)%90AMMwygin15F0?@05**yLUFblJN&M|d$$yft z+|HeK{Db}B>AK&g4}=xjza4geB}9)9juZc}{1CffNdTK-N25EGt6=`YuOvK*la!$y z$Ha$?rM`3qx1a)NanT_m>54#=N;(bxk_A=~}sF@2B8Ow}48@Z2XV|FZy+H@dK> zb_>Fz1`og<_i`3jQI3BbPvM~aC$a9vC$n($aubLRwn2iva+FZqUt}wz^5O|g+e9|y zM51Wjy4n1#6~4~YRCciLeiAwE`>lun9pUXvU??OEcF*9a**F!3LH6{ZK>WE(f3mT+ zB{$Irk})x`$$*k}8j^P05N`+Bq*arhTJQVjP-pIC;Z!u{lkrVJ7eGedHXE70VM;oG z#?Nw}!S08gugyy3Y*m6lUCp{Lh-h*CR5H4G>vForgOM# z6gQ8byPfk9&8jD!PgL6{THmX*|L|kk5j2J{?zRfCAj-goP-pwPtDezh)!d%>tq&*h zm)FRQVk5&xmV1g9{&}7fqb)tv4mr!T{kQMOz7cD8J{CVod=c#0wK;||EDH9Af7&L4 zE{o+?C`kWIt0}3!k3Q1@9-PfKTf3TS8#AO2H)@j<5Kd-{x9)0)+Xwo-SR9GlA_F&w zZXM8#5Ejl%LL_RicgX5Q-5cl;tf~WMn+Lw}3%~mA4EnKUa?%B~A6|R&_V?CC;?Lt6 zHh8zHY zXu7mQ!tR0&oYJLDcra1kh>Za5@qtxe5DkwpA&(V8H61%cl|AH7I&YWkyEcFCesDwJ z6T;Lhz<*oRkLwilx$&|T#JxhY_PhcHvIRem2^;)uo@=wDM~)ZeKkOOL2PXBm+>d5K zn3j1hU*+;J=F1u~3v5qs#`6Rcn@iUi%ts9lZ3eg0;?&cIRphx0I6Q2G1lWJj1Sns- z9azH%z<%I3CViZ6a?GK{52Mu)L6kNisojXHqdVkZD#eM?fStK~Y>hMN)7rMYG+&~IVQZ>>s%ArQ@Qg#7Og>f0#enLY z1eC6!j+6L%k(?2cGb*=Ec+H;a9x`5|!Sh|%6`22w1@17B#J3uHA8!Zs3`WtqE<9~+ z`5e(BpAw+$I8SY-|Bw>RJ}Txybb~2bT~@hw(YaV$m{*_zLqIt~?TQymN$wbjm34+I z>7!Y&gjyM$ZU&Uo{kpr#5WX&E!iDENRSzFy$2Eu5Q6}4MYu2*0p(>`n`KdptuC>df z4odTw1OA3~0SBTe;-}r!#~;IRigu-8KUeCWH4+sFB?jPZ$g?T=Y|*uW$kjgB)7sx> z=4?twL;N4g9>1$ve66PZ>P`ejcRroUu?O;3V!dzJLKioPwsjI-=T~3006P!k?uw(7 zgkKiUlzCLWBR=y9ga@Uz#l?MV3E#Syh+P3?()5z!jhGnx`EAk2H5P7w{B zF&6kt|B}kRi^Q(n;tVNC{x;3}pKDh!EsxLRHoC9XDmL=XudLZ7m&5#jAETUlhYUv9 zwV{gPl*__(`hI<_j$r>rQ;{9OhD#|EO=thAwR>=cj|IM(wftbJ3bUd$E$J74J&SAT z^ynGuaH@nov++1G)z95>xiaj9v1S^(NV=s2eAm)j zF3Uh%)`W#V5N9fiEnE=C_r5aMbVj}eN1MOm-1H$Y2er#2Lbz+@U@!RY+XJDKDtJ^b zhng5}s2krU2;^x<%4j}1+m25QyYsvyHwx_K28cZ7&Q>4mzVp8WS}oJ}=C%b{q!ouqMBP&}Cf5p;m-mEm3Cdv zF)OttKPqa%ZKiOal?l86K4tFOnO2x6?^N7k%i+W_U4wnXWH{|W!gYw^S^L7C{8M+*@k3C+*msM5LNeoKaP!fk=XK3jTc$u(X91S zci>+NjH)M1Cpj}wXu9@yIZMEI38dJymc;r-=)t%MrdO4k`>pzY;FGT74$!MX1Z%(sil{m=|HQXVx*yZF+0{l6fA_>tgtZO!wd(SI<_66p*r zH+V{hh&>%1)P1Pk)pgwSlyvnfNlXcesY1Tw8H;t{g!#_$@Cp`!*}@Lm5VbgwjtPWFWll?Hh-gcDUBK=F`e~+ z9@b74!~h`5_iZJ8HFpSq&P*Ga6fm99d269sx=D|p(;rHW9lRQLNPGJHj*ze!{k(qR z;rJF1$m7MULjWjAM0m(OUgk*!BU-{j4+xa1-&t4NQHve@;O@s&Vcv>ts-@fEE^!@{ zoOBqnzoxEl9MIuMbP3@jfJ;UKP@ZusG$d6QXt`0|FHi}pf?BU&lK)C^oup9t^*-0% zqYUSNAN&N|mfYCpAESI>OLBWEo_LL@5Eh4T1gghay%{x?`KmZoup1)1aKSLJc)@@< z*3(UVkml_OPeV!{&FCgiPA7I0z?P0;sjX_e#(Z-lawJrYq8zZ4cU&`z@adFou1lT6 zK?OqoY*#$0l`tI*9Qw=b8*Jj_%E#u17e~Z#qpi@7U)$l}ux5zh_K?whd`~=%sV|3X zN`YFM-i82w2_(7YT+_eL_g1bf&uIrw`*b!= zrMXBC3BT6(=5q&tQdGKR?4Ze5hv&ELHdEU@vOrf|+us9;!bzn?>U+ND2+Y;xf}0~# ztv(EzxM;@Pnf@ICz^|5HQOH@r(yjEsn~*)Z>|g@77VcV)qIFDP1^X!<&5m_am8X5V zoAJ+w59Xij$$jT9Gc(Z=qbhPG1mjBxZm2`n-HRK5&*Dc=ar@eyi?kn9akNh{b=k#O zXH!`uhvj3(^MZ)VKNOUA-s*_21E410k_L(1>R?%eGWBIXt60^b(q1cr+Me~RR43t^ zt^JF5mh;4Srr)wRGI=vRg+N3YxCY2-F=MqIiDebN*E<*qcyJW z*@}*l#YhTM9dc_eCR-NM5~Sz$UUo%~H+nkzcEplcM3gAnDV`|GHB2o@;{o_rb#qiy zOdo^-@WuCdUxRu6#Ibyh>El1o3L9+F!hij;a%sDEq@f{J6Em?2z%3SteSCL1VDt1b z9dhEXVf1a^Yro^@ka=^kXd8Z49T?cmKwR?4g9_!xudj;3QDLplCd`?ws zs9^C=Qi*au^Z_{^B!o@uyMV+s8nL(nO$)W9zx)&y11=K078fHwiPzUDWq-VLkN$B3 za_C6Mcf&VzBDm`}5vcMT&F{EHv?YlVii%y?mN^L7*sVTu6*EjzMzBvYA@lbEmuh>) z^z!_?d6Ld8i3t^5PDPHTsTZvLFZftBTp`h2SH?HK&xGBDv1xZrc{pM(vpdO17pUZN z$wnmp=G6N219&jofrXS>-+7qBD8L}RqhSx!z4EcU|3Q}TKyHQzqmpTM+E}yJE=3FqFskUP;uN%k6>vhROM%wD!G)i{rnz zT!MJeXW+utgjI4!$S2b$>1b@=2jbu)mQgD5Ef&-w4gG%AwS+CcohEsU{SF%BoGb80 z{|BSBv1t1*1>6XjNGp31gcpNBiXmDWrxf*r#)K$Z$;qz~7t{ z2Q@N3htP$6VScXVD^KB9ZjGpSC|03vMZZsNRk|Ga*&DA~ZN8Q;^MyQ-xw{RaQ!|tK z_!vj<$Dm$&9iMw+y7vRFZ&ktOmK`MM7*K-aE15b3SI~5R#BPvbR}l*;`M%#r-Z0a{ zT`qlsdoIqSja${^| zUM&{!36#I$`c;c2DW2Fem;BEW^V5^_3J~8PbNdL(rm70-K(_dvHkNF;_Q0tJ`U5Z^ zP5Z=nHK}z!v;q+N=l1aPQ)-^rpaso(Li-vrc3BMjpZpQswly-=m#dv?C=_fsC6$*o zWbfHUVdl`%@Z0V~!yhe1T`e?{a8Ei(x{GdQPl@-+cWhWVsx$;p7M*OHa1ViYBdGn8 z#wn*bD|f?89mJ7#(aYZ{5=Sa6k7573M$eW#*V)+}ZymWlyr0~_5{c$se-j+1xtR3U z=xUexci^&!C*=Ns)BAy?SqVx#7m#G%CBfdz>eP}&Lfyfp24inUd}HjDhVji-6@>55 z{+zY7&4Cz)J_pCLIx?285f3D#$+zrLqj6z;O;c*uQ1E>l&AYtgXV$`(Rg(yxeYOWW zz={6*s~N+J(@*SrBLmu=v5xIWrVxh<J0X@B)mT)76(RKe9(B69RG2_ zHAfuh2^^nWu=wr^L@jG}W$4FUbL*lia=MHA$HhS!y}NCphJtnv1QZir@)Z4;pVsgg z)lMj(PCnt;I0cZ}1qR=oWKqC2)(*!476!H?HJ{LOSd3xZ5ICx#l=KMdB9#~j z_i{}c;x;cGFjT`J9!r#Y|F~+#u9?=jU^Kn*?X)Wg9??!3?V#CaR)h&EcjJMNgzZ37 z!iIBsMR7HWq&rQSxgY$D=wVykXEU|E)$#t5^4VJYosIQv`Z?Ec{yFs5T1`8aj5X0( z4P~=_c+~kg(?uRo8}I(F#03KoFDZkcah+Sx=Ko9a6GVTpsgV|-1mA^R4v@`yosmcM zk>u9ojepp5O;7oTEv$eQhSv+;g1op{{nSt6IjP?dp@G|CBLXYex42RgrQ|Q8CqHpY zvG6rsZFqe{ul?_ZmtwOmzqXRDjJV}o4_v`qLs^nU*Rm?gdtMBa)@+|rNPN<( zKOrG_?BOZx!MeP>q~a0C9rgU@`lsnG$IB$L@S}W!(^Iz{mb-Dw5Bi$u^lnn{oZF3; zTsA3;TmzOq?k-wF1xjUM5bN_8`po9p*^Bpz$%SsoJk5AR%(-11`*U~$gOo_$^OuG< zCF<0K0!e~jCx^e=E*G>T#i})EIa$66&Toy|a^O7D&^EUh%*GnkH7qBjO^2I1YFiBA z180Oh^zWqEebjlhOKa=GmJ{Ry$w4-6pVRN*U&V%S(h?f)cX0Q5JE3*f27sX;r=j7%#=8{zRfJL`-RU;!q$Ab zE3e?hNme_%RLwrdX-b5s{@LegZRcV;2VUpa^@Z25*7n8#N@4QNz>n#jTY*bi%mM&&9~@okJixsdQQ1;Z{a^(3bmykE7!eTGD#2`?(FQ z%jJZ~u|WtxDNUYyv1@SiYc{I=^UJTSVs0iwP?U6=Lc<5Bw=R*V7>c z_+LEK0!{VaR}$bA)O47wRY+=CwWSR7OhZj>ZgsUJ_IYbDvMve5?U(=j_Hp7T!T^z2In{{`^4l$usaPr8!zON&pPm1xI zBA8;s_WD+6))ZUc@qA zdBi$6)Kt0u(`54rWE_N<1mY&L>o(_%95)oq@O3dR$r}zUglMt`9H?% z*dLLjES~x}oh+2d)n4P;uFF0P$o3hv^g$72zvyqHpKF#CzOPC+x@-Q_L?YS3=u5gi zW8_>wLWDpsZ1UP6aOK}wfn~_Y6P4wqX;`luUmWME&uW|bPcVZNes;^em zl#}~|0M1N&7*kjBn|c52YIu*QVz#qn*RVxTRYg{!_?hK($-jnfc)$Dk_YO4g84gE- zrn(Lvo6heOLHrNA7UDt`Zir3JeCdh1SA0dA+4%o{U5DC|To8nPxc4JJ4kkiDFzPPXLTX z2*WS+hASBn3GuMWW;N(mO=B2*fLj+LQDbNtq_44uQ+IE_!u=SWGJ7#&i(}1Qv$?(X zVoJL5WJK||pu)(~;vOX{F3F(1_IA0tem|!u&@OFQ1YX%`MzlpG?i(m{jx8GvxO@KO088C+~ZGZLgLh06rhUIDa0b3^(wY*M&S{`L&pMaMJ#)L@H;Q;#mYgpSRZDC)@+iuIY^E(*dYv}fYVoe+&RBiayq9Q3d^5z=ox)$|Ds zl~Pv;Ml$Yv+%{LbKV}=6QMIAxr+koa@Zn<&>wsLln@kp3y}E?x0gS;VyC`zmI@eXU z`hsh&1MPeMpBg*x0TY3;3X_knHW+ae(w?C0o<~rWfBtIkUsDbt+`&xDU_lG5xa(0l z6;L~cjY_4n3PJFK{ynQ|N|-FO)=<<>QRjz?a+7ACyc7PRxpfh2v2~3E!C54NR0vGy zn0Pg1G}UCtm106x4|aRr@yj@1tlVi6p3LlPGRGVl2wfx?dfwubi2g+(3>GQbKPNs7 zF(&k*^wdP{aXP5uN0S}UwY^|CBLQyHfOE<&0p8q^{#L6jQEGbH>{y-<$u5uq-8_Dm z9oOKsm_Jds#Q3%COhaEGJ7}mkNPRl5bQ$b|XT767GBPy`(7?t75P>|iQD$b8DS8xF z4b8B*i4C57grEh>zkZ=|;Bil-&>W&sn?Z#OzEx*VfUznDK#{+F5&5$wD~u;>>;hmr zyn=cTK)C!ArW!OT-P!;m5WI5!pV5lJVz)CzR>mQY$L|-PNMfF0OLN@Vt}|bypFOs2 znuI&l#FAAAf#n41K3gGNaZx!TNm8lXy1%I=fBPb%Hu|3LcJaF}IW|rBqnF%QgolrR zB~~}IAq8?W)$yQ+4gzvbQpsvUej%9!=1Qw;onrt6O&gj}=8&Cp-+bzeYS!Cc7r!6z z;wv|2s{y@5gHW6;= z%4Yg|Arg_@ZHEKuRF9@BeWeLc)fCWtAKGI2xk8^UE4pdWEsvIBLZAKy*?QDdOu&-_Fl~4mKDuY z&esb!gs#&W(cC^o)$DYMPWbuTxs+Pjq$MfqML2wX|B*HEdtr7pbDBCkogC!rzZ6%) zWJ3gv-mTm`tP0V`9zdcX^dJR7(_vqVOIzC4Oune9YEhil4jWsSDLb@^S07_7n(7|B z)#&$dws#t77s_iywFkcib$8zwe>JJ5fC|*8Uw=1m0R0AdFmy%YYCQgt$=6o=XF`) z|A1OW{3%e9v~*O<;;u~e>vpT$!v_Q48WT{=Q4PywrJ6aJ35&=Jq^w|B>MF74er7bB zx6I$WZI+enx(`$$e4xw>&2zJHtSck~b>TwW8z=wEM>wI2eX`?L)yfW5O#_(@{_gxHjzLtoW83kSAph6i zw9#SlUuwVv;JU3CTQ6&HMn~quJKu?0@HxP-X2So~fnc z((OOHaj{IQ_j!8Ea!)S;Gwd` zb2q+hRe@-P;fMInAw_1IRSHGw@~@0nY7!1KRsjL%7Bq}!!L=&jTX97|#nR55xe;{e z4O-Cp0vNnFBCk@h6o1QDc&QGmpAezXahqOB$B;f6iG5)xIHbSaq?`!S!k@(#iw=h+v;p+5Y zGN;_ia5RP^#4`)=bYe-^q;aa(YTrC0pht*a|&@}|IM}D4+%di6D zN%xX0y=nPQ1HsneV;GYakwp@C;BlV zaevHd-NFKkyb%&eD8VrelwlY2aO7Mcx;#{;(wX#?Wynk;Z&j5F^wD(PEh*jY~dDdsB*eVKjuQ6=i6X);W*1S5myyAAV1 z1(1Yqt<~IYsueD-$lDp~b}P4eNx#3R7z`UX(}`H#2YD|D$4;(?%=~it-7h{M*;sZ8 zl9kJ$7x=1Tp@0oQspk$r-iNW`qO-YcUC2`7k_zoFQn|*(znHu+7mUzsp-g_Vqx&S@ zYL*H55-?)e-yXu1km6?kr8pe|{HoTIl}Jwb&nh?|nIQ2F-)L^C(DxL@kU_72j0x}q z1+4jz-$?f@;pk2Ji+$vUjB6f_LF4^i@(SP9c;t_7mpF3hy)rTP*RbS4^DrhyxBB~! z*m>Q{TP=sUX)dn9Mva2ni}vsrKS2hJFFg2@A|L*F#6J^Hp6e2e*Ce>09?nG=`dqK{ zT3thQkzTWTJR;NGn6)j79>`7*?yU!Sh=#}GZP3W3ikP_ zf6nP(3Qz6c(bQv4Ec|-(P;I6kjy3gU-a|5xMF86(Er}-|wr4vX!jbLz|DcJX7Q4&v`C*XQ|)e7<(ye z7r@n+AD_Q+vs8r!YYaX-SNt*x()U!-(`U4dhZV(RU%Au zH`0zst){LOk8Mst*T|E|J15CENz7R0Wl50S3`i2@)N_#>bGkQVSuK3@NjSHUR`uJQ zSoAdWf*^N>M?Mfy|MJ{Kzf;2MkufHtDt^w?RRI3dV%^zrvQ zx~+$NiUexF9o)V~{~n-Z#=KA08uN35+;ZcUaci%#FiJI=te$z<6;&nFGHE-v{=He8 zZ{DF<`>W(eyW`6JIzzEzZ3AFibYo^)JsVl&cWE>sDEsyJ$0d9qUC>{3rW?+JT+IuU z#@1j21MCZ2aULk6E_C7pU`N*XNATzG16YH3tC#EHjkn`Q2g!HdO5xF7OBT| zPP%NqMVD}Mmi@2oe6Q)Wnd8s2B~@u}{Krf6|9a62)HfpU6i0k&ACxGp010w^FuUe; ztxNXdp0&`bg&5$2Bc=yv2ur&7$+J&M#r4Am~0Umb8 z=0>orhxO7o?*RAMOK*6r1_MbLmyXIwFC-bYwY5%%J>21C02(;IH+4a1U7C6MCaMd; z&fjk{^2A*ue%l?dlT%wDR~w{b4K^_sIdH`p5DKyJ!XfvaTuKnVHS4AlH&gh&+Zrtu zeuR*St$75v@pA{46~`Mpud zMdj`t1zX|DETUFgH!-X-LaJ>DB_ydt4!Q%ISNMIN_y64Zy%i435#?}z7vL7k^MeM~ zAX~J*t*OSVXmQak(?1bybjNu_BwZ5miT(q6;xti5DfVoxX11UuV_lce$vp7dy=2%V z?!^i{(uvlho0pQnBi)+}V2=AR{(1@{0lm|Tv`|OftfAMiu~+_G=? z%bKj~+UXn6QxNRp#S%ow{^PT;q^*ThQW?!&^WEqNblPDqA+Cg>YLX?v36*VcH3jvf z)md0ekN0hya%TpE-DE6b)zs_??0=OhUTR-8I8q#4=83V>3>AHG*#eS&3AC$h;8VYW zT|t~!z7GmZx6wVGfyIM9WsmHNMgpicyIdv>FZ(K>vZ9~u+zg@w)G*okl1u%&)Lqk{ z^}x?Z!?26-h9R!&_R%|$dxLzo+9ArJIJN zZ9H*SyXg#s=!ibU}-XUb?O)R>A9acoEJFm! zss%;(FBXG-T@drsTW?Um2Kn6-cICYWG&!zIvbGktoEKa~2-civ9F57e0p6UYvn1xp z&|Neb$UGz4f>3Hse_hv@OzPz0P4X)45d*;hSOylH?r$XNU(Ri*lN;9eYozx) zk2z;dj{pblUk$WzmpI?)O@MtuM$C@sl2|Ip&uLMkL`oR2B`|Pzu9$? zq-J1AP6l*6qR#{5YR21hph4m;z0K{3e<_|A5oWdlqFgp`{m}zxfLUNZeWB|D`3lDx z-s^*NhlHu{?TdpnFgq0|K6n6j@F}=I7cZj^utELPa4$ovy{yj3@ub8Kk$|;ILGm8J zC(qbzc&;6yf8lH##Ch)<<)}hWNDx5+qySSvKQ-vK6P}cW3Kg=Nas|_^o?OiMMHmwk zEW~jdgG>ZIok<1uK10?FJCVHmDyf?ic8l+HH8nqi8rPkYZ+`c=IPo-c>~dX+9gD)p z1r%ZgKVjkfWlpPel6lQD3OaS+2#fdk%Q8OSX|?+Uvj0KyiQ6X&k;H&w)Q@2ue2TlC zkdEi{FR`!EqG-#cR5G^^^K%{DXgiNf?dLl8Y-P_sFz*K(U#Q0*P*a@Vr>7>`n_}XT zlQe+*V5C;&$@ELG(kma~?|-|LN+@+Ucv|_oS{u7Icbi(nzZB0=mo*KY&^K?xgRe8WGHf-{8q0k4k^9;Ay0_w&J zqPN~7U5ug?yQHztzPGK!c#5<%#~tn;gL$w|vA?Uhf2K(BDpJ(F>vfYd`<&Blf45D^ zNXzzjLZF|rX@LJhpl-6pYw2htL!<9xBQ2jr)6}=R2?@zlN$I}K;xxDu-B)Szzgk{y zUfkd7ii<)LaCHr}i*0%~5Ard|`%&0KgUhU%Fh;O5<3fnWEW`L09r}tkMncD! zR>sRbjv|B(P2CNX6)|H9-p^ncLAR@PpdC_0#w7Ux%tw!q?Y2tn)CH^r2Z;eF>R_h` z>&yR%R9mbywJadybUK?@XRLQr_*PvRf2Swjt z=6@`vPidbGnUR-pMzN$v<-324TrIVPf=U) zm)v$Py`MBSEYUBXFAl-RSraWB-Lp;mWcs>!rU~bRS7yuaGMYmEl*5tKXJ$0@`2zH6I$d*i5LOwH`jQUKoYC z1oCurUorC$a{6=M`kw#>8|hx@1&y_TDF!sSb@O13$9-)TF9Y)z%#Cij;s{~?Qv9ZZ z&z(9o+JM3mlkcxJv%Hdhfu3Ahw`*a@31mmbcg|0`xY+-~!0lF|rk4eAQpL-h2n@-} z4en5CwY)ns6XdELMm$8!|F+7UpTI~TKZO<~{9chms7*a5UJsGwqhH6OU6w^tZuz~K z{!>bpna+iPCu8<^RCYJ_cW)2fu(N5VxEY&3@xCgUfBku!i_5Fv96Rg`-WmA1_Gqxo zFFXInU--x7mBgGF%6rJTnCHAgptl^IGOac&v)4bx%fx!?FM=nw2jxvIcK`3$I;F+` zPeimC`G4i`ua8Y$>K?O9TmGL);8Y%?Nw|!SLoz9_pNsjLE(SE#*BC*lTip6`7} zxt+&d<_pDqoZc$d$$gfPiIBaimXOp~y(FGYs8=)INjd+bD&bLR;{D(^b25M~_>}!R zFQ)rXmEN&X+QfpdpIuq&|$e6Gz5W0E7 z&;WMDRm&82{p(DoM`H2pP1en|sw%B4fXWIMOuwpL^{Y1{k;a20vQhx9-55FQfHLevTPr;Gt%J$g3R!^k~)01F8u=EL#0qzY3@x zCpW;!n-ua0l~r@aS>MGz-$lo2T>Kn*=sB-Vix2Es=vJ5-E}l2}^njfW2nsArbdz}q zGiydSAl9zah#ckSxKO4(LxmW;<2Q$<;56-c48)V+O9A{O(pj=sYT^ML(RmiU1JFJ; zy={j~7taTm!*tIQWzDQ)*_|}R){h|)gl6(>9=PAy;T1w;PcALV%WnQ&xR>h0I0DMA| z5+v0k=eANs*}Z81;`ZCBg@2$Q1yZdz0&N-S_&Y+E3DI zpS%>7hPADV>M|9RSTbg!Z~qQ32_R}rCz2ywY_}#rY}l~$)vQ}pzQNR?vh%3j;Qz+j zdxx|A|Lxz}YSmt~S8LRW(V9g{Rjn$D+N&*!Mub{HNbOBgv=ptaR*{%NYZgWA+7f#w zW=iDqdw;&a<2sJ(zV7?D|GNH&@rUDxIx?-_ z$MQvRyw0pTM2#9S4TjkjN^A@7-*5@`M^d*#_-Jt@KU#xuynzC-M>13!HFNVK)oXeSz$m@RbxGdu#)sq(fk(Bb)v590?Cfncb&0hd?Xjh_P{TXvLzt&1BQd zR)?ae2++(ZpKN{AY#^q+tqm!vhqUxG!HbjjcT7^tV9eo&=cpFT(fUsd?Qi$T#t3TD zSLpS#h_k?O8Fkt-93_rZr`=+KtDSe}vP~TMVWu$3_yIcted?x4WaZdCH^5BDtd#Uu zj1m%@lXdrb6W^a~P2@X&XiMDgTA)Qky*n19fdwuZA&Ah-hlf8LTOY%=X3b-5YE}lo zJ2AK|sz)x1{L{t*cj%;KwpZVn-fxSedMx&zg0TO7d`$8z;#5>bvhO$Rw7%g+eov;d zMsN3iw){C0{&x)gw*Nqp;{2E16$;Ng_o|}1tAy|uefKt0ktnKTwx!8-R;MwtDm+t5 z&rA}Uz(}*KN;?a>JEX_;N<9bR!r}sVXM<}pKbC8rKWaG&PS(E~S!OQlvodmY?PHAA%r9}7RCza2ku?-I<0TV2dl?Q zEez3vEOSprmFH|`;`{b0$1`8Xi@6Ij4e_|bz7-aTI*))z`{XBww?`Y4?AjTLRKEug z=~#M&sDuw6KV=vFl)I7|unV+}RwsbDfRO|@!IZ>IoDZsURiS}ze_y!SG=|_SvFcT^ zCZ>*Vk)f*EDV;x!KAhH{Djt5l_XF*6StRA|C`sa?-MNkETnOMFP!bMq}1(CKOhR-o3Z&wv3H^eEYr9AGH_bZkzcRHLA}B1HX&kf3}qkN!H70T z{%YmVe%za*rr|-^{&qw9ncirqAdC!?1>^a2`?vXErOc$KQ6A!D1fN&nt+(w7OS4HD0 zd3t2$rYmzBt`$r3OVyLTn&aPSHG%(_wOK`k-CYf65sOtVl3s85`r-%I+%>thPk|=- zOdr#;g-bNkQUJ!mZ;Spwon3!iH77A!k3a(yLFv2=5!fPw^L|)Mr{kp9Pxh?|#&r{h z*{WLbOuQBZd|22=X#iCs)x1)E-^(xBB|wx^e+%3dUn6NZ;ms4viM>{MmngIY%f|2S z(oIhdT&Yie5@?Lw19J{v%CI~Q{>sU3+1clwDbZB1EG4r@ruv)gQg%EXi4ZS_^XQ#l z`;niG3?70R!9NQZa!u47) zL_kGqJrUzlK=d~mQ$QyLRjMoyK0TIm^TfwT%v^U$wd_5&`$}@TXvEyd+jLv+MlA3W z@?ro;xpgOU`M$SyT|=e;-VXEANzda~U9Ws&ti6lASd~+pRPE!K+DCSqA!Zv-Y%+Qq zGhQwR)GD9%lv=|r48}-WLFJthSMNaW$vg?S}%fdGt!#t&1k` zRjd*9%yuBUr?SMgju>x`|20)NL!VK*@$R+hqQT9FmJfwSJw94#%7yGec^Z3wHNk;Z$+9Q(;?q?BIZZi|f@U!BRM6G(XjEuw13B+qbP;(cjYO zdtaiB^f;b2=Dci2n>(OD5+Mh-SZs6$*8<+^EY~9&rn>J#uybnCZr#7txcSd-LWt0SZ&QIGJsOJGrZ!kK{(6ipJPg%n`L^ zC|~#CXpxMYiYjJZ)|GKKTTC{+BHgn9_({+;U-pJR9NhXt?zSv~NWX{P1D4jadD^}{M^4?msf z`ElZOJYR|%Omp7@_0f_3GLF50=9B@9yP$JrdyG=;)v4t~iHOU`5o~ti8*t!!PyK3P1(}gi&G*>P+{ph>5eWXD6^W?U^Ys-NP?9icl#0TTanDF3rxlpglBhd+_Ul@TIi3 zMjDn`CA*IJPOS+r$k}%pxN19nm*HO;e+#L6dbCA&^5aD+ufRvAmux%*cfa@H+Il1w z8IOiltfl(ZQ7$`8ScjQh_3Jvg_v2PzE}Xv64ND$SMuSUJgXANVrI3U9&X>AG2C93# z;K5TM-+`T99qw+a7PUoVh{I)nAS#1{_4y~K>>TwVE>vSp3I!zKMXpHWL)s7$Ac!$r z9|r@7pQs}NzKu4{wkcG$Ix{heCp%H}N$#p+^Z0W8^(jU=r@eRD!Vgz9W;kD!E+D+| z&e3tc1}qM&8|4)nvVSznEaQtHiE8?%PPJA~-$ePDQ@8MZ^D-U?D*a2&OC~XN%nbiN z%yBu9X(G^PLfym8IM^G`Sr;*BH>0>(-Vh%TpH| ztm@7O|1pek0lUC7rxfUWYTTT?VRTafOT=F^{j%Oo^PH2q^alZsXsd6^m-IG3`idex z0Xkvoj(Lnk^`*rm44-#7Kx7)!dDnw%+3Ybn1tjfh1=5;jMecV-y`*%# zJb=G*)wYXY3s#U2SD+gG5J@3tXqq8(b2*7#c*aAQ<#F%OlmOn4k#f$p#;s=CUa@xU z7Ctu|dvB>>Trj5Ogs;=qjXO?nv1rl-x zs4fK?U~LQxNBK-`Ai^12s%vQ3=(y3zg-a-_4koP|j{6yOL)NXjbjER#w1B=q7(20V zBzEGU)+fE)XZsOS0JEtKELCk#a3k8}PDP>!>cqRY`G-7Isw4F$w%`N4BD9=g@q{xG zLG^i4ilB|{agX!!fY+L`{X!6q(yF>CeD z1Z_D@%8F!)XfpNU61}SV@1$gz7?e8wCi~1Iju1{1CJ~k6vw4+AKXu1|b+~PMRB@iJ zCSbvux@#-0psJBbNfrRm(J5Gi*V~T?>Rm0TX%=- zlGY6Y*rsN7VS2CsGK`zGjIw%>^k7E_+V-4I z021W!G#FkA?85>b3+xl0+iFHLxNff9d6hE4SZeOhy60`XzRQK{!!Tp{AeNyC{@hMa z^;xMT)ZCukxyj3nF85yQO%x_XeHzpK3zKAN0`v8zIB*!reb-llyJ$%?gq+%OlsE;3 z^fXL7`b#e7$xBCQ^INpZB<0=mN;NL%7*+(j}!b{R@siXhD(=;_1^&cZ4m>a1JwRKkV6vWyNp_n+u1h1cnkmOox={ zgK-6$pzBp!sS7r<*_Og#{mRzLiucD;Kz}`+y{k;FLGJ@*G$4dGn7T34vEDIb_FZ>n z%;)s_;o~or?;->IsV%)GPTQ6z8tT2%?2QPp6LA0@W)yGD7^Bb%v4jddh+DW0mSamw zW5^NgzL}w*B-pj3C-9-BPLplL^QVyIf>NBGP=I{<>>(ClDz?mrjF}J&7LuW0#mR=d za2Xq~YVhnYO?_jxmS=P|y4Z?G+cmW7u)$|w;0$~9Hc=G|Q5CPkXjc97IEqy`2^;I+ zo|qquOt4_F9=<M%8Yrc=vEy_uq-;@0d5 z_YlU!MmAsJJ@8<8Tp|E!JDuxHYpwf~g+qXVrWOAVb@rD8=Q?|>i;qPEMXocFPiJN} zRVXc3dZlJ_d-Z~Q&yXe_B!Nx8y{NEj+U`;Y} zqDhc}SG8d57kz4>dQboe^|Pki<5jBdo|f}kW_LT@SSFIpLj(+H-CrS7VP~^Xo8mfT zsJB_R*u(lTWh76&c5C8mn@$Txa>pwZc=JjG%ZZLem_CGVR|J6zV?{^>{ z>%a|{9`2pFaR%Mnm+%3#$wfWYW}t^EY1*D9UN-V_ql-)z)_e18_eD7W9mv2CXsjTj z%mfvXpHaS+_>J(U^u683A-MmEEnX+e-F>$bWz4H6@%8Oo-{Eo#{hw_zKwMaMh|1+9 zrhF;R#HllGgxnlsPM;hz`4+c#)tS?TMGN#!_EN96y~DXQ=_Q6(gx%#2>g5macm6Ia zi6{oIZyH_HAYCssPdr93{AWngEzbempwC9nX}9&*ri%Tiu+g>kU#ZTCf7M_8`TAf$ zSIuLhvy=Giwh+VC3-MB&tVz2g(vd>1X&Lpwgufq2a#&|VjghEh6aQF$pN8l`kQcL_ zHLyBr6yf%H5~i5M)Q>=kT~2>;8RN+I%Hfi$435h;YD7MBVvU(vCTmE}S0=rse_mQC zCp+82XrOVKO99))0t|xUh)M=TdaM8!k)WVXXAdth$~MawFdVHuChk;VQwo9~>q+je z+}W&PbJib-jFXXm_DZ5FZV#{;;aN#QNK_meT)h=o5|y8Rtc=>H-D)_47N&e}V04FJ z>w`4?Zuxk<7Lj|m9n<%m@%MmP_3?#=S4oguOJ;|PrbL08wc~9UXz_&N+M6f6oIOsG z0DQDPtwq7KQ=Jwevy`JYG^~Z63@w=1+!01a^%_MjsG46Imwz31nOFa2{}N7zOc)lx z&z^J>kp$DHqdPv8`qt-eJ*FYfmAYQgOioZTPUGP; zn3(CF4a_u?_5#TB+0@M8;E8DTT#< z4)`}5Z?#k2E1x~vz7QI(K&jHpJWbC+P%~B`OP$9S~*c!$qf_~R6rXMqr?|mcGD(()yG1g%=+&=GwWH4 z1PS8o?|SR->X4-SO8QIeM4|X9JDt{72z+RWOt*nJcNNzfW8W7_Y2x~chW%3&Lrq28+W0bHm{$gql|+3kA>J}huB z(jO_aw<%8XsIi;B#vm>H^h1Cq#g9Milr9R6U3t`C@#Xs}{R5Wx;b=5ON(ER1Gftb` zm6&FXQV|;?<6reMU>_f--(Al-FuFvZ`9^wlk=Z7KFdW4wl)s)NUuv4#-8q8Xdu5<+ z$^AU-)WIb~ID@Ce^%wL?55H1B+uU6PfW+xMGfiTuBb+8FI9#>e2s~a<%%W^(+*4p= zSF8aQk zXgb$=e`29HrYWQ)$vQg}E6=JUSc@^qZ?1j!jC+#cLW;|(zJLQx%g+iR#ftvTFMqv& z-4u`q-fP0E!N{(HPC$>fanw>G)AR%BxF3R~XLl2T8#zE{ouvVtEL@(VHvWeK7zzOC zO~muvnBw-9vpN|vb$zy)3jF-j`a@s>KUzRmIFmXT0WMtzc*W5_6mkC-4nMR=6cvmh z?l1pV-?$3-hoVTk{Snd$`Int!0bu5DP`rF#F;mA1S4_WggHl{b@K zXH>aMn>}wkmkb>`PI^w0wsmP)VR?NT;q^!P#g$BX3Kv;`aSwTE)}@PlhY232+F+K- z$Gx!U)6mkE{-lOOKgcD^k^7#%*w;dK%D`^S?>PhkWrT8+_>pw~UfE>|3>~9J@84b9 zPxsR#Tdp3Pna)VR+F!Zgs*+*b-8$Fe5x7iDJ9$H#$7?&V_Z4o;h$dAX@!32ghGOqx z>G{>^{|pCnx22c4-R2q8-W=7bVH&DMg(7^hCB#zkE0PzqrK%u$Kh z7)g>+zESyg-x{2hoay-Tgl~4~&Yp_~XciL><5iN4Sz$L$O$zTvj=&@-uH7@aPC>{r zlA@qs^gth3`1>!O>0GXxbv#r8u8g|%B*38w0#v@Y+IilexAIug$xI}*yeDlAy z7?9%UnNR+1uvbr*b*|;Xf^K+ru#4HB-OF^j-1ZLGaMH-b3kt-{rNwK*_)dcWj26`2 zAIsAahf{^^%(GfHoL}AjBdv{v#6zmZb)}&<7$BQMSOXB5<~x32gO+aCWzp}ww$ma+qk3r9%ga|0OwlA?Yeo%bgk*ASJq zTot|)B#r?Uz)iKAMnYKTHc#<3eL#thgJ${Gw^=?we5=!uggW!+-nhgo)#Bl`wODJh zlO_C_m$_Sgg;(cNY_L%jIHOFx@44@LfV* zE4lVuHjsB+xo>#=vDEKdoZnxB4;!2B98n(C;M?O!N`Tj<2T6~DU55+l5>7h?{U72P z%COnk`;%F@Y&L(6Vs|T~-CZKkL)bv*g7W3=S`o>OqQ?SS7x5v~Kk(N-wCz3glnCyZT?`t^XSL$L(L}|3lHZ*xv{Qt2FS)sk@}|rj~ywO#Y$R zQ#z>P0Z2se5CX@)kP;NlDtV>km(2tJzwmIKrCT14wY5Bv{NPKaqz8C|`KpvV1{%B0 z^$BuNszF;9<(&s=#|!-Fk<04L`q*tbVdhSmOuDpm#9OTLP5!R91G%qox21L7mmZ8k zfjMxiXNg)8LAgr!k`pU}PG>O4s3G2ZjM-SoYE^d*qwzSEH6^blVakQjegcih?Vd)V zvl&?-ZA^sd@Rbx)4$?qZB==tNgG|NIZWXYp%}_a)>%1YqSfNQ(T&F*FxI5k)QHCH+GKtgwT)dXQpoWLfB+H7=MoS+wMV(CDAbDXs?X-JdRsH;j`_;(>%&=nqO`&(~YSXQPWL%M14|qI}ikvW%j7g+fgUZ5_ib{7WOf0RAw>XO|Onc^O)g6oP0JXN72F`)K-L%v_g)u7K zT)2tnbzt1v^T=gHqd&nyaLa)`ml{QlGli=lUOMo+4$Vleg0_V)JKiVE`&KJ-He# z%-r(gR;oDPTZwqdpnjM^U-kCN)XJZ%R!lo~NV6mFTOU5TdjsqOUEcNF@*gajgC{8i zv!Z1J{op4EjV;UMYNg#$5@+7duQ>A?5^N23ciRL)24@61_ovs?qo4|F)!4PMDxd7k zW(jF&=pK0Z&fN#sbl)dYTv3mdGr6cz`%_8uj^ zHut&4cK#sFL0B$aDPvY?X$+%qZUKl#nNcK{ihuvEr>Fn{4iF@;7eE5jtT$x<)g*h( zw)a5V|M|O$iW0hn&tuiU-k&rK02`^$AVT$=6FzK0fW5^SS0SEF^bbzGcQA*A{nh!VLTGLI+yv_q)^iKZ& zD1pd~kuRDAwgoOy`+dbI@;-9yDq^>Q+_wM{VD?>P(MOgPPEEN<-g#{OU@Mk8tjjC; zT}}yKAYphUaDLnE%xUZ<9ieK8QN6?(SD~i#fGjcYqc_TmEJ|NsPU4k^2);8qmy}ht z=q4yKidI`Q|Jo07D|blKDG4o)jc_XUoeS?)zjDkd5HcJhjMpx~scv(TjEihHO|}$` zwGTEo!3JD+sm(?{nk6ZP$&GXO6B*A%b?_WLO4hBJ@d|@xzKo2Ufl{kQtLU$tUJ4Pk zlom}%3eG9{c9q;I{JOWEy@gC#wfncU-8-p3MlGn1hJfHg1_XiVV-VCubMm=O3(vO4 zi{{8$v+*rme3Z0` zwsJ|q9GP9#@bK^ezYW2re^~vd!?s-g=W;K$p_5h|A*7yoY{UwGx!C#C)%%a#X2xm# z8`t`=>2A;BP4@X;8Ke3}3CeA_D-FH5*i*P;#8r-n&?_%EFcg>=vKhV4sXAj_2w=4m~r)(tVfZj~a9 z4NXkN6;LJ}aEf-!XfIm=6;os)E#|e;Gb@|wi!9{J9Muz>2~@0)4D0r3hKft5kI@x< z#{jmPq=Wk+uk>wtd=l+M#ldm?2}0`P*RQXSBm9?hgs}eMzD7)tso$<=?D1FT9qju( zGroOYE%Z>i)VGXZ8S!6ERP5|A58=x?Tafa9ipnA{3?}d24&z7^dB>1#R+PYxOoZ6f z$V6(nC-aUYpU(z>wS-lWNhH%EIQw?@N!z_fe1!R=k>f=XLlJvvk9ZcV7oExC!v+@Z z+UJfzax(up>D(u55-);4PG(EuhzfI;6|8iWHc1+G20b2=9<#f z2|sl4HJfczeyTHSqq}vT1mfv!QywLA6Rr2HC-+~Bp$2ZY`5Z*u(!Zni^ee5Lob1=H zVOAd~s0E8aP{8x9WVgq)iCVvWjKPC+m@AaT5D2 zC)bZ%?hjtdS$UHe1*iZ)I?4pzbB+^;23kUki!PE}+EaGcYzD)OJ)WnV!{qv$Gd<@1 z>iqhL!s2kOzJYy)R|jy;E`4a@AV%UqKhgVa#0C?*$Yf2`w&st@6U(FSY@4zD3bcru z`7O_F(UZivpWL=Rhj&ctURS%}^-m02h;{_E^&V>g7U{r2(jd_HMpu$#Z%^K;4UCg@NI6` zUl-V$v=}r|Eq0f?ly(8r6dj5fiqk0FA}bKC{+_Hvm4aWmW+>jBCH5UnCrpkSQmTGY zjb*s$#1Q%{K`IFMc{|BS-P-yw=!{%{@CN`Bw=ezOLj(b}l3wbU+HP+Ab|ZtPWJn-? z_9m}lxZm2s1XNz9sTJLvJ&+=3wc;SFb6q4Q4D{T`HUJE2IjI~sI(-RzzKS({Blz%8B<(Gk*VfI!@iHqqzv-80~0XK4AiF%z*C}44B z{a4kkzJHO{2%H!h|DkyPq5OCGa8M59KO(PqWn%P(TW_d=unbl15u}+ROF)S{mn)X3 zgU=a^i5z&%jee^=bnS|e%jS8$x`0QZ41hjQV9|h;s5v*cUNX5yc1gHtK5*$b-+I;E zhQ(x?De&DQV%*-0{<$isui_8*niIoI!$rXjBa^0ABabVIH{S!wIxq5Y|4j0-mki zh(-m_+IRbwz{Vm%buHR!IVMBB8!Pr6h`@_r?q~XxP2pe=)U8>hz>Sj1pZ_K71W+=o!gF6ry+k4c@K6PTWCsBhjPLasNAFKCUjYJ^1m)!sxUnf` z?N&<^?DpOmW{mSGmx^%!(L7^z)&6Z1jdqL}@v(bEsyB%*mRp`uapKOShkNW~M z9ALEn|9t%KNq<^Y`^kr!8k;62e+aOdWvqWpn-E+ZBE#4-#aM=6>f_(d7ty=I(tBP= z7jk1be36>uvSjdZa>lWw)3wCsRNt!|-lKT+``J49RVzoY0J9)oo^@_cvw3L3(XDXd zQj98;imG0>l93Mnb+PN`AT0HAl&G@lka`h90bDJX;d@-9v^!o6Y2DojtnI?7RqpIG z8SxPZ&M935Q2xEZ(2N5ex|O~SQGYU zb9{SgoxYX;81HejyVvM#3>qgE%|^$YbUYS7G9KJyQqI z{PdC427f<90WO(%`&v8U$_X5A(Ybg7u-s0?13O;C=?MovwShnOTl+UA>uFmzvU!c$ z?az+mc9qgxkKSe9PtDgYPpPl-PzR!;F(G`!)GWqOh3e>b28^6irv<*J%s(HYmPF6D z-Z(B@lH;?h0$Nct%{R1HOxbh%74b7oA=sFZyu2UU?vl*#qXG`hQgT`FiYeae(=S^I z3^mZAS^c{v9SQ)XSSr#H#rrAnGNfqCmlg^!3fr56SM7S_vvkT!^D7rTr>U(?rTO-Q zl9vgN%d>}VLqZ4d^~)nJ)T z^&ZnL9&0^bX$e#2D$o2fseRp3dj$=6}!Jqo|u6?hu$OFIWn zyjFCTB(#$cyW6FI`ANC>qoxOC4I4SMUF;!ZBRj`ZiU(81V`xs6waKkXvn<*VIsOF& zWfDL8HRuY%#C_YDtl%N4eytc(txZeJ?oB0@iid86?!x+w2`&6=+IsgdRhI;otCi4< z%>5O`s*_l+*b%wIpW&ku+PH}hT_eO+j2WehQl~}<{M8@*f~s^ck1ThUur|AAziPAd zJ2VetEmkYejfldMStU^z1#C_bjt#ZIGfJXY3R7sQWbHiIAm1X`VJ4LnllgXM>|0Tj zaUS;Y%GJ7*&mTOJp3!YB+Hcv*jUG9$Y&J`+m6ce(J{ujH@qK@Kx7WK=Qi9v`hWn4g zKNUswR~kHrF0p+r+~wLf`Z%+Y7v>g1A2vGZ^ACk8*(EHb+o9%hNMDvVx_Nl%7k67F zA4(<&pxi$N8p=nn23H2~`kQ9Q(*7JwhcDZ{OR3V6B~f2|09pj8P7EEcxT&e*E86bV zk5?{qpJNu>O=es(Cxt_li)}bWuFWFZ!yDvaNvs5a`_mSq(1mkl0W{ynNWx z##~2OsC0)(f|Y?DRsQOr>vT_QX5?aX?j-q3q{PgQ7IiC>rdkIGNWiPf)U2h%fzI2b zz@oNrrOCj-W&+*n{U95=t-sVH+7{K%?CqSdnEx{BfU$;a6jCO`x~p`0$l35DU#-&-od-)3N-&lgBIx(CL&BXn|aTK0Tw07=I0E&3MyUoEgoz@ z`!hoIFH&jZf=ZbbIBAi9aVsRL;g4q8TE1>JOQ*dye%0FEoHVn*vRCujP1yN?)$}u` z1ItT&6m1ztBr2dOK50D*!E%vODaoM0sq3>_3;La}b z`k2vAbDJ*40adrNCeNHxk@W?6664YnG36IdO_WjFS@x*=vwOl7?=3V#FLKmqhVkm( zPwTCtYS>$=AX%+zt>ue9oZO*%GSWq|dMn?Z-gncGzQ&CH{PE1g-@RrV18|lFi_8C^ zu$Kdd|Mb>udAQ-fYzhu%1i-%e;5BrPrRFanQ(bk25yz2ny%!I`_W{wW{)Q=XsRCfw z{165My4CYM;MRWAIg#z$f&$qz4(##dndJV)-ix(7BGUXB@TU0Fk^Bi8dpJF99+sClpWmziSI+RhIHPswAlcR!?e)F z`{h4y?$SccnM1j3_R#X+jh*j9%oRC0PA@`!<=%&JSlXbwb|rUR|13-k=R`18QEj;8 zHJodgztAm}g3 z5RT>BWWL{3V5`dQdKrQsjPatptC^BpG`3p4?u&jf*SKWJum{vhiROvUPW_T77lk^qsMirZ^?M{9R^^@7B-=S)Jb!#BzY}| z*2M0QO~JHe>O}mh7Jj}b_pBu8n3^FQC zFcrhK<%1UdXUUgIStKLCo?`=CipT=xM4b~H!6H%}vdtJZ(;k&VvctisH?xw`muBxj z`dz(z8|Pc8F@-!5NvxPg!*YR@2^ z6YDx>=#wgGAO>#+PVAhkpjC;vxi1bL&k1|>widI@KX^hb3acc4Utl0;*S)BEJyRWj zY{cbeK6%Fy{xw+7!m0+MU*7UzHO?u~ToKk_+bQ_<`f5YU7a!LF@jt}#b0If%lv@*e z3Sqq5V#KgD10VIRW^~K?RzG??Yj7a{ZkWGgd#$imOXwj1obt`w5&all+dllO9gt1h z4x>laVJSg`M0r4}y1bQT5hV>at{}<|JLH+6rUSmZ)i)?5<+JpU%=TR^8k#PA5qs0g z$;>Go6Wt|%w+Log?5scQzF14fN~w3W-5G^~jeQ-zYT#69bEL^b7dR#(x))im8qs%l z9?b(&Ne(LwSU%Y0{2D@;7>!NdF>o|!ZyDvWpTKB|l(xcCZ4wQ8PC5wGPncP4wm2l1 zb!XFW5-evNNUTWgq5YgKF=@Sv3~p*qGYVQKsC||hy^ws-8n(c7>(95pf}rzA*U39o zx_(y&>ckdC*5=D53fQcGwqM&6WCMFCNML( zZ_hpr@Ktzqa=r+V^a6X^N*dIQykV~5dYrgFqkob}$ozqvMPdyTpmLyISMb%5-PI8c050>}U8dy4nGnd;{Sh7JLpp0@Ds1>U<>=PJlCYehi|<*@{o> z&3rS$R@?EcmF55@vo*Ldnv-12dVc+7~X}j6`vHhwEx=i;%$K zNcjt;E`I)reUzQQ);Pw-<>iQh8-#6uR{4WKJ=gQx1zmhfDNC~acMZVWzqrGUKQ)d_ z%7cC-zS*1M$$z#ls;99B;(pi6D>EROFc}?$S`f`dLUwWjHq#345`bhc|{my>SNUoV-x<^3v2KN`P?~rwrTu!fXpsWIxT2tdIC;r)j4_hY3rR z_-4iCboW9j!Q!2p10Y(2`arL{ebf3{SvrZjkGw{x^+3TTmui)JX;^v|-yFT+Bs8}o zK4r;MDO?UA&V-W8!bD)7M&RTw(*g@%Y`QF#j$+(a*p*K+#Gb?Fg zmXw=qo-IrhT+CpurM`Y@!^0;Zld-@DMqP2Yf9Ce#?PdbQy`%E4dLh)dZvwV^l#i?U zIr{)VgQrI{`Xn>W|F1hVxjXn}dD#F|5}|)?2no#WQID~hSu4UWCV3N0ZSYSN7a4?p z%jduhn(7G5jqM!tNZ7T$ox&7k?F`qk7_K3a9lFcxGT&)ek_gs0e*kZI{83HPfn+;M zGFv(t1#ZKGH2{lGPgY2ZG|DMeQIYA9qY_luLgNYf<#ppf;STx96z}*wyYRvH)rSMW z6v6ckexs!xpY-?i5A9ohl$Kc!yBcS+$;Pe_VD~`wP9pOq_jjcnpD(w?ahTXU;MGgk zJkl24pW)RG_y{t66TZL*J5RH3-}+lR_Y71y?Bd4T0A=gw zigAh(rI{T0oBgbu@k$UQfO5XRM&O7a`|%IOjTfV2v1#Jgwl@AG(NSSyEw6Nov8eui zrsr%L-}|w6{ie1NPZL%DCg)sNyAJ}t6=MAUdJXf1G@W@p3A$;)lf+1sus#{l{8xcE z=Z3C1h~DAC=fk1}P|3;1^e_!VQDzLu47<;Jka#Co6WL)0&~U7aUdJQ~GV0{MJ|bG0R;IX7)-*R*Q@%aL&qgdUfMO5V)y zKddZ?+iXI)<6QqPIN<%(X;%lEYWx|bX2%o+!Pq~D% ztmZ_$ttamFb3_`(&?$b}5e1->hX!wy2(+5JRS~Hy@vqQou>thx-1vg-d}_llUc!(Q z+LlM7Ysk9!80QSVe9L8j*{=|i(fB@D8a}&xksH0#9&=Xtt9d=r_godK`NO(C6IyM( zF_j^^&u}7sPz0w_PDMVs0}#B8PW|<#F>r9W|UvK{C9cY3bV*$c?+ zKUA#z;|h2{t^t00ivRg=hR-5Nf(;ASTzoGVD7Zv<^L}&xWfu_8^F7xkRvkxA?-~qZ z=x?2umczI+hd*C!mpH$D;M5RX`2K6p+nQHE64cc4%sw0Y$Hb>LT-U7eeV<@2FA`i( zu2gn*X3^p0z#ut<;jZ49(KjR?00-#t?~ZKO`|jDV@huR z*-^VCRpMrU(<4S}1OPt5BTsn@Uz(I( zq})&w8QJr_RrPmdVRI7coXZm+L$}gj%{G_u%HqT7V>wk%gW&7W`7Ip`KQU&Gv9S%M zv&|Q1O7u#;p_9eD2=@aca{<`R*_nD{CeOxMxd1i!w{=p@xz{2>D{Apa9+Tv8JB@2# zZZeksiX~pHrnt9Uyg7V#O7^wCIbm~W%6O)mt+LqwAT;R?y}CQwcdoG&m>eH+l{~&6 zGe#08i2Xs>kM3gBv59vP%oX+JWwxEgU=|~(Fzf7c%LVO&M-9w9g%2uQ9EFtTJ7jg0 zmsXyyw*%tFPUH+n0hxwi0c&Cn4jG%#%n^a` zQbqXG;LGsEWuj5lJEK3XZ0qc3PqHXx9BpLI9_UX*^sPZ-^lq;RJS6w+G*?v;T&%`E zI^icjJyM~7q%P=h{x>x=REy%d@w3oej&pnOWyb4_XFlWYN2(Hk!}_Q%Dtryq zS2FXO|F>dzDwo{X3ELT4NY(7Itl;SrTR-f#~vM@e|CaJ#@9d#xY9 zr*<`Py?BQxUp~X>bQvjMRnBF{yyjh+J7;W;e=VHx4qXLZ&2s%b-q)A=6JCV4kn?_7 zaGe{GC??xviz>Jc<`nTp$g2}$PjoFaZiRnWR=%ZsW}ewG9F}_v&tHDocIzbEuwhQO zJ~1Mb?qR}R(a?jWo_59WONU}!wACtp`E$q3+x3}EyA$OPEfv^gf()*OOy;p18$~Qq zi%uR@vlBr-WFRVkvr1xpY${)ky`YcDn3-9d)XvbR5NA2=n^|{NW2+3AYri3k&m#$+ zoGFFN2Mc{);QjZl;uAa=#T}eK%{23a#0T*dHpNPX3{tRw^yquDoUT6#(ibRclL0Vl zRLMuGHZTU_vISmhob_*-ou%7}f2A*%wkd1TxXDc}iRq^dPrbvm;JfW4R)G%g+u22~ zXX-Iv{UV}?6i9aj-O40YfhXqDOTWq*+hx&XPUrFd_O7FE?e>iXvFeeP!Y?B93kx>; ztK)>Uq))RUdFyMhNSqhtB;RGm1b)WgR|3=mmk@@SDPR!FFk`uS%JjNf)y?~-VCvfH zo;@hNIgI*Kg&&?%PwQ8Kq*~#Xn-*~-&_%2dGIH@oCFViy&B^2YN)H<+JTMAh=C$1G zLwGVxKMlfvH*43nt+_lqA!ye-_w^g zHZ{(dNoU4@zJ!;V_3zfy0LYX8?J@i3uA_;nMT?o&99WBy0-V93%5< zwT*C(Pv_pSA!rigycEpXYdkxu<4(Bug^}@fQ>yY3NG5y zj<)FDXcK^Ib}$j6roNN8v%BQ%?IAik@rF}X)A=JMQJR$Hk|&F=n)7JGdG5Ec9=`RG z29^@Wm_^j9WH*23QXm%1ZZBx`6Tx%8ep`X&iTmWP- z&&ZYTX}R=&XnX6hCi^&E7#|fyx=TQ%rIgO0B3%j!NKHX<4n%6mU<%SDAfOYYN6!`aU1z1wfA&rhF6@eq=n3nslLHU{Yel`;%8l#7@xmFVR51eHqRcMb zJ)uN&e4Bl#GbEcYah7-c@w`N+UCp?O!}V4x(@4HKS=@eg5Rsx3D*KJ}c6CYm!FC>H=-V6XYCXv~PhpX?3rsotwZ|&5Mh6 z)I!t-4GRebKNy#uS$SW*oc+teOzCWFhEs*Rm)4E`P9T(3BOV1?B84On^b=Q%^>GxVuHg!`rV6Locabg?c`+d+KB|=QqF`^)W2vBx1GJ&pFGr|05lKNFb@I zwVJ#Ve5zx0TROc@zk+tES>Z2Ga)L`Qh@ccSAwU9TX(V9DItRSwHzgA+w(| z{k)|S;B%rkd~R=Q8-9^5yppLjQI?O<^ZBnjcB!Y?H{X6helFni0J4}jBOaui zH+%?H;k&}2KN^`;;^fFG*YJMng^y2Llnjft|8#~NK=D2^*##0LudJh{k9CY0N(>3*AvqCL!75uv!?}3SJ6E7Wt|7j#T6?63L4hqBi zT}3G5Y8*u-Eol!fcA*mq6a`5B(iJ*EB+uGmgHMGB4<=M6BgF3|tMzcq&uQ5ya)^O$ z2pNv-wL~0P0#rIwQP_J&RgdeYTaiKCtZsj5ex1qRnpaY*=gpul ze1+T~Eu-Xx+1|)&QGG6WNT7c>V~+AQa}nybl10<~b}^vaFW6rcj`*bt#BRe1`}K+6 zRMS#~g6k<}Ba80EPJeEiVLaL#vX#^4S{g#do+*My1J9br+(7=h@hVO_oWY1~{I-6o zH{VLpz3s2<{}8p^iO32^C(B$!p!FfOMSLWn1=4~@I|7!Cv=xeB6|8Wn|GS9w9imk` z!J}=wszYJ0Lh@%0e~$XgY83E$$}`t0uCIC=5S-l%beiTJGN%`Sd_PXw8GOF)rdT|V z59Q>~;tb=zSJ&9y%+KLsTH$(8Ehy`*R<3l6fq<#3pSkLtD-b{vDw`mt!*NmbB#3-S zGi1aC#tsGidWnd`R9ifp&D$4KYQYBL#eV1ELwnid#ZdoO@?zDtny}B&Z(W0>!I~q% z)y7!4PQHRMr}h>n$Lq!`Sp`}yei?4x2j6Z*5_+@2tol#|uP)aMq;sI_^^|ISC`gr9 zJHC#_>Pkii4X0Gk;J(~ytmJL~`t1Xlt$U#9oI*2IPaGk0HEW)&FYW3Z4|sQ~K1&dx zX#Lkqn+zMfh-zTQUHA&6{mX!~o}~Rc&8JzG(?AqX;#^mU93_Qh`yIqEq04@yak61+ zYqbNxWBmMa%fxEtkBr-TRpy-Ni2pGBcq-0@uF`g-h+ucXTTZ!y*f@!-e_eLV*q?fYktWY(rmZ*0q#Sq<4Rx z-Ei50RC%Ooin>@s|7ToHA=$dV|8jsr%1mpj@d5g0xn$dyjxVQCy6*a^7|)$+CmX>B z5-+nq`Q`|fwVbTaW$S#%@>4*Tq-yyoNHDkXXQ)Ob^Q2UcqAof!oU3C{Nqc{&KU%bP z>U~qi5L*O9FVh$OrFO8BO^~VJN-!zPg*J?S9 zH<>_Z62^D`%WyC4KfVPT!-J#9ar*<~%^3DA=wF5e>o|Z+Y3xfpZSDR`AGD=`slNKx z3C!Uy0dJGiX3y!XYx|Kpl=)EY^GJG@&?)0-I%dV5WPBPo_b-D<)z$%(%o_It@FoS! zQ5h$IoXV8QSM&kQz8tKO-VKQ4OrC8m!xnHVm775nQ=o8cgrBAayvnQUz9BCuZsYZB zO`dxTtPE1jENrNsa0Ak0!NqZ;|FmXFv_*Xe{qaiFpVvbS#&D&V8}y9}<82V~PwWcu zZx@E^Tg*!8-&@V73xe}5A|@xxoydGV+`~cN4d$+?@?IY{cCV*M0^vBefHNCe(xtX1}niUt8su z>%Sih?5Is|h7OfIa<;x2oO*HA=&B%**Hl+Vf~fsCvp^Y!Ob0Aq?5S8x1AFHV(3}~` zMakq#3r3a}RDbndJWKLuIJrqxturE+p&%k=Bq6Yr_;r))F+p@&^{R5(WujCT$yXQ| zmsaJY&vS$ma)B#oM^;0_JgPRfmdzU`l;Y-!+f%(J{Awigi_jTA?89rXrUqr)wZKmN z2uUvK7(LcFiIishIF__U_lYe3Qy!=GyY1oU8Q&03&)Uhy=I;fUVIPWvSxVEVT!hcT ztIi0loPDbr@>V4}ks?65OnIO4g3@O~mo~*OF!zAjo{SMPZ6+PZff=Q?oOXAjdM~a|cmd`sx4d)5M*-(kmmQ+c zfBo-gStzDHVP9b?11wP}v*A(MF@lRiAlL3dOCo?{#>{M-(|Ih|$XO_D*GP}8DlQ>lc$BFN7{doH{VI}3qwI7i{W>yWRpb!Q; z1e7LDj>U=!SV)aIggLpPd{MfH(QMbrxRk=>30>|UE6~1Ka+UT!<+*Dh3Htcr zCCdFTu0XQUzSE*ZM3!d*x}jiyJ$T^#_aq+9*4CCzmF;^D5*91xZKe*ywgZ;ZL};MX zD)8ESfb>92s6%igQh>NyAGmBj z$5cAiS6t)l%lfrn;$}xinae|e4d)WhxBK#j`MknSrzKF7ehOXhv=n}(=#Qw*q#9BP zezlPpnG*N~W?)}8rsiU{5KK@*liy7bJ{1oLf2P~5nQE>3Cgl1uv^r>?-f?Gbvk^-~ zApeY(b_me1V73nBIj5oJLcZU==D}YSv$z^m0DrIAx0Y0?N1SFK6b5pYZ*i3gGM~*o z{6Pure~H5N>GQ*|ecFh)w)@NRaA?5NC=120yGL91#Hc*HVq-S>FIq*RWFYfm^|(8g z@aBoXPO(7LkAE2gxR@^o4VIwng(Lqe6#;Yz%m1JDHgjii@34`Mh*Y4sjBWV>2fM|q zo3yP4J-K9{AbF533%j#r6}t*ZF0N!Oc=$b#PkdOX{daWPm7im|(*FBoX{_nUtjq76 z&JoV9AIZ9-|4tNx0!PH~OSD(ZpMwgU=bzXAg}1^0&Hcp}*-2HhZSl2|vT z%?AlY%NKn5G~<(_kzv4?85)$1B*&CaUT3MjDq-A25RNs`0C>IrjU{Gb02$zNJ?4}! zfByNLU5;mWjNWV66YPCbIoXH!x8DJ-8tjDR^1-^Yw`EXGJI2)VQj~XR?a>)CqaV0s zAG>86URi-J$o*WR@o6x<4yyezZX4lWesrAY87wnZIcxwC)AZFxuP0zU6|8$O?7EiM z;TEKtEd0bLSg36qI>*ArW|S(0eHa!jUiN$b_(iA4XvQeSqtQ70h1+YF8I2<)%5`~l zZEV-lB0FEBD=5vFJ~4p|*7`)!h%KE`?9IpImn-D;eUl$iQ5YVsNEd(CRj=y7{$(+; z+m#`&GuJg8>Ql3kqpe<{-VCkYI9Z))Y{X9VjmW6!IGo_ zCXm_-lBu2Ao9NB4x3ey>zNV3|N6R-Om}P4{^YhCbW)9Hx=Mvd}+Q_&wbyPF#8+Pgk zL#HA9{NopIki=dGTeEpThe4M25?4t2WIv>6>G{*$O3}iSO(kv@M^k9ht-tD|(F>Wn ztAsS}u)FWA(xNeb{@g&pRz{q~6g&X07c$YAd)F=y{Ai=)C3v%upPxOf9eS=-YGpyw z9VBjexqXt!b7cn6ZQbn zq1wE&Es3su=Q=+e{3J-hCb%y3!L4y~KL>>fR#G9J@tZD`xZbrWipeu6>=Sy2*2w9b zRWA?$jhqco_0ANR2`e0Uwd*o?dAx3U%A~81e2xNF6F?sRX|r8kF!c-8sn|W#=W^XZ z^LO8$^q8zE%EzZ$e9LPt4KfdNfUuVIJX-JrcgA3TQovJ^} z8QLq^{!=mUT|=OgrTkMrVTb-J$Ho6t*HmJTy&q(RKZB!4_5}8xy*GuNZI3>A>+_)y z{4MfzwloC#0@#uw$@eHnQZ~8d5C|oQU+x_!}w7+^;8p!~U zNdwRmy}%`2OrK?_8HVVC4b~vFcf@@jLi+x4n)Oz3bh2j2_UsHXtuc}Gt}ga8H-F9o zm8f>bEdli*Ij`Vnh(iyF&oo^1rht$EaY6ZDe|}&7E~eq%?Nnza`7)E;UhLkRW!iT_ z$o7HlW+BmfFRld{169RZ^Y?~A0>eY4TA}#x0kxsEwg={@f+GoTi;R+cSMA+CL94$r zuS!iGH)0Tjl7DqD`EiJe1MHrom;wb%-lY^1m@$m7ep@Wf@RKtv^`P_H2Ayr3ro^%+ zfIX~sW4@@Q#=fHkb$!~DNZ$WDbUWmAWcM@VxhS{&(?Y5;<*yy7FiOo_;pHD+ZR{J= z5RPpD7jMJ;<+Q+d)w%A<#X8focSbm_hsBVu*Dw?n)=9tFriGSLq83FSXv7iT{Fzm4 zK}{BjjY~((K#Ou&b$&W<7AM@P;SI=s5(gy!@qWZF@T)|#jXJRD*G&!kP{*?JNK$+U zE<8}hQup%>lN9D=CQ&E1>xyfA1V;oITX{^Dl&ZoY!2{d>Uj&vXtjqR7oMNHG`TLn0 z*}MmJaI06FLjhTE7yZk;^mQt7KkL~0B z;A-KGt~aOEHgxY0H-%!xN5!%jf|9R)uG!wVve(=I7X%boe{h$Z$o@y84*Q@nbT?ek z^;(SP(40#9X%P()u{1g}(eFr42_-{~&4|PFPwp=gE_YarIS!DT?9U5BWHcW?AQZ^0 zjlRaAa*{#HG&U5aGy-1@wwh3D55G%{NsFnfR;5Bt`Ia{MrvIvJdO{w}>NGF>Zg1H! zsV+;FlJfW%aoeBhZ(X?TSGjCy2C25`cd5_q15OIJCC|WEOVoRrOZ6-j1Ec3eA?cZ9 zamq`&YDA=h6nWxaQ=DnyAE(Vwj?T#02em`xqq=6x5(Q$i+#}*)$- z#ZGt8O&bW_W4Ha~^?mnCoDw{4zH`5<%)vcN=cZ4NQGQWgO!UmMl`jp4_uX+?;5W-y zTsy^C59NjVttYbA&(7VM=%_NTu|kvR>S9=>6y-MRF+VP&dg1@-&bm<&kNqsnLDHk3hPVr$VLMB9+12#b#%I9Cu_&9$!q2_ynkGQt!h--rmNH> zh}Y4y2(IQ&d8C2n`qAe%14K-Fa43vohhP;rQie$;LsyH(`6?OUTn}?Qy+` zy0~bX%Tn4oN~DveJ+M&^;eiDl4!f>(t(%^;F0?u$m5_Z0G#qg4aqUXwiytL{WbilX zS5WtfC+Tf25k4LjDSo@te|vIr_-1!bMtL@Z5yDyka+z^aQ0SJ~G3V=7Hy@tMbY7M$ zuB{+l=mpvi!8^=eOGtJ|J?sVUzfzI*3KwIK^Ap1g-Kf$xw>^x`bB?ctTzr^x`=89( zd5w_*QA!0#!;$jZ9S{ncP=@g-;4Zon>6l2)B>l5xG{)HIUO%RURMQE+mCaN>QW56G zBd68ymK9r(?fn)x4i-Xqnp>xcD#ks?dobCM8T@Gz#5c{?=cBMXrCQl@XH0_F_M%hQ z)~L=fNKxcrdYlK9k)qtaT$8t~HmMtO;ujqbMSPk!#aB*u5VyZMwKpK#K7uGb zx8>7$4Nw`z=QvE1k;nlE)LM#SO2Xko6OS-6BUBsG&%linTw*Ye5tiMDyW4P=B+(L) z-P(9!nz;L>Avd_8;NiFA3kQsj>X&3FN(AX%B~c2tTl=RNHxha{ngo&sq6D^84aZgc zP(%#*>1>pP%bfm9^8P5=0yq>-A3PFLe&+G%CAf~(M0PG-oSIlZ48e*j|JvygSUzNS z5%0lf-*7TtwPqf@)<+o4HL3A3&T#qJ=I$lXl+@@k_!I|Uo8R-! zi_X46k4w5xkw|1(teKti0Zyk`gO>l{Pr@s5W#hUPUlX%4b<m-^=RMDFhU2b5_Ezx7mXA*&VhT(b_d1IbQWao(9T4=DQav z(t=3aCVjwN#BrBqa|eoUl@uV;T3^AcpppAW`HpVgeQGmu|& zNT&@lG(r>(%rBe_Y9wY*32dn1SxDuQwHOVEk?fReA^w0x_i5NzhgVSG=ITXi?*2O6 z>(|2WZy>xqEFLNR+%4l{`?Y}jwo{#k@$fvmDh37y4CwuyLjp|*B%q<8@+IeOOtlz9$~wfpQP36tGWc)2jKq-m@qC3;Jr`JxL(*+h zTWEc61?0TEYO{Q`H0HqpeULmDe3aQ-i&I4yoi6&oQl`6ldYNb2Rk_uJCTZDP)8Se~Pw1s%}M^XYCYa7xwo`?`LvgLoZPIk6<#I|afqaW-RF5AH?Tx%j(oZ-Xf`T75 zVapc+F7I~>z_RteUNyX^AMzFCwr#W~LH)L2^M0ZU*kkwo@3JA@9D?;RFY;f8tsMGK zRK=r6fUrmhjLGz7#P-lF0gfQC7;|3fLivQGT=i%7iPBO#|3>Z~v~q%5EZ?)DY{U7B!%t`~ zz=9wF7D$dDS*HQZ2;Y~!FyTAnG%Zkqs_pFTV15|$t~t5}{mV{puw6;>ed)?ew0 zpm;r{lzNt?Kp~O79sv1QoVp^*dkOq?8|p1;F=>fG;Uae32C;&ElAaBz-ps}lI{_b@ zTlw~{p7pj6wY>{`rWeJ!TZ|p5s>9AhIgx7@8Z~Sj3yzNP3>IN+2vc@sB-e@T2l^=)} z3YTrjTbl;LL?`QVOwhTDC+1=PXVRt5OWhD){vjpH(+XrOoo76)QQMp8#!J5fe5Zom zpmSri+r?WgWyN28MFpC$QF`(9H?KH6O*Rxexf`<**l^w=Ycrf(FtSTspZoJKDUyAU zenR9mAan4Hwjw$(psYKr6eryIJXpq#S!T(p`fK*_O@ZDH%9~r3`gx16zhw9?x+Kl| zm#%FkYIV3j?l9lp(1~j-Pk0M@*C{C`{}P{j(gSAHJNVAqdFZ%fwZ{1p)bITWY4X$* zjknyrUsQD3sqf|=kRa9gO^~^8XgVt2eiU5iabI!Mq?W=XK$An5|rXozHCgls0!J&E378x7Q8*Vi&k=%x0sF<6cKNM36CZ| z%$B^j`SWQg5Hl*R78@f?uE_#6qJ24p!kxL(U?Bc+I!m!q9PH#cx9Fs*{97*p_4bkD z;HoeYf`yYyNq5x?*nlCMgkoj0JZnW_rlc>| zCz(YtQyq4z#kHCb79WX+{^(`?Dv%d0F#3lg49`X$H%qEU>vQ&{fifH=b0* z)-s=$y{Mhtgqxwaa-R2X6V?B$oOycbMY47UFMrqQYdi2Ink`+t3Sf-Fyt(9 zS;vxF-k@cddB>k>$MhwL5FC$zaj)_Uom{+gslYlLvuZ6X+A@SQW8BL$rRmKpo~F!|3U(Uz!Cj~;M1>$G zhUjW(o*HSwv9k`x(ZoNmj3}Bckgd_jj4NS%zg@%5zenb*W{LzBvg$A8CrKv;N0|3_ z$dW*q;!yyn<)EbYclPa1TeJ7fzC#C8ce~9f{=|5+W?4wB78$3{+-sb!fMZQ>R%$)k z4lHEGETM3hB2_nLdpfu#Xr}n^1@(yQa(Ws@ld2+Cdymp=njlW5?o{>CYfiE68Ayw$ zhT1qA(w9MzzINaS6Zr*Kp&C2Vq%g#^gl$?_#h>xbS-Tvm%H_4@DOVkhR>)Jd<^38r z9k-_2x+FvI(Pztk0;RpY00LLWMe%j8&Qk3%=sC$ zsCA__(bWCfwYD5q`Ry;5cGl(;C1${QqD#|RR!Y4O8^`uWYEl(2iNQ(&y~~}7g=}f3 z1YCo2WHzBsX+W2 zPrIq!O8jd=GKcx<2K?avg5C9y9jA}riPgr3Fr0ggU-N;36_2%VNq! z`#0e#DqPgh{EZ!myi<8Tto4@R$@~cE?~Zvj1w)oj!^d?i2tVv-oh)w1dWKXj4*TMB zLv1_c@3>liYi5963E1atCr{jPI52u%tS1upcDBMl`RX%6uNC0%{ju=pxx;BjO@?NQEi7GTHXl!4RZ_ z-kX-{+Hh=Zu$VV0V=6tV&BJv86Vwwyyc}@iPvb7{4yh;}0<>MCzPb4|s0xVVbaAL+ z!33;f^M)j9wS61n35@M1nd06OyX`2o-5TGp2F|Y)P3IHLZtoGc zLkw<1oQnR#iqGdnZU-HU^$NMoJKj2&mEf<_Rz{s>3i$Q5QN09`>sl(|Ucfai-$;~B z@K>!iSZ42&*;Ng17q*;!8jCe*N-}Dn`oPsSZD(n6oM9^et;-QNoGO*&Xlye2UVaAA zsn(`T7lFz>0&=?7I5nx0v%ODQ=J>Kb%)st-_+V5a`e zR#*T|h6ykRQ;zm{d^KLiVt5wiv2FTzIaCyk_gd3fd1JwhIODaue$%xHXZhR&8yn!f zmYdW|C*nf@7rgXYy8}rWJ?jVyUrtLy$)Zpsy;S7#RcKjCWcR)CvbwY<`FmI^6OwKk zX2+tAFI%ep$1HS25fAv*Q zszpW*aXVGx!E@%8tL#o4H%?!v?zs0()2{(vxyL%8;{u7btfJbt7U!L#?cR9mFem&a zSEp4L?;SVeKGV!B^a-Y1_G-32^+|(oN z+?;M_NT%k;AFJJ_LN~!}Rr$O0+pJY1%mD8l)l1VRv2V{I;g%CY`F2!eVoghj*mO}^ z51pH-bc9T@7VapT{XU+5+4`Tay)XCq-${M{vFs1m2i}_J4N{`CMwB@zj9@-*IeNz7 zmDr8TX8U;;QWL_;t5>J1zX-0SxHY_fnp_`2YcUqGlsi{b+>7|;T%eoRHJgnlh2v{V z@wf|%;CY`#sdQC=Bh8|Abm}60>W&Wt5LyMuaCNeTGPhV*CS1M@Wt?n z5;O(Z)4=;OTc=@&PCm5gOM5LsElcLC;fpW7%rAG2wP?ubvy~szBp<2`(7;4PY^tt; zJRet8=$wQ}H>mgV=7SZocr}c6+YDuK-eh@d9m@7m;`7&Xy)=c>w{+PB%2xM@^qd!$ zvpL7Pw`bsY`_WD1^aX_25$<)a{VT>Kq$A7&ZjZMuS=_XR`4M{9p%=fkHi^2Fu+`}_ zyftbT?5e*UkXuR2BpU#wFA8U^8{;LelxQw^u?w=K2JJC$b28y{~0MIvX#jRR%+v)-Cqje)gYee+Z1alU*I zR1)-ee2dOB^s30u>7W1GL&RzRa~+G_2u~lip~?NF_@-|o?HXMQU#S1 zEQhnpOH7bqP?BWrqvF=V7?O%(lG~DWVbg0D#WdiNvN;atn0<(Q0}_W@6T$Hc zJA03(gNGFf7TJG$qYm!n+;4)cw$$aa-$W|{tgj;%skVps=au-}L&{4>VNs{@rcxkIpNnd5i1s8xmd8 zWJ&Bao*XAJ9{Bk$^AwfdLUuaW0!7S~l7MIR?@@2LTW4D8Q2iq5%JqZ5N7e3FIUon)cor1I{4 zyU_rBavkyXnDLs)+aK5XuTGhKJd=1Y#17azf>+(L8nl&W(Bv#ENDFRDsa-y`{_eOJ zQxz!!OV#5WvT1AimZA3$Y*p8`dZjtrWK|5Z5Nill_&msUoNm0Wwq6K;PhOS!(S@A4 z5Tp+Pvq_;yQ&Tmcf{R^;&-Z3!P4cNvgW$>n9h0sm@;luLUg_pngCBaiMX*&IbMig~ zcDUC7gsSMDdfKD^!#$2U<^^O+`+5Jl#~EnA);9`?ruka;M$@ZPV`~8 zI%37{|CKB)fqzG-@b_bc*j@esL`-H|d&n7nx*>uG@jC)@m^jkGo#JvJ)KLzo&-X2# z@c#wV-;FwaPLw00P27nd0P4XlR=hN6a{A!$h8^GEj=s+yEjrb*Ty1_B{489}`+132 zfGdP*2;_wS?l?n|{QbDz!COP)UhQT^|K*xwz0P}xOZ)X7`!wYxYPsy^taG(*G&HXd zq}`6QYBR zv>~+HsgK|R9h5UfPZuwfy86lBQ(Jo=dHeHi*micxm(7TvEu4t9&M)JDJR!YqtA1U$Q9{aMiFlwBEleqjUF!OavKaH?oCd~OwiQ#ExKeqhS z->tNfj$q0#)e%Us*jwHfD(p+U>(Vqh01bDe6bx@zr|T)TKuX;>C99;$-o=H zge-G7v;q4Su_<^l4o0pEwS*8NE*^dcpLSt0r$Y+cpdh>JIpKwFO|$S+5?5>A-cD%%REaNk zzRw-l>wE>)SmuXFewuR2RGY?fVZ3^FAu-W=Q6|S3fXm7o$39P`i}q1f zso(rI*JKq8midDuXVI;1m$ihVfl`dgB*^Q@$1gB4$JR(}=4f;AcGyDpfM2mlWCtb% z_7Q=$0&|+OmTu4rHhvQf1nClR zEVMh=Ae;aN&|3-;YfypZyEm*Qflbkr@MXZ&wRn9zHA^*<@@A8Ja9yEQci>sqY>#BJ=G)_pZ9i^#IgQ8u zR_;5Ejf?9c)1zP4I|5E@)R6Dr_^ljdCKFzzVvy6)8+A__U1S z=wAk6Y!KFyC^-em!?7^He&2}pCa9P&p$`;|l-; z2jsNYto@(4&tLxevl&@@oVX>AAdD#e1s)c+c?VO=H}&7w)b-PKfr%A>IOKdN_9~`X zcEfo+HFzsu=y!YDkf4cFlTIe=DuZVKuXGndq{?Y2%DnyT_Z%#__Jf@c^Ot?b=Q{#& zl*^GYWFg-7$a{6_`u+B)Mk{Jfe+c8{BLY7pEC<9wa~I=Lt(1Fn_kO6*z>k+T_95CK z8+2Z=e*IY$D++h;a*|eq5;rX8At{E|5|UHy9YP!q)U9j`9X!c@LN|FsS{m)*+`CY6OSAomHb*? zSKH`i#IxBnf&I1D!5KLo$xj(vS}=Z8Td-x~!gzd`?>pp-hN}NHXulOxUE`i3?8IgC zW7AQK%VAMHC@5r0te4LealUxLQF3a0FX}?R%_D5)JDV5X3?I`BHozAne}QWeJ-DRM z@_zdkJJh*I3DUccYgjn@a$Xv{uh7R3NU=fb@3W_9zY~|ywL5;QKXN)|9#SG{RE3_k_@UViVc%fAdaQPnwxH1@U=KmX)K0Td;=gkodqZzXyS+c1bq(eCwRm0T^czGSM* z`SyWYk3n?y!hS46dgJ1?I-$0gh&ctuPx6tzjvpqiHb#GP>%=b|r1p<@$eyNR+;IGG z4ic`D)xOvDOx@&eo5E*UfA`;(WZMl54Obzj;g`Y-3PYcrWM4fpl)v?;tK)vweJCL% zZwRq-hI#{jpOQz71olb|#P4ZF#QvlPJ!`A!D%)-{xz4-xHcx24{QQvcma;FiD*Bbd z*}0iK4Z(~@f=e0r{Hecy{U);TRo=8q_M+D~UGuc;8C--^XhxJo$Lc=8>p|{+OM94W zDK#RfpgL!&$l5ZjTW9v(WjU2Y2Wk`G@|V0*c{df!_p`2sGVsA9J@iad;J}a)s7epg z)Aod_A|^tgKk@1jF{PO@rW8>er^kOl<$CQ;9@v77zYITjYeu1(Qv8-L{xEYcsTH;N z89KY)S4!o9JCa7btyw8&9Vq@jkP-^_ccIbOtCJGgs*>oQ7xR!s(H7I{VpH87RK}=P z6MS^lOhkmmopVqzG%Gg}@pjzOMdeT(EUhX zV9LXE*#4el12Hc839+fUIdQ9dRu4J%xE^~Y(?UlHdc-MVDOj1uJ7We$utzGYZ9dDtsR;|Qz#O~G`LcJ2oD}ME07f0D!so;AkoHm zMmmaX8bcyq@o`gOep?|0@8&K5)@gU0AhzKDtX^*^!WP6T;Cbj#FN6VEi)o+{eCg!Sg+!dzmkz=Kxj&Ni0n2P&Zi8)1dlASnYL>;=?WP zSYF4oUZW4P7I~uE()r|~Knu^D1{L|kSRQ7*gU^(~1t>8~3;K6RUU88^ly3X!V0{)! zQn%}si8k}E-uECjn=SbZ`QN8&9H)29mFfl+8loI_N|g=8GSZ!HB;Rda6r%vZdt9MN z2Olg%pMipTNGy!*;CH3zb&!Hf*HUv~1zXfB)jtf>P8J((oOD~+b)Nh=4pc*m~Tm@{@UueC3b;f@@9{~7~ z6bZ8Y|E_#3#>-(R4#U=x-~MU3pxI}F)UKs$$Rjw8(%9yCvI%Cg3F_zBL^)*!){8W^ zMpSkHvML!`-cDSYx7+IQvQ7{DoB9$_Xm%`aiJ1;gOLLXOGUi2|c+D2Yti>*r+^aa} zYkYRkUDp$%L2#ZEjP9{LLF-kI>A+3(hefCDW6JHgf)&aGx0FOEi~Y;}uY%LKd{eIZ zw6GPbmxj2z?A96xn^27dQC1gT;^A6UdrElUqU>Z)K0rwDwS&^w@)V2JO5Zw#^LOm$ z%7tba8&dCdtA=vjWqKMjmZq3E1~;t5(pBg~qN)=LhyBryux&bsa);Y0@htm8P>FyH z>x+W#U%*5l>&V!`y275qH$c|Kq5qrbf1YoF*nR=a19nRNU99Elw-%Jck+3Kxc`gO#;jdGU7$C09X5|zvyKne2&?o48lq`HDE5CWh zDe_1L^{D6(G}+hQvdu{@!*qkXb_UU=4EZLiJYHzYUs2&R`qZI(mTyyqZ7EE+vky_x z3kQ?f$ug8md|_(-&{LA{o z%BG&q5c!?!b~Q|y>OfRVAdKzkLZq6%Zis4wFP(YjHs)0yg_pBrRIR<_>HVs!?Weo( z^F01@60^{p-_+cGSJaeZ&6CEa#^&rnTIHKqkMtrq0rKiac?X-^AUurfPYDI$ohEgS z3WP~(?aRa0@MN7+TjMeM1OzB~xijy|r&zjVe83a-WPz4oR(yR|*Ph0WUJ8u|G4>O} zb#NEWm-X3PT)R$gO?@7>j#o_eP|2&TR(>Sj-pI1GVjWPo6Rnvq7?&rVJMu3BSO0eR z65#JdFvBANXwat-3v|sy2QP2si;muFp{mBG_%KWvJwNClvAHS?6Y_p{a4V>7|KTOA(Y*J@v%~{rPdnujw8We$R;} zsht%`gA)3J>!oQr-xggyb)t8ge8Pwkiy6s76wUjbw3AC^(CTE;qxp+#>^E9o6{Wjt z!oS^O5;eWBy-X;hREx!?#iXF$xKj$ndIs9=pvef&*f9m8VU>YL9ly|@S092LQqXTT z!d5Xs0Xra3+I^A-E)5k(%;{YeZEm1cm%&ZOw^1%mw-xX@Ch}EKsk(&fBc^PfHpk&> zOh51C|C0T18=;`Sa~cNTZ9PJD`kw+ui|>c+9}dA?;Mt+BLO?G&q{A~Ev|#Ws_3u!_ zlmci-SA)-9%&VzWH@rC+ghVao(ZjP=$& zcI}El>F1~bi=xkoDtEYbt;t`tNTbnlr&_*<6Ok_kIxG#necp{e1h6jbu78WNC_GO9Dqx@5tm*m1zURXZgdO>+MGOIA|Q*4_!;)JcI zK1#mh!S}1}Q|JrzedaR{Av*e7ZtitCN2iYKRVDJNkDgv3gD_wKF~+XvvdCWp%#Ka{ zg1gp8UErHjAHmddORj|^5&t9Rv`brQmmLk}HgdQYA?&Js!a=CU2g*M^p=AnR4T=*$ z%L}evBo+E4W^Ug?)`rn@KHAl5#e}rWnCM{MsW!bY#?r9`%uGj2(`z&LB~m@3WM=hm zX6aV6(Hgu%nWQ}yaVrm7$kw!f84NaHv7N7fdFHnsA}>+~sZT74N_eFnsGQR{&qgFa z@eFA(E|{C+q^s+oH{AO>vCi;HZRe6QPASOOg`M1$)RlXFhE#7vmq2xV8G09`j3dq;1#DYq^@PZY2Ivg^r9nN}3n5kN#F_=rfLghz_pbPzJ_$}$m8qCtC zLiQc`>S+_*KsIz}#Za+fk=Vse)@szeo!e*!a!TtOdu9-9Cy9atm|32LN zh;mUJz+a{B-8$GZ+UshI1Fp|T>}y@G8j8O)@wBfM&red%c~Wg0So$Y4G$a?Aby7bw z8m?S6^f2q;`>+xYaku9;Am&Tx9gk)9G}kMI7Qb-L=I?4P?PgFSLYrM8j=eayMMvF% z&-j0OBZId8yj0G-lho3@@nKj-i|70IRQAiMK7`V<2mgg=UK%2m(-N`&G8_#7NTuUs z6-Ed#P>lfK5e(U*h~=U-dsk^39R!GiYk(IN^L>skqFr}D5Z2gFwlOC+eLs;n_1|oz z;l$R*6WRa!8~wdP_E|t7cZVdpdszM8J`7mUYKezU9W+&T%tvoBU5-RmE@6cF@qdI& zy0R_`Xbubv3UrR>Ym;zuX)aA;pvw@x4VF|j)y9NN$KEWoAAsvad(W0f}aCLnNz0zm?kvw7;31Pe1YaDNPruoGns%FmTM0ApPAExvSt>=zM_p>v@*(VOe zk$e!lmm=tRwIplyjd5rHxnM-Fbk4c6z90EtFcM+}SCa2n&^&&rVz@S6syKt^H&4uc z@Z^zhixy1oB-m`s$za)mEeNF@fkrE0L9)r?umQYl> z>C9~?p|k|mt)wq%thRPIrtteLW9gDv?KO|)o{tp04l|Pb0Rv(K`691vW*5j{ftFeY z?jG$?np}5vH|ohXh=|b^^#N*MdD6q4^P>J{04thpIeNS zR6R4gb?$8Ji1y2)oxP2RaKoD3vO?5)#=MKNvcJFb5$;^ zN1gOPXgklKrrW5^gQ$o!=}kZ>B3+aw1fq0|h=9@|Dj;A4L_h)rq9DBq3MfdCA|Sm> zFQH2BB@jqx(i2JukmT9_^S=Aemf4y8vOAMZ_yQl8f6jfMbFS<9HF;c>8lkTC#Q>}A zj(=!EfRAwS(s$tMQZ2}D%)PMbkI5`G{9$SLH_=5!*-cTd!p7R#P%+V_)9EC~;?4bp zh$jN~YVeDv)YdZdu}8h9$vr0gahVq;Jm+P6FI9>R(sf`h9o_XG_rB44`d$hyD)JjC z7&L)7M|z%5+TF7!2>$%$h95Tyw8UNrh*oaOGiR{1yz#+9F|P;{v|2dnpDzJL_uEI+sj^JJctxt0+6T8=RR8(ey%| zBra?mQ0o}P1s5UYM*qwQ8;ji48n7N&Y?{ERUukK=#U{6$D6Q;nKgTG(m^4JWAnwbB zh2JNy@3jqjqz&AOm+gyJ4~{8U9a5NB@eiswnZ=`sFG)YL5Z4L4UNG0^iEp(d{o{Iogls8OyIF#1`N^3ij*#)a6bmO-~UJ-%&cl`t{ zBxsz)K74)(@+HKhkWBn-@Q|k=57lx%i6(MZ;KlKtkfSsYy6aXicFvb5boyE{Lp9Gw84 zp5AT4pPwrX&xYjdD;&;{WVs0tTk%$G5o`)Nqf$HPgGoSQ?d*Fx&*4^mZFEv~rV0!G zjMH?>OD&Lxd-*15=a&q@m{>NXtb>EDg*NH5L`?1@o@0OAKcg(nr}-bnQzDBu zh~}vX(~q#d3gcgfGGp1_#8h}5Mm>G@-m{!cM~cLHoFl&+FAWlchY=5mU+_u9v@C7r zTrXX0blQSfr-jzExzpR)f={s8gWlx0Iy?lalyhq-~6kxmDyftvWWqu5*uQ8P4<-_}wfyr3p;Td)K$|;yAg&+E{^bgIf zbKB{=LRZan--}=KUgyX3D1DS0z@r;7p5{a*T+VEG5;vh65ZT;$jGT6usHI3MU-2I= z$jUEWe){I_+LxF(NtfK@WZE!Ltrwbe)z)VQ)L%shYNaHM5ss!%2kq|C;_e=V_;5GX61t z_^JNyMPM?)Urd$SsI@S6X|dav(^bE)=RG3bERduZKqD#ny+l;ZR~WG z2a*+Ex2@3k&go%S@If9nw>ln`yxSXEE^`A9rt|&edtB&JnwbO8VFNNz;3zeoZh0U% z{|3G#$D_nWZJ~AUb?MH&`IEk@g|rD@3eC-F6F!*JexL=Z5Wu>G(9#;sG+*KjSsf{t zQs8&1cjv;y{fD1I(e*R#yq5$#uQ7d&B4Yu;K@Y*$l;pJ(C}0QVbLPU;z^q%h{*Jl| z34XSks!lhxd$DU{_h?hqBO7LCAHe5!nbEn z0JVrsQYGLCK8ytT(qNV?{N<_YOlRe#WQ>uXy2Pc(c#V)yrUBS?>csw@QyGlXGcP1S z5Yv>wuciN*v)N>ud-W~>qg9uDXVx~`;75{Eu(#p!Pv=zhr9=z=B%Qw^2}80S#xs+u zv_|%JTl#;&Qw_7nmR#o3roy;W?_J`(;9$C_Ky!FLLmHdLIvdi{`f`kH;`4*l;=xC9 zM~3$0JUC54F{)-|3~9i7c+*}QRV|c^Ui;?ol)3eVTm6{|f`xD)Wk&&zG@GOflQzeD zgs#>Tc*ruwoD2QZuKpzhBac1}B!U{<&0jhx@9}3=Y3ZETGX7GFHMy`bI<^%x@ zBZtjBwxB6{7W{B`H7Vd4!RI(i8LiltM^d+%*amX@pEK0A)Yc@9%_#TWO?`6tq77ir z_qucQLXKzShi*dSb9GSYFz>HbY z<>xjyeOI_I_@Uk}yEY&x*~##7JP=2mU9dk}Z$!Vu8cU_44$XmM%iNkw@?b$iBoi#~ zHHH5=Fq>RUG&1X))19}dQ@|L?#HK~Mbxk(K=?`8-8;YoQSXV`Vepdwr1O)vA_Ja+s&z(3l`N#^uMYBz8^a?Lf|l#qrd7l^C}yLSSv!$g7v9 zn`1UJD@K~wopXABV`9BIdaVpUy}0qo;E!O^gC0?dJ|uSw3w+oHm_8fBQ#Rojg5Z8;q$s`-TgHIO1q7DV86zPMrW#o3>^5SI@x-&><^ia?p z{2>{zG04g5CAekJ!xI@~*YRt~FTTCz-jsBzvU~W-${^a$;%@?WvO%7r&3 zXLFMhut1vs;)%|Bv_3_vnw273o()Vw7QuMKVeWP62W!?ka?6YfwDt|%KQxX-RC!8` z@E6aFuc=5Z#j5O#SHEicIF@0H65h+k-wp+YKlzaW;SIESs_P8B9MtoNhxncl zc@^0i4D2LVX3HAEj`Am5AY%aEu=bz$2A12t15!%!JNP`C@LT^$Z+HpN8xp{V|2Cc+ zyk*LipPE-*fw{?yf%zMEdYC7Vie~E*h(HYwqo@CAJgqsoalOhG2zCW|gV^$IF^1>* zJ)XawPLUXx>tlDU7s{3T97jCD8LLoBiBF`L3%sdDL~TRJhU1%g#kdqK)%p3xvpveYE#dRYl!+($gLb1KEi z!_V3Ce4$430EfK7FcU#nO7*OaJ;O6<1n(QagK%T=c%>qi@QqG-kM}$aT&Okgwf&-Y z-mHY3BE$2zo8HxxiIOjpP?0-%VoBFO z=t#r5!R44xKx7E)WdU06vXS`~@HgUfHm$!*bHjYzG`LNqm>BQd$UtNg4KOc7XDnQF z;<@I@f|MKt?U~L7PeV9r?<(m|&pT_kw%VrO_}zN9UtO+}k1@8fbieiH?xU`}@fuIv zYMJ0X6k{>$1;&=(_2z(hoN*O}Mc+C9sP!a+xdhn`K0F&{pMNz6?Sw{VT%7=8C0Yo& zA5UMOTDe`{TTYPQxqeXWxZv>y8sLX{T~S%~S?0dhIEV|-4X)swgEcSOlP)e=5)gAw zfu0hff&Er0Coj9w$UP?m;i?MXKljb<37=&lQ)kkX!GQP(vQ<7De6MNJ2eu_B4;cr5 z=|%mGAA>P-;sUAq2@y~4-IXz*n<|bj)13BaZtpfbk2u*l8QEU`qjZ`f`!lHHR4$F6 zy2VDS>Y?u##2JEKfUZm{8(~RD-y~qk&Gg%?Zs!;7*q#7xZ4hyB6^OrPrgmfaN!N?u zB724tAZ;&+_aHur4~K*R5XR)tyOdrfW)?mM6N&fulwwFr{NadA0I zMgZ0G@)XD`N9W*`reNiCiJX#~hN#Qr9PG)bL0&VNd&!S!6KF->47+$d^*Z((SFgP2 zPq%A)GR(P~l+u5A9zB1uhy!o4`4W_6y>vYyG$rw6q4FTh4CTtY5i{e&m(7SiPY)kK zO8NwcHKkZ~;+5H(q#?sgN%^?F86E>t2o7Qgu_e^SD~Sd;{G1_`VvM&7cF6Ds#GXdc zD@nnq9j64e?@a8k-h79!dz=AzHT!nm{33CAQLC0$48+)a-sp?gO-CU@V)m1Z^EC>#G*Q1|xn!WdVb^)skeM z5aYNV`-_d=yLa9Urd;UXwySjcho%DJVrKJ=Y*$KZ*fS?^XX3z|u%K()nR5+&uTe8SEFvIzc77Qub!&!fI&Q>6twV>*{dd;3HhDIv?M*j8!m2Tj#EwAuK6Y3 zKkJQYC4S2_5ip3@jhc}u=sZW;6>C9^B_Xi@PSgQ)+@glJ%Z~s#)70asDVmKiE@C5_ zUHi^;XVy2r*A>Ee*OjF8^RqOp<~mu1zh3bgdgMCUrhE2;d?&?{;Qk#rS1xS|(Y#-P zXHUSxMh3A3@B0n?GhS{v(y&`U&T_lk1pz$K=_C(AL-*8rJMs#G8Fv=2ArUoa#0ssR zFvTue&N*r`#qi}=Imlgn7kTCTMZR2~P2VSGB5#-2Z?U$x9{zug>UrRA9#mI4=i(`C zuP$;+MsM)X4}(6{!`>3QvELrC)?`iLQTH3E_pdrUYJ9!Bu^)$&A{;a!%Hel$T+Ntu zd+zv}Uq9xzfEJr=4klz(`};sA%kA0~UI$U(Q0v7Q$D^|Etq#Zttv!_51B_96GGRAa zyMx@QXWV#;OJyewTSd6D%-WX8I9yC>g^U1H16e~KF8n%Rn_)FVB)HTa=)`Jfg6`aA zaL}KFx<7Fgk`4*;>U#+{E>?%8r5MF}&gh00U{?ZJB(xY7KHd2|V+x8=_#A_4VN4?y z5Ek2nc}dY&;}7miWf6C5;k#Sf_~g109n8%%{p#9LHzfhIA)+5`Si^VicOvACW3$zl zJKw~TN>Y{o{>vJ=aE=s@MP4DR@?bbC$DQlbQ2xI02<21I@twaa{#`5YBJ|4T*%y=} zK@%TjcUL@l*_B$q#zT!bSF=@}c6S4_obFGC)2A{OeNVh~uV;CzOO<%RCJ!l^CoI_{e-6tZGvC1 z#;4}*&;lj$m?XR$$UWS}uhG+`5zwAe=WiT_fOuvv_Os+D$}7eA;tf4SF0wpsAsydb z=j(DBns;wdU0g5UPHr*AYmUS@N~WXeTQ?qIcpbe+K}shSY}wp!H}nG738LC0Ub3)> zkx#QA=oPYtfh?XEz#FYb6c^-xgmgLL(OyZEQuXIfq0`MZr~96qZ%S4?I7|LgxhPG* zJV6wtd6yKOKMRNIlRWWhIyDnMJ1n?A>n4PYjfzy^+Nl|9+v1Tfx2vv!9_)9}kDTGa zb-?so>ePejz#2}CmEyp+j=V!}=!L#8(5m(h8xOVkQo_M5@=?Ie5@1WOlA@Oy-54LH zcAzXql>}_WD}wKPJ1ypKpZTC|PcDDD)eOBZcYcM@WD+Eb6Bd4j zVHi`4ZdUJN-wL`pp%g3qgh01|Zh|~Zxnp>t(JI%X?~N=sZ!)9+cdeQ!K|IK@@uS@` z{7^HIy>x!XVOmhKLhIg^I)3vnOc)6pu7!tDu@^+yn9cy+8& zN-Rho#uFvCoT1)dqHULm(J;zMvam{&4pe_wnc)6#Lo{;co6vIL%U`-(#x1SVc0m_3 zhrJGw1LlwK)7t#lfUGmoW;88NwfK>q=fK#gvp}Gw_f{D@e8|QK*3QqJ&sBrTatyhj z5l~_+!F`KsKTE3OTCdjb=nZ0E6we2|W>G0wjS_Pt8wfI4HnOlJ1rh`-qcB?*Q~Axm zC*90CeYs;@z3pm;V%_)nMVWLkW;&t@Kb2k${VU(;HEU>f*nX^<*Cj1CB|0)@dXrvI zHHQ~aRR34T*uS4))EybOR96PJ?%M`@B2~a(P++63Or+~AT_^gg+w;}$&Kau9-^a)$QiJfCU&m38aXVqk;7Gf4T_WWn^dsiHc$Jk(rbUAdxkL_NLds4Nl}cQg5^ z{rA@;V#gXF7FwLBq`y-T+=d;z~Rt-b`zmDSskbq04oABY+7(n zzw@d#v+1pUTdAh@sdw|!(3s(JgQuIsG|vFaO;psb+b%SGGUFw5R`OVIg| z&J0{~>J23l)%#u;TCty)GgBS2?(+`mz8s_0Hju;ReUy*TyY4;HLH^gS}H! zn$06$_H)+VR;%`K$2e!SU0JpA7xW_jB}KJXU;KbA5jMh8R^uAIfZweiHNy7y!w==J z{6q6%u)y!_raU~-x6&X%2*YUfEAjh6am4784vVOiq(7cjm3tn)&m;ycROuzg1tqiB zG=n_%)AKi_QAh{*xt2X*m0D>Y%=KqGc1OTyOeB407UMKkD$BipI?;m5x|hOTVBwD6 zKKq*R0hgi7Nbn`f;k$oRB}qR#2@u>z3;&dlhkMNM#V6yAMy7=O;m79F3i&g|CeLq+ z)z`$n_?D`i_>$e`9iptCAg(03L%8naB6GaJnyeF2PHbbaHI~f$g0#HxAJHjf6wvQJMZ8G@$th6 zGm!Lqs7#-`Gq1Q8`+(z4jX&-x6_vdEyII@dwv(Iy8tL+miFc{&2PNds#%KxG;I8v^ z-`Loo0L4a8MfwJ&pUQe7bZ};ZpsM5j1er7PD2U_~HK|<4F1s8Hb=`@hyd|Q?s-mKR+J?m;}7K z0Y~mY@!Fl4TszOIMmkM({R(Ur9yxvz>8POnz7i9xm2n4C({hC@MSyJ2f>)hc|b%ZoBvTrJAgyB_-(HItxp&9-ZXlR^T}Lrb>%-) zn-|YoeSEI->WA;gWNBRaH$9W9=q<%O|LM z1&Iic-Bzq1KBG{sPBZ2FXPcIMAEMv&+8b+p4vAtP|LldHZ+yLS0cAoGJQJRw4pZ4l zq1aeP^Cl<*Y22(~Qjwwzz3m4Ai!W4)ug$I|tb8|md!teFd2iy{Jq8+!3On1p^u~Ts z5q{;En z?ru|)9k(It^2uirjA2785SqIy2{9{ADmKgKLD5X*4_|!hJQHKC=)RpV$m{&ck58!P zN*=3UUh^KspT)E}(_`yU(*!6y!5*aS>9!O#CM1V9IsnQC*BoxcsKJm7=c%*fB_bJf z4Bq(ZSRx||_Lg8M_H&o}X6YwAy>SO(2IZ5|S?la^7lsA@gn#!(3F)jm`E)m}XlCAO zCjR^b@mi;bgte3a)McA;k@JaG=H~JJwBLFr6`*?Ce~ZHmzTCO#{zT|wT-Mb$#y<)j zKEF91OvkiVT~NQM*hKZMJK=a)ORa+zu0py0p>c`^^CLt6Fd0axFq2`CtlV5aL6!_8 zDmDdo1*FE4_Bc>6c@0FyR zeIJi55x&&oNgXOd%j-NK#Fnbd!1tVs#J%b851 z7D2}D5z=>3rha3~Xjo4EY;~%R{}W=Ja=+qjTWztM!(Z2fbw2l_lFZFd={ZqyFVP|2 zU*;sa!M2diFw*6zvtmRUZjmJZGn62TT`S5WMR)o(gpk?HS$ZJw80le|9?BTf7YT2aM`k_NeD5tSOr3knQR< z9LPW}h*A*3x<)4ylo5da1y% z=cfdI)=H8{jz43vv7g;|x5#Xi`;Pn6D0D3ZPaQ|i4Nex{otev9xm}0ey@YPiiCf?c zQTf8?c^FFLWxj%LZ#xQ>39JkA^CqRBMBJ`Iqo?*%$oR8dt2$OncoTF5A@dIpP-%R3N(V~lZ9dd5FtKv+2p%AUzWRw7&-9eVNG(k)d+nOEg| zx_aja)*?am}z*CS_q~#v)4bBNd!_Jgm32}}bmPGnlnlQ z-^e{k%*DBI-+J^&A?e!m%$ZKTUqfTynb7NLDUZtfBkVW$dPwiqM(W%0YYD@uWnaK< z9&_kHdgMKi6lw6l!U<}?7SvRy=aZu*JyKa&<635QleqZuu8g1g1p7&YKLogB~mh-z!pgV4B$F3q&nTHxjZOae z2u=Q9oA$EJ4Amj_b%RC=Fbp==TQm(obtu{2O+_FF4^yyOkx1m9Np^Ot0r+?|4FUEi zllEaY#}l6kG%JgLl*VA7=4Q7g*2cNcF;+{fB6RM(ToCm2(~kQNaleO~5wmC9WW$tB zd)|@6(~Z@XKNm9edg=avs1kI9A|(DXs~|k2gL{$bHAn-w+xXBG`p*H0<{QG=CsBq1 zEqhRRTB?q4_s35Lsw>`0UMCi9{wicHNEec^g%Pf95Z;E7Bn=W+m_^Q>5ERY%C}ArUJ#USciX9LJGmC z+@n6pQ^~`oRjJduX-~uEtr+#7RVU_kY<_zx->aVSTHQK29K-ZGLv}{s7gQ9qK)?@b3!^(-7>?LJ!o|c;HG23baSwb>l0*KaCM?F+gDjEd}pjvydMQ3 ze2dno{1P}C+}2S=5+=420BCt;yzu$GXZXqRuofPKcEi-q@lxz`%H!s#61Q#V0Iz^o zQx(yAZ;L=L1R~om|Je?|?Cj%1L7Lw%HS_{+=H|tJQUQ(s+tijo;MHno73`G0b8=<;LwGllH6A3V_(=g2x0| z8oy{vkdM*iYWeH|Sjw0M1KNrH%8iaOH42`qIGGQbTbo}1lMAC$GpovY&b6)vu!r~{9cWv7 z$yau0;E@;Fi96Tbt~`7-N~Ie#7mi&dbJ2AQN#S=xOSgb<7e!gRE;adZgjK$gaFo$P zS4-qCsJ^pO*Zhk?Q-+;~_<>Qe#BTga$@-6Yn5pfbtsH1vTiM7d{&weA@%t;^orQ9# z_2gGtZ9;GF_JALpz=)xg;u;E+%CNV*7m4AGZITD^n4z#+Bxgu%b4BkWQozF^#28_eja@(dV+O!Q+? zVLs{CGO9;+)Q8#Gc5JXo%_;2X^p4l_>|y_k6Sbt`0Ay7!hk_|qLGo`C{aL^kl&j_1 zhCSD0kZ=#4D9=ukRa&VdxEJ~4ZXJ6WzHpb5-IlpgVYzo9hbw9&`s><Fcb>$MrfE}Ssd3GyoiS_uu zZ29_p|Ijp>Ar~lCt!H8#&q);Ep)$j6At^Ft^}yB;e8Pn=`XAdqFX9v1ppgvOUI38e zzX*89q<4*H8L7I)K-|%c-@oSkR!!VG!pGQb6kq=qPvr+M{L6FycO&=(toI*0_vU5- zd8-HcTAm}Gi7ZC|#l&=P-D~)u5Oaqs0e;GDJ6-YpS>}TQfcRa#$miPK^Q0ztf2Q_; zv;Nwrx2p6SMX2HZ4Tm?TC_O}}(JP9{WJnqR(8jrrT6aj?F8guUcNB zZo;}^t-`!SBFoF+i#!*0f9JzkP2}924NLrxk(q3J zpm~X|%D@7}-@U)*MbfKM&)BB;M6khhIuT8cN?^NSX#~FFG z`_Fn@F)Y}uxc|%UMm$U-DKXpLHjT3;DXw%kPuVZ|z)%U*bNc?qd=HbM5Jl2A(`>jo zkR7wmIB7{@B)*S-N(#>j8g1~1^azs4j4T6G^5Bj+jl@^6*ySGrv_$3LDJ3<#iP+}6 z+k;nApf2yCJq^ahiSe_`9T^Jv%!r`7@Y`rh!uM0R#F=5Nk#VQ*wAz>Q`Gt+=`M2g5 z0JgMy3Nl$RCo(;OTk&%AVb+TrzH5Q5+$ItTkz|fdbi1|12eJ=Or~EmR@%Cw1`13I(S*gvblY7BbtP<}|9-p6M2C^FMH*QeL zC&IEV9YskwG>(9B90jtrpYBCaW%`#O&i?j=z6ox&D)3g~~Zr>5@`Zf8yA}ML?pEVGZ;j6^)#6 z&|or4ivr;Qo)%&O@4)o9$$m+>6BcFW=6O@d{X}^E^nj=Y2s7oV zw-NWJL0&i{KPl`OVkBTV?$`t?xntO%KT=&^CWjsWVB_THalY6FRxQ7-7n7E2eyY85 z-SFg;)!OWuSg@Z^b72Wr7{Up8_9%093k!}Q$BOL#LxTfHXkLSzDm12OH%-VKLW0+x zG_}B7RuW{V+N?P5hkaLSf>bNO$?ckK_wmap72seXOXtGlAE$LO;@7EM#Ht(7@IuYZ zJVVDtm(=H%AbQoe=I24TzlaXfNV>k8{tF;%7r>Bd`6EbxfOMd~8C%}Y{9_U0cNOPE z*;Q%3UwgshsXBkJN2J=+?xbDJcWcmbLxRPk%KXHYw9#5{W1?(!alH&%QXKRS0Ver) zEDK7sW4NZOjd@6(fZ6Fzx4(X;`k5U+-srUtBl_hzjPdoceMn?BtV7I7~X9pgvKsLg6{u7<-qv6lgsCfei_O(DHHo@)h(uZ+XMboCQ@LGi)M;JeCxQE~U3SRAz4uCPq@ zs_VK*J}_NRJ~k#aLMk^rZga9nM**Qa(mW0{EULZ2{U>GxbevC0YGiSN5zy#nT+{8(1@(g8{=i|x2l&>HJFl^| zDNpxH&RvXH5UfgS7pT~!?S>(7)7wW&9`R~=Y0sDCFaO1eRgdPYn6oY36X!Pl;?m#k zU&Q&&RR8G<){EtuG~{P#xYEe{c}S9q0=@U}!|uVJEY8I_iRGaRd|Iav{U}HS>q53F zBkh^ikH0QipPYVJ7t&jqL0CyNF)kj zK&fg}@)@3Wz}7_u@orEVTk$HPy9kNg2UWAKM)^HN*xe_$*t@e3iO;|C@H#YCK3Yz- zXssyg2sG>DS1$3vueTrbr-Wx!){e`Gjf*;0#`R5Zcd)D8x-G5e|KstKsCBZynLEj_ zi4A82>5&yi3F^12&EWSU6e;fe+}tT89$W+V4@WB?5zckVlG#qQQ3{xZhCY7p6lBd_ zM-iCwubNmZ8-l-~HHv-6PGtPdTvRSQ<$aod?ERBugs{xv+gtS@i`HMh(CH(pzAObT zAS6V|1dg69ZZ%OM)FVIW*A7v0+ z*hOX(Hl1Cbm81tT^ftQdcE!e3-Zj4RD+jMO%jE2b{iPSbOCZD{l3Rf#>8Cs^e5>tr zw;rpZ9H_Tvtahlpbx!+w=)f43oNE}Ky!~X`o!2>POOZ7W!%A@Oj5TXdMMhRb7I|C} z7>)!*81s_X`ZOQzJza4aco^5Jw&L|@YE*v1?f9HEkUKQ>Qw8W?9Wq0OIg}bpAe~^A zCgBq3qP?KjCT{OxoRwU@i%6}jm>6O;EBF%nowkfZNP2WMpmD0~LBWg#U8pyK`#o<+ zr>1auG-SNy(l(oObxo8?)J?AUXOUMEr9#qw%rH4lXOIM_moH$Ad94v|lBxY>_e`y2MWC6DoCJA~&z4Gy|WsLl}NW-Q%M6Usil zvq|XtwNX~MDbmjFaxO++An{>i%iF|jG*NNhQdQ`|kXA#Se1riuT`+A=c@V#WDbb697hdU~=+CPUItB1747IiPO`l$nx_ z{UP7Ti(-BF#J|3kI6C^>Nj5EA zrhm`7%%>EI-J9{nrl7W@A*_sWdsIiNqJIh8B(t=g%E=6RN}w&QD(&TIoZOBe0N zMD{SZ^E2^_WKNZKegJ@n(48RP#SelcaBkYD+TmYY6)MDzSzQmAX$8qAQc)?7lc8UK z8cNVfV7$-Jf#%(eMTWSBn)(iOlLWBDO=3Y}5X9nFZEn1M{ zfh9(gk_Y0$_h8*4aeI95Xajs)LTMKxy06f-*d{lb6{N#TxOH#abCwr>A<##7_atx* zy$_nzq_+A*f{e~Uqz4Cj(+=hM#n5dZ=C|m_!LY(Z`0nzj#qxk0MV*4A8wqT=TK7H` zENt2Pohbyh39(Z$GoRKsRN|?1C9kHZRQ5D7LReCqU%WQetvb_asM>ZJsAFAIjKA)R zX5y5R_rztQ8L|2w5N1F^L{BG_-gWM0g@>E3vxjC8d)ilb1{+t-^$Rbb={SR%L>W^v zA5)5g_*^w_O&=(PVXM*2c{cdI+S9H2{ zVre$1+Pe7<&DySg2+;>Gm|U0p>J3~QHL|HG+|oL6i2hnUdZV(w^~+$O)GeB@-(S9o zfxAf#iL@o^(9j@(>KcN~t-sa}J>f%say5Uuez{HE2!QXT?_LDMyDz}@c6n2lG7k*n9@P?#s#}xm%>+}pIn%a&BlQ|i& z?u~eq5#ePCu9*&{rdd<8srKlb1~o@GsUS_gUN+TbMOZ$$i|(9f?9x^KLcLSOhh5(W z3E*~M%(Ri}laYyKWtp{h<(WE7|8i?4J1=j7yWf@RFU^S~#K$rz{5q%n{U@3{L4UwZ zR0jA@H;;BI9lkECCUPlx46>m9D2`!(y*IJ%k`o_WbwbW-VYyX$zQWIdY|2-@%X3MG z07MjY15+E|#F0G}7*_dn`y}AbC#t1hP)cg#KiI2{mLU9={F=Z^J5GDD&j=T4E4Z`z zJYDnbUU|{i#Ga3)4ema8omKUjJuFIN*`4LvSpZCSX^&^n7a!lnO}&9%50?Six&F{C z-dKYyh#WaznFo#av1{R*i~GH<+y+^i@&3kqlXWTbhEC5b9vx}e5WPr(PG@Rl>1fnc zN_@fma9}|3tJE*a1awPbfxT_NukV}QuR4p0Lr*ViiDc7#Ac3FpLQ`r+M0Cd4My+&Llf0nHxFh3$vPFe3NcJI znQ;m+KqFGg=F=uNeLq}sCFj$qHqnXaSFdR`CXd;cJMeyL8IgM8xI2s7ill=%mcB%6}VO*Ph8bes7iM@n}E zNgvgRTdCpJwzN^?$uNlj!?;G9d4#;-zjNXhC!GnT`fA_<+E1a8#nr=M7`Eyv!dH{h zwq(ZD%`VGZu3uKv&;8OC{>o(^WD@_BP9%jhyR~fKCt{rtfVGduqk39s%khW8fD~ig z+sO3KxK?GLmG$YAk96ET;a`&|f}H^#AS?B(bmAO!?fpf(8Loqi0`>Mz)5*j(aD{ z!{?DRH>3{L4lwK1Gr&oqeethr_@|&Rr!LDvJ$c-l%(J#9<3tSMqqTg9lE9tDfyT+h zqlfQMTK~|TUgihnBhK*=wbT4hl#ky^_517GlJjc*#O2`f-SPjOM z!~|PTMqciEtA}0WQ&RqbFG69sCaCEA4fA&?mNVi8)MpwOz2ZAsSQ$~gn^xlk=>})& z{R>sC%~bsovs*bb@{?o7)f4z(lB9mDQ$5KOTNd`t`eNC#z+$xZfWPi>c=fk!Y|Esg zDs98$vYD@^$E7%kLF#P(!;g$Z41w?Wp;h6X{e!^7jY80FSDQ*Hg!^_O=?`}tI_ggK zsyy8^j$*TCnuop|XjG4DbsH(;`o8waLstpIq72F!Z&uHK7WdFMC9~} zpKLS#SkFpIgd&>M>L5tJ-DD%@;`tg{%yUcL-(t)A+lyqyIT=z3y zm%_|cnJJVM(1ZUwx879*4bI@6LO3l~r*)anxkq~t(G;*rRo(bua`OI^jhD=b zk@vbnS|PP7^t03ng?2vBc->aNn>Dz0kzer)0^9NE_E&uOdIi}5#xbT}-=&jN{)4}r zViHG>Pc+!l5dmg~Q;XRY!!Pc;)zr+*;o(+R1e_F>Aqb7>BU~gh`vd7Os0A~-+Gy?Z ztnjY4wwo!VLn(%eva;2t`qJ-{yBS2i5_hWgZ7@QBNE>=4PKuoE*0=b_4u`P{7B|SxOq>TCeL`ahR~R- zir(nXi^}rqkI!X)#GVtmxqa@vT1GmI1EVURq=}?HKh~jr#-1 z6>dm&;R=2@sw@P)b<6PFZ`v)pIu>3H&bbk;!4#rdC;@E-UB7w%;^m&H*M=*Shy|(w|w_5yxGMW{TxUnr2Vh=|H=okPWqqe zA=R`W{x>+t#N+=RAM!*~L;|1gdA3YGeeC}@hy);GzIX%fd%vA0J`2K@KJGwRpDp|26Dghn`KVBp^VpK~l1y%H6m9FQ|UK;Vh8$Lv9M zou?}{`nRN+2>~DH^gEgvwMcm-q_Mfa=}ye`@$KrOt?q`@d&Js!Pw^&60fjhmi-zA0 ztH1VcJJmh+M8WS6uafM5V1)bC3UFLGwn99vY$>10+!$k3MOT-E)u*iq$o_z4So!OH z6T3>_iABDWXC`sD-})VIwkyq}+*m3!(W zt3>t>qED0k3Sc4@D}~<&X^_Uyz`A1GCs6-!&6wOFr)86Nq1Bv5(zxDuCvn79jNQW} z+if=#rOU^3SyE6xEQlTM+fJ1tJgUjxC}PQ5wux{*s<-!ZvYEYJ6E}9JVkVpRyusId zS<7PFVwoUHJ`x6rpG~vJuSSyaV*Zc&3ZrD>oCS@%q42^%_tfCt1Z}ZU(I^Xcec|r~W7i#7 zis`PX z6T*aMQ24F!v|K;WFXO|R3*4eBm70|6$}J=^SrhnR+5A9e=SP^z*p4?ka(h?4G{Y)c z)opH#gGs05gm2;(SKP};SOC&|=59&dQPv&3pe)9)f*LwMOSmQ#XztD%_LDU$P<6aYAdMpX-xT*LJIB$@u%Uo-%u z;i(6G_05?>%@Y#8(^oP!_r0e4(sL=R?J^JdIVMQ~xZTiS_pu~-k8N)wug-V<8nxkp zh1Sa1SKB1u?@%(4G6~&pyLl3BG15C-kMoFYb;-O8mq%gb>y7ODZ70Ya&pnZaE~&Z$ z7OCa?&jLa&qou>|sOh1v>?~~3D;buyjM0yOr$Ws*o59OytFip)!@t?T zo5#j>m0KzdXvEM@q z;#w@qK0qjVc_8Z2t57Z)WYDJgz_ttn1T{>EoFu|d>vx`5WFX`yxlPvz`fc{K1Sac} zpYZ@5&%N*ni^?8i5fa2(|j;Zp`h*7Q9Mk zE1m}IiWNp)uVV}>;FHle#jY@1O^7PgE#Z}v;F61(ALcaEw^#QB_M2IScK-sEZvBU( z6Ie}7;63;RkcT#_eQw(zF@ksK@;7tQs$VrB6Lb&lSCG0A&9?*+V)2v4082nefn z)d`2&hIZe26Ue}|x-J*h{^YcyN%ogA>flVbuYR?a6?kmb!QrQZd9gqwh_KYnL`h;c ztD@xj0{36H>06t97Wu$0|Dm}|4#X2<^Wm|edkLg>htQ2_HI+yu*~`Q+PtH$!Hbo3e zX{OLg+{*q4$Im1B7_?^PcaS zdCz<^hndX&lVLJDJ8RwRsu1JDDb%Q; zwm*ezE{>+++(^FtknHwDbvV5$5`A_=c;7h$QRCUPck^rTLi+ig0|RHLQn@~fY8wkk zn)I;inU>rw`9L&>gu9oMlV2X8)_lD3;BHgng~4w#KVVWv!IG>UU08PXo+Q?`csRZZ zu(84$6W|p_Olbi$PjS%j!(M0YJl_@{pf+JoQW#_Wx7?#B!RZ`%Ec1iy#x3HV%ls2a zT(d&hk8Kv^9%a+&f+g4YHXu&0NkLoruX!UUFLHy;s6>z)OT6$0PN(19(r0a;&~`rH z_Yj=Hbr{|X^o)cL_63g>Ecg1cP&rU|JEWy*1GJY;8 z&#gOzzV2Q@cNQ19N{(Gio4BL7+OI4deRBsY`XAcuLxiHbZ_Ld{Fe6GyK(QTBb7hgg zdnWs~eiqL|?E3Pjx(k1Kv2MJ9@(x&UJJ=Hs8*);szs`z_2Ilp+ESM#_#HklrA?=`2W@>cr;XAawp zAb$+aE(6v4?2aOb_j}j5f>`M#e;IMdCn74vFMfX)Oa6SDT>H~UJxMDG#7T%u^Rr(B z_=Ol$3XQ~v`Po4*VwaD*y=;x_g31YbFQ*T09puG}450!&<&wzn7#H8Jy+(QUdIdjb zc~2U>_;^Jin+_{q{|!B8)ro_t);CY4ADdW7P~I$LiYvOIH}&p?i@rLRhLxRS<}@Kn zoqbf*7?QKYeRs4>zGWa5f9}&uG`2ypxo3=l~n`PiVhcW>$gIfo!_-=Z_MV;Fdc{Km27il zD()6_7oJtwSXyhzH-aDVg{_8-D=`QAywMZ!zYrksbX(RCvS~oKjD9#PKeluk48p{j zp7#w6)q-DTiElIo+Ihd0;Iuvq4vYvISHPpnSLG3y%Kw$UFW>g-R6_#3QbqwO|P~n+Br?ko`Y**fySg`4Z9Sz`WJO`EfTi9iTV?p-6BoP7ICD zvCnC~YI$>IKmRCzYxc_EHr!Trfmu3+qjm1m2c*9A_<~}P zrkxXQk{euz-_w)ln^6CskMs8SF01Oy!6;h^LID0@DKLtJY4bzsX2)_Qn0ub=s`#AYiy*3#R*`RcIzBACL zR#6fA%m2ZnY=vy=oVb|S$?VHGSysInkEG@Y$%O7zp4r{*&k0d~&xI3IH8BQy;;l+W zP?~O5Q$@2xe<|@Qe?`R^(Jr~DHAM+I>HUGX+B6-?t0ZcvmD#d7yL_l0Mls4K&dFdB zsWm2tpc_^%a87q$shQ-@mU(5LPLudXI(3o%D&Or)2UX1r5h$uJ2EFKHPAI~oxS?Vu zfrs?F3QH^v4Rv*T68Xr+aLnic>@;18)BkqgV*y7EDKG_k^D?5Go7;Q$ToH)yo4(bC$g|dOO$d7{O|;sD9HzMzn>lkj+AHF z-*5@|8Y`o)Wd@)}V{D5gG1V@;qmT{?_3)6ik!xZJR63j^Icm0jkM5hsz$M;I$boM< z4}D{#_}PKXZo+n~N-THt#F%mOOv0Y`>!j&Sx5^hpAndSTi5@mlQBhgl;?UWF}{tUk*_z9Bir9lB$ORN$?mqf6>wUE^; z{g(hA;)(J1VXv&4hZC}TD_sYF*yz-&g;2zA+CBT97A-+Byb}r z36lgKLqbX(Ab<);zEyV~|IOb;p)Ykwfs@^1@9Vs7mwA4~KpaNpPct)**i*jgL*$9- zj5grMk%lg<5I8kM(Xk}O2}xBWRgyr4VXOL`8MhM)x7U12V;-$rZ?jjQvsCnLpxxK2 zn*|+tpQu!R0;HjlBr)P^0xV6LAzUsYqT^;emo;I!Gwfu>vde(R#8ur6FU2rzy^>RXB@3b;7#PC2}jVQNCY-tZ!gFUiDYL34g zEWKMt{o(CSR?+-?bG=q?Y1#;+em;Bde*Db6=*JE}PqhmkIjMa6+}Y z(7SbqoP=BL_XxpVBVu1GPWB}!fE7n_!!c_dTJI*O9p804P6MKD9HE^4(7r~fsBw2NJH1^T0jxq0a$o(xc(mfeU1JZ4rF`@jvB;dO-Oq=dUD7LZl{~D6{#Dj`{VX~ zN)9tq>~0q>BgwH)KB&l9zTdOOJ5>W{&I4QnG`h2#bjR|sD4;H*&YgHO6^~n5T8d%J z*#X17!!hq>ZifpQiL6QR%Q_kqMDp0mH}YSnr*I4Sn-BK>^3IHxHb~=~bb2x`=KUbM zVzXae0rx))gAXB2obRIzj4_94OiTsZMrLAd^%VmC(H zEG&3MI8L1>cq&*9XEIzsfd35G85Y}S;n<(f<8Fc--m=l!my}pd(ErA-qsKDspVury z#cuB-c)2oP8uBzz7F7hnGUbqMa?uBe$2TyilwZOv5yD2m-PxZ!B;B`w#zStpC^Y*l z$DVS5d*%Y>vpm*-D2^Fy-_NYUn!tjy*3Rf)cHrX&67qDgEQkVBB_Tk+ z6vO}p>H0Ho-W%TzIBCv2kZGF34lvWpwy1ot<~Tof|G-Yw=QW;UNAUqTBxM2~z%WCx zW8y!u;ZNg;-b;6qE+K7|g2SPhFKPir!&#=+yjZu$O4Z<+om|w8iwaip3 zRh;+!>?qT{ro%Zu$k=<&E+V#%CUA3a;^INW-bEQA};ypi``tl-k%Z2#`Es0OBA5H(gId~`WZQc*%po;IxvEC1O?Gs!%xV;(#Jd;K= zP=uL3#)aSOj%Efy#MyOZ`S~v4@Qf$3gIWDLv;i#~DUS#Vroy(>SLeVUO~UxgXuhB; zZ|b?DeJ6l?xiw@wUSCgc*4=bjm$6^`JlX7~YWy`tS+=~i+6)p^AVxS1Q<1{I9nh8# z&5!e0j(};F5O#aaAogArG1K=4zw31vG#tg9RLlPsw>3{Dt#fG0{}r3dajW6#ZyE^_ zfu-9U`9p(_$uk`c!=A-zxyI@o>?zh~`I8iqfnkS3 zs3@NRf7#MhT{CG=5m&Npc57JG^cbjlJC%|VdBI*~M?Dz6(C&i+lc>gUN&P%m1+dS! zMX+V2%|vxE(nRe9OsgE~XE*`zaeow88n{?5Dm0lFE|PwuwlS4WU}5}r&kw1k80uUs z8Q103#eFi#iGIj2Dd1I;!ofeXa&fuD+PyNE=fxA^6&!2V;m2UbwC>TxWug{NI6)3| z3(9`tPQPo+a-PXDtuQKa+|OnOc3~NJc5F;ZWZOUB+!Uq`GV1TBEkFDSe=9{#Q0&|} zA1T1@UI?9cQCUBkTS)gF9Ts>}|B4$f@l*V1=|B@Nd4jjX4x@`vGQJ;l+`p}poNw>K z>lNQsAQ|a5KXCTAXSo*9%QHv5DitdUgXBWRNH-CTTj^;LFpXkO%n)iHLg_M-D#58M zmpT#G+WaZ8rmU88g@y07M#>$-RE=7r-m_N4)iy8l2y{ik>acyMDTqO?^Z{~cUP7d- zd~R#F#6ZP-P|jpz#*Q>l_3I0bw^7|-TRx8&vbpq#Q|+Bz=YD3u_{!_kk{WQ@`CO+v z!hTf^zzYez7>01)beJqrX-wXTnW)4=12effEhU8++vj(g=CbX2>~O2O@#ex)%MtU} zj}Cdx4gVNr93aTm*=@HpScnjeN|v$>t5NENKDHvlNsM1#D63F#NN|2nKqNJAx8T*< z*>mll(7SPJ)=%=e9{_SO8HI8@%NGPHG|GzBk zIRyXhMaL~7=VzUB?qdJ*S+n11%SZkks7ud@j+3V|c@ZS`L9TJYdRuAeM4J4+<^N}z|o**?wc zZe>Ke{6-~Mu2iis$AwJuE)Cz)vC^v)7yrnL+I&FNtyWUebrFs4-*Vn+dNZ#_*NM8w zBb`^uU6zxWp$H5!vMoOJN~3|!3uNQhaO$f3w=4@r52S z!qXW9?wLL}o;d~EF&8G}#UN@G8cM8xr%s!`u}N4z`zzDS^Q}6BLQ<1j>%A#YgHfnB zi5x1{&w-ng8-#&x>f6v5jUW0f+Em_RTeQ@2a=4Zz+g2TKC!+f6YY$|#b~>4Mw{=cXLro|?+>+m~_2_jqB*58t#NWZGk!zb~}X zAp1n~MOjCF?=ofrw0nM{s$H)SqzV7V%U(DURn+AsKkF!k=@%M3+UEzd4#n8Hruymw)_w&(&IX#|^`@yjpHcB+WT z#Dmt_4D~VahK8C%Pw1zQGt?TPhhNYc87sQ&I^s>G+$1Y=o16=8>Vui8M_zx`My=~L z{I1kk$v97KK#NJpzQV;7%n$`Qq~g4dIEHSdDD_7eiC>CdccN4 zrE$hdMF2IsTyQigCeJn9V5SR14||BsuCyz4v8)I~t7Pa)=no*1{#M0IQe!gKk1qtQ1@di@oqH$yoIQSX*9`av z1i#KT=gCzKGQGEY#?}l(;2egnzJ)yyRa3JPYR$txCy100Z(=*5+=-eM+e>$+i29fy zot`vS7E3R4tDc$n6i57V`M&eq3gM1|Kd&7b23g7?x})_AF2v4(4rL~;iBot6m)12* zbngFDUjC={^1rVdq6@(2BL9(Hz6bJDQ;}j)eTXA55RgJFb@|Pi{3?AYw!{udtNW_4 z3ykkuy~W?RG^kT~2xpc@?Vr6ZI zE1~uM-6QJLN7~=NOI6k6sEP)0+NQygj{+Pj5))fP(PCs?-DzJ(em$rfB>Ptr(t+n_K z#arUfHC?~dpb@CdcVsAbwA8F0rX#YvOkRVvJ5Mo+33}7Dw*QBC*NzS2^JegF+`P{D z0RHI@ouzL{N{@_YL+%?s+>-9xC&9CL8(#8;-Qi{^2tx4HfUQ)BW9tT99{y7McGyrW zLZ?5rb!*T~=MyookP!O(xbSG8Hbki>Hk3z}oDZ#I>tA^rAXN5PG47E5^z4qD$2rd2 zcc)0AwuCg&Z8liPKBv0^oDNkep7WFbt=`*6f2;N#Csi`_{+l@u8&|wy$JXwW$7iXz zu3l&L0a_j_&v>ntC$Jr7wd)K7p~F2yISHlV+=5exs@R&Fsti9t(dw!7M~chSaOt^o z*k?GqyRSeb*t5PIynF`Rd=V33B#W)ZOA%7A)W>~CTM7Y=wM9hxW*lv>$V7!aS?#vW zuxGJe!Hz<0yS~*|$9VR#(Ccvpj8B+*b~WY(J&K#2KOA|lfokJ^?iu@*d#P@}QZc3d z$x*2}Arv?zg}|VRGg?jU91P(UG4@mHY(q}PRD6Lkfk8JgT?U#gk6O~)JZ*p6>;JaF zyrNXWfENitSpuTPn*<}h2_UdD)SAHQgaJ#j5^B4Z_Y12fey3fxXSCsbjdGD#yC_WL z>;w9+l!$d%yy-wRn+_~7?;w*FUsz{1fKmx~yUC<^Z`K<~=L4GKhP@<=GU1LLA>5(_ z$b|{);WT|1eZ-2pZ(z%$eoGAJZcMp$AWHf`LO6;AqvB#Bq#u|#FEG1K{JuHDi6_H_ zE%%@U45M7om23orX$NjN)X;A?)%3h=q&&x+oVtG`v-e#*B~-|H{w|Z*T*$1|hkRV< zBm%HPBF0nl*p=9X%O4l9a$9*f3={|zjRXflf$4B+wN0bXmX=$ncBb`l4uTG{QFXsy2xJ$@$#LH+J-%gav}$z1v?K)(8A(Vo2`T8 z|B-!4#q>N$T*@+g6@E1KH8)feR_`c4EDJ7duh92dOwr74r9a8N+wx$0B7JOVc{3Ou zMNOq;vK1oRq$zMDYiOG+`hmf=u1%D`ZA?>(>D7n-+Is(cx$=%nEOg#5r}tX}0O4B9OHz^SRwTvzh$WeeZQw?BAi>r+{Ws_;sJdIBp(- zk9yYk-SatuQ%}*$Nnl4|Ak=_pcjB&09DEmAIv3er)3y*!cwaWyL{9$M7vVJyGjgcV z4j;GY`~5wqf0-*%KCkK*rC8zve&%&-yK%%%JFYwOAQx`%a_t21%S1x&Nb6YWQuLvsvbnJbp}Ek0+)MD{HGJboYG zCFtOT++N|Sq-MaNh|Sc%8YM&qGhvrIRSxM2V<10Vnn^LNJvM3;DH5l2>fIKkvHJG# zhm?w@dBd@y9|WUuV;O&?-4+S57wkZcT@v~*90{j}f(_x}Gs=rgrK`|N-X;iF%!SGy zc5Xqz|XjDOOj>wxuPUTt?Non;6^#6wAIqCJ1X?!oRu9 zHc8Akom~P*#C#t&?7;|hf_Mkp@v&~Yv9Yc(5%qHXlxB7VdcaIS@GX7G z`?I@B)zh+=kMlbkRYK*M!#mcX-6bCEbhUFR#%$K~6w`FHY|~boh@#%{O$%p#oUk%N z?*(%3Cui^E&0I?~0{9`uU7b|fpIlz&8yT)f-%cr!zzb z*NjHO8pXOHD)~EY*lzr!c8<0Z@pvwMTpm|yQ##b51h{*?lUqlS6ZL8C+Q~U3K;j^jRuCb>HXx%JH42Y_<07 zSCc-XzRNd4x!zs(r`Y$$L=qLT9lb`P4d*%$6}buIiIz%c3APqq1Tz#)(n*#6s(HG{ zu+_1S>5YWCA0_QYc?A2u)NCwlpFvP}3d6n$Ug~g{7{>e$* zI5_eNq4DPFIp`5hcn{t@ob|%^)W_vp1+{DG{sy}iWYF65>2USg^K0x=1H@lQ#^S71 zFi?-wG|4?Jp|Ifcm-W3(P5!M%>2amHM=WQrm^B5zu8`^ViP1BT2!31tM`lrca4>Pk z{LOBPdPG{M3Mz~NMW_pHb-%z)cjQ823|-O}Y_|QzY&C%#lO&kiP@@Ms`@leXf*RY$ zmPA<+T>5Ng6SdEPD;!zw=awb3UED8-9mMos z4x==%12D7QE}ZVD;<*FliS%mRg1EE0z->1i?U_coLs$FcU63FOR_g0(dq*y6sDhOR<czSN80wqYVdna>8G6>27B?txhLeBr-YrQWw)mtGbhysHdC_;V$qA zgkCK9^C_YtMZAZ65Sgnjd&@KtgbC87yTL8kAbC^MTxSHp3i^tZJvdh*yaTYdMlg3`z$p zfm6bnlI(SVL=G9)l%~r&IR>%Y)xX_3dz=uDOEvS|2dR{p!w4_qeKZ-RRE!LGIM8f-I-kJx^X~3MjFWZ5F_y za5I>Qu8wFp5*g72^x5q4&;sS;%i#@2uKOIWsg}NNCA(AwdR+0}?A@pro^?2-aQJKA z;t%6B7TOL*p@9SnzBJMuLQo08cjOP0voo6sYnz30$!)l*ro1y_S)XndWJPvM?K`W9 zjn0EbrWbXIVP-=Dhq+W@aNCG&_rpFZ%I$Wpai16jGt_liZzeyUOXl3>#kKm$Y(wMM zpX+D!eJKqCO*arf=5}I4kc}a0R=-B|*L8V*eF;8NP~W9rIZ~NfPw0gcbi6z0pokt0 zgUzls&_hC~=c*0OPh0kx11^mQ@lz`C%w<9V<=wOkZ5IfOP3mYQX|mzowkO-dcu>&= zpL0M$NV_DV^ifN5;!&W~4T7OTfN8RHkau?w^L%s2qhW!Ye`=2tsTJ>jloZ|BGYVq( zzLn4OsJ$O4LH=J|)qk#hEkHi!Ke7YGqY6%~e`KFwJg2|mq6Z%T$R;~3;)tc;WAHT| zic2q^Umqm@uO4jcum4wBwlRUyDlt0+IL~nr4S;k}4KFW^Ur~jNscwu3$vkTe>$V>P zOoiiNR7F5aCb8ME=vLy~8q=FNBvyNx?3Ddl=xHUZM(4}k6;ZqGy3Eu=_pzC-dr^axELn*` zFuA&`s!N7UyGyKb(49p#+mN&D|C!SrP-AfY8^nY6#rl4#N4y<%e{(@;%yuO@>-*~} z;cLV^gzNTc0`2w^f33OHo?GSq==z(c2E9C!iM!@E>18w+ZT)E85@I{3_M~NE5h^Lu zb8~%X@uFnB(NnaazzRo$^Ne=P~~t1;jfjXSRCLUk;g-7lPNd7C*n z7yI1-p_jwDt;H|HyLS`OrrLVUlF#MfIk&b_tLO6{(ReZG*9bT#m+4-)^3tA+O!w!0 z|I?89&N+u{#PxhrmRoakzl6iDA+@4K$UW$bZ;)?hb!Q%f^yT(06^|eA&sPJ~%EeRI zBdk$p2Nm(@l)MCIzpct7iNRG}HXIM=e0`ne6w)_!^lo2qzvIU}+tbr)E`O~lZvIwTX3SrnWYhKK=*6~8;IACaitZv;sA+Y|ncpcuVR}n+WcUKN? zJjO%EzefrU*d+`ZNj&N!do|+wag;tYkU{g6cq?n63%j?CL!~ay7#*ooU3REauwRz8&lmP%mwVthkv95WVrZJ(VLJ`9 zI9C60$=yaP6%CPmmWj?yJ+VHVSWcD$ee{)coz;siOVqy7$^`?vkv$jRV@vpENSnjM#vpW(Q zo>lZPwZ6W7O#Hr8Pc$?CljqE@UcJ0d2K-S6SPlqec-YMPzzZbE-b8Etmj(adS9W#9 zOe?7E(W7_FI;2m?qv3|0yMY%*gyQ*B=k?U-D=i;e_69x$=N(s;AAFC;2Tp4SoirBFYdti3or&My}-EzXtQKh7#FCj{NU4hU+k~$MA3kHE4i&ZPp<(D zroI5nsE196R+SHai*2vHIqhv+xRag`aR^XBDQ}V4=9~KdAx~H0@|EkkETEMobqH#g zbD`*FpOk!-X@ocSdJhnt=j}@3D#V?{UZ|ywjqsxSb;eB8w6RbB6_B~<2FI1i^C1ro@H09^b>A^ zw&w0|D@^*hcyQyXCN5Nwzm4}IrE3-bx(ojCcT8EM4gLm<8YQG@j?KNp?^}3vR$SO- zXsfxf26~n2ADP(_)UxZe{8_!} zi^~t8;0>$1m>1FsQv7Ru6#Nt)w+$y%)f|4bYB<*+8x>F+PaHnJz2BiBbHF3A$<7r9 z7WUcdrLnzmX*gXtGr~hIi-~$TS^PxfXsaeBp>7r&%-S$jXG8Hw* z>1ByaG1Wn#v|LSwlKb1(>x}k(A4ucsY?I|AS;8@zJ8`DI2(8`bbD`sM^Jg3>$<00* zY~E;nbFOK+mg6mE>At^b!gvORZr0M3(e|;6!}YbT5&_(Nu0CHe*^SpS56NCLe*Cx{ zopvG0@9ikYlm6>w)kC&o)KGSdziQx^ikFB^2a%bO-|iMBJmge?!1AojYsgFeBXg;| zvmMNg?T=LDEZJ+8e;~Yg8 zDVNk@!3zLJe%{cNWrepRD8bRiM1I9y{YvI-**VeQsQmWaX;w$0T9s_gHyezSFB7w! z1{)K~ATU9on*`?Dpx|q!P~|TDSezPHxUk=qeg6j8ohu{CxHs|dBup7wPnt+PM# zO+!SiM%Z`^&ihYn$?BiVsqE*EWW+(Uo;KE>q|YqO zYeNWJ!bD~j-O-}U+!LBocM~J*VUL*9CvMf|(bE`t07U*2W8|D$^V)6BIp61uZrtOQ zfI#iO==<&i$e!~Rf!-^S`@bn8X?3+}{*kq6Yag_JnTU2kMU)-NKY$b>ZoWFXPE{N5lbFrnBgQEDF1weiU@E=#ZeOHJND zr0a93-@u9yr($MxjWx0U(qI30H8@VNb3MLmYT7MAdxg9kuPVExsn|4JyfjeF0I2*7@?GFuF$lDnSr{XO@^Qt18QbuXUm$+Zps$ zg4EX#v}~MONj5UWn-8S15Zj+F`|oC#O!mq)J+JM7;Dc*mjnn^0_7wx^1dl396o#!H zQtCLkxHvJTHka0DQumatm%Z<~N0t=tHIwl4tm`kyh{qgofO0^9O6Svehks3hdmA&z zpPKs@F?3F9UO2z_{}PL;|6gn9a9|erb#Al>E#*LAwx?m?iS@bHrE^>Ro1ouDH=(5d zZpP*%|7vYPb4zOn@~VX&K{5>Ns|~hdI)>A{Q^v7UjTJQHBQm->57ZbQ+frP(5US;* zuJ4#)wDqG-Q(Pq9HJxzp~nC+2jco%~Ag zE7wiXY!b5V(1z!XyUn^yhh~3lr?EfsH_$BSiokY*h9hYI=xcd6X_74sdEYCRcU9~e6|HxL7gYTyGrl%&X z(%G9&$jz7bwlyR?n~+o=3v}I>o#IaxET&se92E0^eQ-?0*9e-`$CSZq5j|m8Z`1ax zSj7k=PgK%&b9Msy;-m>1|B;bkS7}!>A!)%&IV^W;Naiwo`ETuDWF$mJKh_6auzdP= z;dbqs&XN>g>O3N2ls26y1Ue|Jmf(Rr`-q#sPve~SSud!Gnv)(R0Vudj!4yHY4}0`| zyM9B8olEmDS4R7g*CC8$>A~lpnzsjNq&e*?pA)um%RL&mg2kPeJ#hG#T=T6Ct`i7l z=ZarVl;i= zp$Q%6?7!m$%2bBzr{I()x|TSwhu!ubRw&M2{0fr zYBDaV6*|$Cbgkz)YATK+YR&pl%+Mix3GQzg%&c5XV0usuA6KwlWwEe*>yH+6dRxG+ z3UHe|T@mb2eER9B)h|xgv>W*q(Mjvp{bT-^%m++8o&v9n$$Yt!*OjhjomTBh{4aUo z{|r_Rgb9)s7=Zl%T&Y&V)f5z`v1SVB=PE!KGNU)HaZ#XO0Ba4;efW$65W5{?tT`IY zEUtk&rnvM4U9usc6Cx2^KK+LY$J?6Qn*U>l^k){7NT9#0AsR76w6j5z<=S7?bh~{? zd}k3m_(AM3-W|8!M*3Xhsa%L&7t>&ex0>yS(2M;bbYP`)2optG;2&x|#%0k*l=QR% z6+A9#?RL|7*#5mkbS35PO`AC#UxN}lCK+qlp129$WlJJnRqbopnf+wm-b9eish)G- z?cPzS(VK}4b-)o9k^}RZas#%b%Buv>b3%+0hK^Cc5l4VfLha3`*HVwBx?EVyLJdRS z)Tf#0d2R@F+NY{my!`B%nsed0qm1aW(dlWYZmj`BqB;CNl&Q)~A~zSdE$^haxbj*L zyCwFRqnTCnp_Ue~;@^>mI)A2ZDaTGaSay_83zG^hcLRFvTkUXsGW}Apc=DWGHF7<7P$--k#va5Q@~G?_Xgc7mheBHLBX-up|VJS}b?ATU>k5y}p+y zEij?pcg-XH@zhsDd#!=L3W@gU?IiL5whq29CPHwmz0hFR?YV?5^HwW6jGFzENtl6R z_$j-0#@BsscNLRxXSvhKYf-#GTJ8mLm3PP)8{fgbp@*UWSxz8vpgL4Ek<))gBP>-> zotcEfrff#{l)vtiEt{RQHN@FigIQ|l`yq5=N3-6$o$v9795o8Qmq{z258O8hcKOcf z@NgJAnup#T>fmI7Lz5MR@wX@@}X6+AJ8*uKQimRE^CV)qQ8q^caIL*+_6QN^@ zutMI}FmzfTM)B2f03Mz2Ft86SHK(WjVfGUj)ebp|*%l9Urc?UXiO~(0 zV9qId@VU)8T0--TFTX=trI@FiDqYjdf4J12r+)v^DIn#O7Jbh|{Y5jCD)Pk+ z{b>WR+IH#!cG#3$Z2t#%N@-oZ#MHLPVUdEHFzdoXhVGnPn85FS@$W+^Y~hQTj$W zLojCjkl7?FoIwYkI}|;nK}OK& z{c9PV;Ns&|X>046Se5{B@!^{5`BIep{0dXJoxY5P3~I!dkEALiturGjzu4viRJCFHdcZ z_uN+Nl~Y!8wg1Yxk^ladcyDsx>`nFe5hjzs7Iz?(6v!UCt0k8LNcC8E;jJ^d(f8Q? z%c1`7EBBQOGmLfz1U)DrS@HG=6QVS`fG4-p_^y%Sqmxsn!3|}Zz)(c2S2g)XKBZ*j z<;)x4T~+@+^95n&ig|xt=L|D&35vra`Kf=H{5hM!3lKhXLhZHnn+D?Vy&U-MxgL^n z1HNLIheJKoZ38|Q{RC2q6_{5M<8pBdyFD87!7|QH%jfIGkH*Zyf!xBlXr`liq_;Omf{k=ppuXUcXG}Tf5}M9Z8#@<0G6k}gL=-{ zRt0PJ3Fe+N`?TSv%M$NcIZ|KO;gx8OxJjO9 zasKrC9x*Z1zc?3q@?)NHr$NM7O39E@e|&Ul+S*X>i+vF{M5ojd@6QY@Yym zfNCLR;8h6vs|JeQ(*ZMGhvDaKh))iQLDWmf-7K=bx%&K30*O<$GQ3WoDeSpv?qAD1 zwyDoqxs)=+-9VIDZ%?xVDrfmc_(GRDhHM8$y!`Pp0`!Ns7F?YVdj@?MH_rieozy_wedEQHjda8dt z&{Jzs`)JyakIf38MfgKp#~!+r5W*8V4i&Q;htd2P&IbpKMCIDL338OtyqIXP$lV|O0q!z*GFT)ym0BXl@eJWqSKq9aC5cHxr7n6r8$-88;gWz~GlIP><8@3dsnM!?Ee)6gwN z1)X?;<4(fv{QXj9I(US$f8(O7#q1>fz1UtTGFR7^XJN2pciNtMN$J-qEQsPbFnW} zO|~s1dWqs?n)Ffp@mbm?MX;GKnX4jpRW;?7s)O=H!vPuS?O$H&F|~>(%b!RbW2cmo z<=zr9OPJ-zth;3Wm$HX8lmZGm*UZw1WP~Wigp)17teRnukpU`EN)c3pEh3FsYTpT$ zc(KB;cZT6%*$!}suP$)`d(_waH5h>1#gnXiubw6TP~i)e#5_t0Bf7p<4d!7Fd$pyL z0?OU7mCP)ebS-r|c_ec~|BkmnQuI3k1wRGP_`-HLz?g$2AZW!NtAAv)u(#tdMKq8X z@F`%mm&3F=XUB{qKC5^h5cgZz%qJ(ZZR&q5Xsf2-$UDPqKY`20&_%%^M&bBndLi5c z2#)st*6giNZn?9(H`#5?k+x0byT4C}C<-M376NIhdoB`*t<9y<)E0B@MTghPRw9 ztk)N3&7J+8HWb&ocJ!_1Y@Yj>$u<1)r{y}MFm-t-#dDlu#GwzBcbn+O#t2?zk^8Sf zM|Jwb7jYAdg{DRFTc8~o1eV%1=Tg~zIG@sg2=RqMuoSk6z=#o!+Q)~Rl-c{(cp49C`Av; zTziVzq}^(IAeDI7q$k__dzB}pQX|D9zg`Bw`yq2yUGQ3u6bKyCq^iXnyDO03SwL_y zna-_=mi{K(1QzoTtD{zuHLAHUqyNr%?5aC4zW>pvI8o}mg^Q(ojRk=DxB8~mkFN7I zMBU`$i~se5jJ*E3wWLjx1mbTTv~oZ6!f*j_fuce@PW)Br;b`gUnWw;!>wMlNT`N<2 z1he++IRCxVyAPtVWY0ps^!a%k%_Vg1zQ(yKpN6`o`!*FqtzK}zSj||XN?lo|8x%&n zrBW^i*5dJt)5aH70%zZzR#Dj+%oipAA^?pZ*MsR(HTld$ugou@C}WFrhA?jw&0w)Y zmL2%bdHMYEQk`^|q8UAzi#4Flx%opT@E+H7=w>&N$0gi}hz{nS^s!;>^*h==_f4a( z6K=w8l)ROv(JQ=AeQ)89AAm$PiqQ`N%J~`{_U8vbATAmWsIE(|7uY_8dkG=q0@OS6 zSJ@F!pue*3Dq$$HKljJ5!8E~HxYm67Xj(fkIqI6McuQ+pBlGC{()=%b-Q>~MGbobi zWgAgK=wk`cdn(^D?4&*A9Y~XuCxE=DRZCaK6Bok7YsAZkb#|@{ri@+J}cVJ#~t(=eTxcdCRKLGU8cbFM-YcL zCLM!rZVH3$2x85*+WR9<%t3a)5*`T1-g(j#aqg*(_zb?h0+L{G{4d={TYNu%WwP?% zlpvAsJ=LugC1^=93N9qqB(7aqGt7riaITvOJ%um*@sY0G6qlj*3+xyWi#g8Ki&p$# zvJS4Dh^%Z@ou6t5;K=Tj>5j8nIF9m$e_zyVhOA2mCr2VaG{kBz59CwJbSc+W&&{2j z;`;*^)0e%02Ot};$Dl24unfTzokePq5$VLq@71J&Pz^53A~QbB4_)q6`nWCue&tWU z8bqS;{zfv=gFCsYx&1mK?pyZVqsk9>E+VCyG-ycX_I6+Y4rLN;s!ICUTL^ssYV~s7 zx@#Xvl(Ln^gSdNo?upwR((vUb2d`!_vJTHI&bnbb+$Q`yb0;bP(z)T2-Vx-eALoHN zi0xl9kN+3U^ow(z|IJ~!)ct?jFiYZoJe>aLphBA%(>7(HUS+qpwIfL{|D6Bfw|mzP zE1C}~E&xyw_JEt=3$gqyFxx z)*p{1v9z<#XsH>h&hLZX3OhNaZ({ln7UEJ8Fls-}8o}^lyj`)Da5u1clxv4ww4h8_ zG>o_cW5{bZ=?IXad6}$iisV2rU;M(QbDsjY<`;Qj^W9quiGPU1M< zn}4)f-qS55(fcqekJE-Q=K{>g+7={+2H>Lbu4P^&%K;fsQK!C#c=o<>i&>_v!s>YO zAm%AmMwhMD;QEW`^-9pk?3maKiGqCmQeLwYs=rzi%l%|G=E5bnZN5_M_gnq!TRi*& z-H1J&lm)VIO!iFw0z5ta2k(q6&RG0bb7wseO=KzC? zb&)H{GM8xpuBxeeCB=? z@+zcv!4% zs7R*vk<9EdtyW{gH4C8AEyd+GJDomrvczl^OLl6W2gTSLj(Qd$4{q57>5G{77wB*O zlS{WzZ6JN$Eu-=i`{Sn5djaqUN-IeYFfljTGKL*)zO4TStYEGcIC_>p9go#r=S6mVACSAwr>mSlW9|LMoAw--*d*j3w7LxA6<+4t zP-{;T#x|Ae(^nWL?R_1NGTz^FI?~X1aAC-rhT-D7GgZ=CGRwl z2*U&<8|ryCQLB#3yZb}M`{=lOcCA*1E|~~PmGBJm9R^wX)|(R*eiqS1z}%7OfjR6> z16d6ATM4j}5uT>{7SC>G3O1$~W*U6`XgyT161pNWdqIis&ZCJt*BEqShK)WKSHRn| zzGZc&gV{D1Ur@3Zq^L#?iv}8)g?`8rlG2g)iEH6)Bc2W))4h$v^rm~S>ru^l$+J49 zZ*I1f!@{? znnH9)HC>TUPQsygmn(@Jrk2233O|%P`)p@7%kSNiiLJHnxup+J^WiFYfKADN(^LcV zfOF}@KP+0pjjy~veRY_+(foLj*fNk#uI@;?{J8CBPuuSx2=~6s*q~$<&S10qY0{3c z_;74Pjx~WvqaedOwCi0Ud}Ri7v?DL^5KgE2}X98QhMutUt{Ez)4<&EElM>c%6(UH7|)w1bHF z7xnS_jCZ9beCCE%s*P$eR+-Y{Qhbd)0%2*<}72_uQb*A<^`WlH1$!V2%v|)|hCt9By1gJJ9!4qc!v@ zPAxR~$mfdHjOLOs^wjZ9!p0>3+jHK(qM1w@8`9?{k)2>pS;6O&F!If*4w`6{z{|`e z|3Z|VXHoX|?_*nsdZ&+cS6(a6{7NRJ5ItNCMvR#X0VRo{&@9;~{_iwO>R$9$Q1 zh;f~x!?anb{492<-et6YTQxxZu;-kF@`;<+I7}PBz>ZD3p}4;Ha_l+=FjTR za-?`Hz%#5&NCgRLoO;DhDQO|tv+A>g<3TAeA(56 z2_2fbnSh&s#g7FTpJ5T6Mw8VRlvW@g;Mn9FHi$VxSvj5mpmQ`QnRs>F%S+TZal%N9bX+138f@YbuvDd@6{a7F9c%HLy{Be?H(o0^wGO~)6I_J4R~!l zwNu>1-evUXB~6Ofr3${Zjosbq4&)p(s2jgob^0t8f)vjiJl`ukZ^`phI;!>VE8j|< zGoYoNPl4V#tE+hc(%|aZ-A?8xZBZZYH7XJ zux+TGLfbv3>nWmFioGt*(HQ^6AkQ#X!o5I;a8yD{=>+70z$#r?tFo*=->Oq{ycnKu ztrf!sfg^mbff0X}0PX({!T9Q%PH{$lM*cc5cYp^O)G4eoqH%#Sxcn6cp!@lQpOoHHVF3HoEdb1(FH;=41mr@g za*GIWc1{D2!2JH=^xy=ZuxCRBb+H@cM%7P$>&d5qg56~uf{Tn>rg1Xr;9qJ11KgNa zJ>2z8{N+Oo=h`d}$+LYSCD@*v6%(-8OPI2*i83B7=QisR z##uy8TNaOcF+|R7tqoy+?j%28asHl&*vCL<0(0Rrl{>&_dxR?O+Y;7^7ozH(eLV~m z>Fl51?2|j+>z3PIw5F0`TI><<+X>icaA#UT#O0?gEaar&JR zl0N+LMsM+;0=Br?VO1F>AhS}6luoT_!Pd$w^eC9gT|X>*&6z4iDU3n%Yj=5qTJCr)O_RiD?7>i872FY}6OKh6*5 z7fT?SZM)@APUM33Ei7yTvxwN3neFBTwaO!7Y#o;&_xyZ{NuyY7bU6W6yV3o{&%0qk zNU{TWEnRQ)papC^EPG?`W>rJ20iqz9?!1!AWrcaROWo(Ix?9;V>dos@WpQkz63QE? zfPh--1End=WwroOzMAS5}FdBzQ za$bs(n!GCVSypjQ8F+BAYAE_FauAuC)xY)=86re!BZ)>Kl>znBYI0x9&|~kevdmw( zv}Be-rkr;!@TSa&zD zk}LngJbr3(A*(|~cvHYWhFE^#*-(JyLMzcw5BBkSM9t~l;FaqMDyVrz_KY&E9k(>& zp-nuMIni@O6Vd^`q#;4vL@2OYwap5ST_18dHO&&5O{HIdt>WVw50c`*`A*m0+cj+l zlaB9`lFLhA>z2YX`E&3@=8VTH13&NH9F^ejNK|`2e5d#C=fvK_3iT&vRW$BRmCS3I zBSgO79j?xaxWct;WqP^d>2B#~y(|V9zt+V`rLqbIF9sAqLxcrC*Uc$>i8!*IhNS$(!MzQl z9r_|TQL0Z0o-h+sw@*n9rb8O?0q7ePn33?E>XF@pKE%Vnh>E<()2N4JEn!8m^Y8D9 zsC_@1*HJmC+&mdAz<$>Z|6-gruZ$!lF5o_rnV*r8j$;Gl?T9uvhasE&D)56?;`r5U zuAYHB@^?;&*Q1iZbZ6nR>{AX4Ed5`DDRB#&8piJso?*1#_tT<-+>o_5*ZzDCZyn%| zWiSM7zLu%*%XI8HtmL8ip28`Ti+s__tb%QR73oE@j#_ewZE9c4%+{U6eGCxdTZqve zRmNkN^Q?K{OB$DGh!(MiU16QahXHO}-|J@g%6w~Aw16!8M z_&U$kFKgE{Y1G#eXC%q(pxlabIEo~h#o>hDXc<8KsI<$yHY=be_vGD!%3C9t`D{N}7>#~?j*E)Pv7*TRz)98*Es%C{*_x20Li*0n!*ljc z@8s}BD`Qh}IQek)v6#UKWM2~{1LnS} z>d;GdSCYjFWP!BGKVB1BWQ zLjW0ub*edgenI%t@rd-Ze#I|E(XO+CxgkFjZG_WL^{HS=;R3TNX)Ze8URh;?)&w$N zrhHF*uGi_Kmw>DfU+{Swx1o6b(E2Z(4KSV3 zm9hSRVUG)6G=SLtqJdGfn?Im@V~74uOR+Y$ufC0W`R$t02Y&s7*3F4nY&9vpYZx{0 z)G4*^dfYpksoF2`qx;r;+fnmI9H^$&6kbc#yp+P1sOyfu-Bq6CEgfC-xpqKICF%X3 z-6hFp!|mJ(C2F2LoVGS_k4>lR`pxtGsqdmDeE+dm^;I{%+rcd{$Lpl&V<9#63uwDv zj{!ZHYW5mmo!ZT8;)OEj^Xf$|OUyS@3m$3oof&>G!Ks@YeIANSr7-VbdpQ`H zRa*!^VQ>mCb_%}RlHo(irSjDb+2ywo{T=>cCi_oPv6q%nGaSpe$~J3wT|vo|^;5Ra z()g8}lc$lY1?9UB zbT9!FoKY~LAPUG%UrVdS7CF+`hw|~K(ygu|4@RMj{r|{ILs5^J<(jQune7KE z2u7M-l+1x%CE&(z4UkVTGHHTofw3A@Z+MA2E z+M;bNU#4JFAj1i&uYaCnVS7sQ9Vp5hBxAa2B~O4qb6y+PlPJ}p&oQ8PtJeLZCvPY0 zaz8<%dJ#tDDut1|yMWR?T+O~P*ID38=574g{BR|pXE6wZfci!BsyyMPd|Y}S*9ecE zmhtKnq{JVlr`j1-vSM1navCzFP73Bw3i9zt4e%n2vpR)NN7Z^rq;M2>v9vss(4<%@ z*r(-lk%%H!zp9LE@Uf|nX70k=w$yx90qD#Brt|+78rA>fXTW4WddWU{ zfJ38}Xuhnzc=zoqKGyXvBgV)zc5Q2;u0ENkMl71MiGqe6aF$kEo#|iZ=kI7fuq2~G z#w-H$9;k{}lsAk78++vxY{i-!xlm?&$*_mRJFe~tGhG5N#lK|9d_G(sU=&XB2h4jD zL|DkjRstqiLpc|f+ksXde;VU}EQKemjX&e5u5a=c&jdjl7&vF%pTCg&IwALFbLo*6 zMUl+BfC)YLCynkqXg(a{ zu$2Z+Ay3fG!RC(vL2+(?;fRv@8AP|9)EQbh-#5nxwKnpU&8f12ELSJr{pE-r5^Rv; zF2eW=w-u+HZ;bet4iOh>Fb~IY$VCH1L-h_;Z%8cKVj4@rMF7j;+j2lW^&gy3>W4Z|3cn zvC&To`y;PMf91KXNMiy1YB2gn00Y^9dNYl;a=t<1sfJ0>MsJ>tjkB4+oAu)p-4t7K zRv&eU=P?H)zw`D_-3eV3wZ0CdbL2Xalo=N0=ShpZ3g=z!OHL=&PU0>gvgX1g+Y z8ZxY`**V2Wz`17I_Z&8eL^%6yK#a~a&HJ2MA;EN+DMi+Ae05vu^dY5k0oei6Y8=2$ z!&8J871zB#*L`^tUt4KV3=#y?>7wK4;^GV_Tvv7rg=%-v@s zSoDrufWj;<*{~wlqtr>wGaguXZ>aWa*6@0KxN&DpHaBf}(fzLZdB_zDjXAfoGW@IE z%d|pURcot_%>sc+5Yn2x<>(Y8A%Y<^jW!Ls0lT1zd^OKE%wcB?MWL*)v zPs}bxmOR0^Gx6OKLIUg0r#AjXzV_k+br|QmO2S|X>eyJJ7aM#FIr<-T&E8)ttwuXQ5bHcXaoSYfwzF3|31`I)NgFWeZw}u zW#mjoWN%~=hsMp1+l!mJ$RDeS=aPnIjEc~|z~5c)=K=y%8tU4Qu0T=RM!!W2hdY18 zw|cN;7tapf?tix}9l2fPJ}k7gwsn8zgZ!8^QqOj3@gB6{xDW^_1>E(6e|eN)C*-Vu z>FzuKE(7)_n4aSQZMT2MxWY)~iK7`a5#vtjDHtHVS=up|b{SaU+zKWGRIC6nz=BRz zGTWw!{7cs`_CK-F^;2gXSrm+^4~8y>{Zx`ZYf^`8aK!M>&R;@dieJ36+zKdb-xo+)lAV&MUYcsKJNYXt$3ZyoJ(C1Si$mp*h?}?p(|3Oy{^>{hqL7owNZwMJnZn`SLHy8s%h;Eug?(9k`1y>q%56R1!NS2F zC9DDrg(9d%MNU;tjna)iABP7Y{2rHiIQ3kjW;3d^u*oVaT~MT^TeDA3$vZ-zO!P~g z5D_4NzoC3w7>~-<^B}1{!q&Eo%6cJ~^(c>OGp~#p{!$sz@g}GqCF+#>vu8V;F-2I2NWRmq|-8 z9&TO>8INqbeYkTDq>ZOV6I6opqN9yFI;3s^!uk zDRxr=M;OvGFh#OuZoBtL(3Y6RZtghbm=+622vBit-5s^^eV$xDN4Lvocdp(TMI7CU zBsvyOe(xzMZHYK>EQWrKYfDs?fzE1MLT8NR$h%vENb>oqg#f<| zC&HYPkGxCieR9@0)eS_e-fx}C$Jt%N0LzN*P&Lc< zXsKj;2k_n^vO4e|p)91(@D>#%a5huU*lM_W!l;l+iCP+28)A-{3r;16MXqsvYyoEw-w8+9C0 z<)bV2-dLSW@kz>4cxU^98K(c<>g&xo8GPeh67O(3Vs^C?b`dilKY?cvF>S<==R#!< z1MR2o*WpH$@E4Us#<4e(N&=hbHWd3X8pkIgJ%1${(w_SSY~)Ip@BT|Cs3nL>c}}TX zVCSQl!g-oU5XwTAk3jX!lM8h%`l+sMNTa*0Zb;XDwj~AKy^CIU=UU8*=}0JmOC%V| zZ!j|%TVvsPib)DzHbXY-#RY+1!NS#i+NaV3{fRz7UKl|uR4kAUfr)gXGWs|v?^IrH zcJD9Ixml??^*Wi+-1MsO(5sk-k6xN8$96{o3HI#ahNSLxOVv>HO$zAgxJ$FGWE^(e z$bzIiTPR#vs=NthuWlEvbVbM{O?QbZJejrpy07YLf0AlzenJNxaB_qI5`x~qPT&88 z=9c~K0%q2UhfS-Vp;=h0Ymn)Ead^SjFf2{|ooA9|2`h93 zU}2yoEl{+dKh)c+ z0RIj;rlG!w`Ji=U*b5MAv33`r5})~J*l5W35U(CAB|gH%1Wds(>1;dUSHH*nYBAzj zeTVijQE2sduGmd2Zv+Xf+|_xQ8||$XPwI|70L}<#yVa1~7B)lhWo_(U*Gb!gEMoU{ zytbb7b5W@q3g1Nk0fJ(=((rI!p#$|rPp@gS+kg1!gS5Uzb4-$9=L6g*EsKD%hc=GB z&_bG~frHIAXxt-9jdgWo7H_Rv!^r$P8(q?R58soT4`L1Vy2;!2&9RTfl^a``vw*`h z2tG^km_H5!IQe!|2jn92AU9>iBDot{Kejt*Wd+}2>DAo7ySEfc>(X(Ya#?XmS@i(1 zm)FLTP7}|J?$xFl(F9MYlf5<5?L)bw$e{kzSkkEzD2yTkN`fOfz2G&C03SQ8toP%&d!>0eUwrf zubnuydIz_75IwsPnbf*H$QTW9!rDh)LgKEjtDvQ7f3J)lta+98Ss=fT%r5ip_@h!e zEfS=69fy`9EPmW(iDbGMiiS{}$e4~ScA#UNyXuHm9HZ)IvQh38^_>T<0-turv9QGG zD+DJecTFPmRlDTh5$7&L`R`3$1L|lI^bMyu1~76kOiO}HFR+aZ!kwQu$o03)p51uX z?IA(?L~dIlNNLo*jnozVb}6P|+Yq7yay1;xWBEI9PBe~jBJy3s^w*G$$*cDU@xwR{ zQVLZP%%LUSX)715C9^KVg^lB(e0)qs6gP~$BJIR4u|{5kRTxj5cfAEy!_ahgtCP@-}*>c>p7o>`t4e5E5 ze+u208A`kL8hNLUiUn;QpLqg0@=i~wt_d4Fgch~8gO1p+Jj6xiPtVTuBj8RBT!wB+ zBV}&)!xaX$P%ob`iGQI}fJXy$$+iV)q!YtguEC#A)h6-g6HiaMN4IN0FpfX{#nYA= z5Cv%;oX_6KfLT(!;eQ0H9w(Y9g^pm4l4U(sFyboh&@>FL zS%8No3kEp|x@d<}~~OWbUqAjyR{ z>&eD@&}-@Rgl(-mv6#8<);lRmPZ`s3RC%PE+4=lScMd#Z41)j;(Y~cX!LMkbeq{+T zTflH``WbZ~>6{x?KZ+;FU4ao$u>)`$rp4#O5~HP}5bu|!;*ZVF8Qd+^QaUR@3sF^v zJXwu8pqeD3u!A{XgKL%mWVF(fV6|y%3|BUV3B5Z)#{{j2S|c)Y3Nk%RgVV}rq`b|rh8 zEqD@07WP7^QBxCbNv+sjLx($}rN5CCXE642=CJaZU&&@NaL>fRG!#h~AhrJC{-Thn z$G>SQ8lk*@yp@&j?8nztdCkJcI=!lp;?S0CIoh)=?tuzbhhztw#!2*79+?t-uj^&% zGX4e)NF5Hv^PWTjpgZ3GROtWf>*cuI)AYi=yU)7hKQaBd*&xUsedLZxI5kL9f}Cj- zrHRTCwQnAZ#m>hn&Nj*k>XRr?@^9W-AHJ!5xdZM~-g}Afh{K|XXF*>KmVS&_{eWr* z|EP_y7(BgxNBQp@znid_bmhgzriP&HIoi1`yZWndL?tDv4)GCG;{pn(UG-$Ps>s4g zO*hfycw(ZijtPmdqj!cHlCe@|QDbt97+60h_2mA9uz6p_ z54EL55$Lo}1%~L;`JZSqPSTgz>j0v?Srh0J*a>RgDuor!&(_D?l3$fJTBJVX)TiU> zy<0grqYdc#y7~sAvN*Be^A^-cBUm9wJ6baSz#lt)=s8?jjw~0eP8KVY8d+?F+xp0~ zV1qe2mfO^=x7Y%CXJO0~X5vIUOvEt-!=s@?!ao|O>J&UEp~Mct$P&k)R2`qQj3fW! zNQ&lh!uSyM$2IiM&3ea)J_`aC{_@Pz)}XVNI{1xtjcP)g1O9OONlHqaN?ytxNRoI)Lb9f z`8rx&aOqXqOFro-s|%478CNYu^zT`^2_)Zha%W}(oV4HNgX4#>P0djr_nD8In2(lw z`mbN#=Z=a%uqgU+HHj&Ar>$AujeG{|u*vDq&awjnd8^-M@rzR61sfRl9rPG{q2=lL z%1kt2ZOm0>5%p;8k?yd1M2@lag9pzmibmCM2W&PxR<9rg9)Ta>hLS~f?_b-Wppp-> zU40I(ZpQi%@k&}ZP#=jE`3p!^CzZ_GlvF^n|ItjXE}|={()k-IEzsv!!D%xufAok` zuSDrypiMR$NWi>y$9JJO&S&&rx~kP+s+9+jy8g6b5yL?lgtd&M8w}NSwfJYK>!$Jj z_Drp)xIXfMcVVf8i`PAxtY|3kogtq8u;l~;Q&ib5Je&k3RS{WOy>^kH+PZ4WAQAjN zK$IaxLnY-q94cD#4PsCbQ2-dvhh@7_@k=jVcpur*z1Pn&Kg-j&u&^sY@n~0_RVCSF zMQFU{BPg-n2=p5Vow-YMtyumT5cayx^|_tpJbcB!lHd*gb2`6M$yyQP>q7>00A+x1 zoWxSv#hpTj?CJEde`YpV5!|t#m_@2;+z#veYaCy)f6jD5lAI?N=0aU*d=wLHvP!Nm z5rhv-2+$fY7?gq2-IOc70J<4uxO7Zmrr=#I0{45^0-&4IO0Ks2S z;Bq0=k(5~_8NOIU28YSMCAoqZM9s1K*VgzW97N#lm|WU&aPF_Ef7;no(h5maN8u#C zEe;n8lv|Ew0LW*Xcv7>P>r(ARkV(4Ec#J3}^F$ zMWOTE&qo%?6J1$sb132rYeNxjaD`B_^uNKuJD|6%a0rS;D3Au=!hOZV-`%QdgntnWV5bcZ1D78j47 z&^yfm>^DG57s?oKDE4l#MeQ?sJ+J-OUqF!ZizF98ef^p(E8D_)j@9f1_H+0@@d8~8 z+udJVpScIZ{pamNfM?8QX!~oQ0*I|6vtVh&jHSX?)@(YBFG1jW=-7H=U5tyTdKK$b zFYl_kHob&Uc#rjwxZlakDH&kE%zVG|$o;`p5R4~eVXN_8-9+&?dQ9c7Yn}g^Uy^)M ze%Om^fwQX#=&`Ko@w(H;FchQV#||GfFA$o3NG1xIE*ds)Z1`|lJp?+r$SY(6rt{0g zrV8)02Hs2A|3XUvO&R?!vhq7C$Px3+EJ ze3|Jr?vn7O2;C78u!A({J>60FGL1Xu&jS~!zIT2T1ou+q>3z8>Qhptk>p~~^3XORa z$4b5d1US``ZP(SHSfY#~Q7$6jWl4;>p>G8-#V8QA^3A*Pl~~X{Aw+J157)r*!&CMy zkw1bj&$0mkKR5 zNI%>G>s$&_dG{dyGF`W`yO}8(7FuM3+@xe(+sq;v&UkbPUuz~^#Nl%s=U8hdHH`Bq zP>9l}jkKGoT09{ri_dnXE#r26~Hf8xK219w(V3KH?#_w34?wPfolZu8r3 zDYg%W4mOdOHyVpWiL3e(H^zqYoAkG35r`d@haA`VlYc9!LDYGek2W8vaZHU|^LzG& ze&>3Y$Kc;J@NMbJ{xbx!$JDfHUu0|Zln*Y#t|f&6bqR!~=QyVL8REm)${jUcmr}ZR ztfCHwb3$K^DeI4~xQmX|R@sH$_&oG7h*xV4L$ZR5qCu0C0SGXsl&vbX6uebVBx@D3 zB@AUydkgY^R3#hDs)#2rxCQ^k>2zCOzl5^p=vPZ0<%HO-{!7PAy++9(!$`Md(jvk-Dk!W-jJ6D1k7j;xeA6Ssm{YL1rI>oHC&H z+jD`8>^TMk#jTl{XcU@xje;owVsoAWZF##(m9sGvYH?dzT6N-_tN3e|y$9Dgn_UJr zX3fto$OlbTC4dJH^Bn)F7;e5WoZUTZgP&KzD^v`RU?@_waEkXajVY0M6)lSTdv!f+ z03gy(;-J5={U+VBV!kz{{g%UfqRfucFvtuubRY|%%ZBJ0tWITq;t7V!P4W@Vx=w|- z+6jCS2c^i%PBfljB~L7p%bB248{=>LZqMl6wk08p*kjaD9vIGIlID~MnWwWox5EP~Yg zAX6cuP{OWu*3;w*Oi^#2>wt2_BNWRbZNfwT0liCs{Rg5;)1v4UQWQHT@azag^Tl~k zR@kg?(@2FZ(CG&!^Dm7+W@cL@8l&W9oZ?pq_hegrKmYxzdm-@Kx1xErmKMi5vRjB% ztuMoMFV~Mj=qF-3+ndLkCZxgnE<9%oh;o2 z!TcKOfM#mC@628t!!Ypi9}M5KqMTY*58?Qz8hA2q`9ceNt`#jjvAe6GUgVqx{ni*W zo~zt$K6RF`@|WIw=eLD^drz#B@N#5M;MZ5zI16J_^H1;6vlfbdEy(QmteZEwy}Z0m zbNC4rJd3A^TcU#I+WCel+*B=0csW@a8@}tBM`rPnE6Omesd5?LYm;7|GTF&*&(_Xf4_M2wn5`R)YmYJRSX)&p|Z)0_jXS}F+%RBjwr>6PB=?zpLgwlcMZnl*R zMjXzVn2&p%nHdZ%*EiP;&#pcmQA&3#ceM|_`6Vh)NvT@n*^Yne`LA?lV?h$#Pn*Xb zq8E)9{I}@9URh&$d--q0%U)SUpUcF{LGf|;@q#d#)+@lN(g*ASd9y#(EtqKk7h;DQ zdw42U()xb{lnaM`{0{*?CojKhfPyDp#DC09wkk^BNbI<3pro&&yC>qibja_zF&yVhf0x=j9@fp=?8CN+K6Fc>P!` zbyNKvk;*pD{aGI}uVylS3I7xD?NdLK!FAh)4^ptNt^1GrO6v~ypX}XM=BqqBvp!?8 ztui>^FPUhp5%8)Wbdy#geSN+w{(;BiN3Z6+Zsordr}t?SU|t$4E_>dL(va(j}r@ZI~u=K{0QjPVv+FgqYtp;~anE&9~Xa`?PS?vp=J_$l~jy$hnMwAg=?1XZu zY2j6h;fS2|w2*3TUzK>cgSy3VT0fmT4Y5PnAmcpOr5JisqZMvcg=zb@` zHH8c~1_!s6i3m_z7Mlj52&LLSyouwkscsyqz#3o$i{$J_9>p8jN)vm_i3#ROzaiYt ze;xBI-6>^_!Cr;{Su>1^uP9u*ZyW142g}G5I;+9SIErBBqNJ7a;aY5Ju=dk(d&23$ zbmMX&1#dp=qO`soW?VNkp&RPty7Sm-M!L7SJW)?k_eKomsmHwJb}t!B9DzfHM{tT3 z8%I8ww@FVd9U_!Aw;4N9YE{&L?HSKl?zH8)X&RD1?`^QB!$W9Q1Y)DxsNqW6?pC#N z4JU~D;g4y+)Pz*HEw)%0s*;9oAu}(I*Jy}%RH9B>(=rYRVzQ?&wuCigabT8(S!|Eg zD2L}_vjVpCZyvMGb+hl7RuD~b5C}ze%_sV2#XO_F4m5kNszMH|e$d!JDo_8aGHzy= zXVuC_NYjAaZd~U7Df`gXi_Z%qT4z7uV7pGZmGimnf8}rdm+y23%IOur?eGuif^|(~ z_Zt+7D$@k8a^`~3eMlY zU8L-v(kww1G$be0aINor&!77heN|q}b;s?X(`jQ?yy`cCdV1Ofx%8klnfNy3+(F+J z@R=^o{44@@qcabsZs6ZN<>ch@{b$GgHs~8>aiC_9ayu)$S+&qngh82|!x_(9gW#qt zRl@?bV{eiUtZHH)PG2D6j}64>|F+ImS3cgOm}w?E1fx=$uv)M_;5uK(RcJlE9LtOa zR_=ke4Ea2LUt{$rA7{RK-DTtFdZE7eTI@aHT!r47?USpuzTgM5czN6Pz~xr2LdHEiP2(@RZ5#%;DGK+MUm)ZWb0|Nst#KRv-`8WByP&JqXyW2-oSH~*GYGjjW7K{OUaa;7|N)%i`CB^@QBPmp=~->F z$SL{0$|^FMRaLnyQWjuvRsrCSwQVTxaSDy3v+2EdyKHMGRkSc^yQn4MDgxG97iU~O z#$kf!Y@sHUMHg84Ft2DcFC$O3&%8!uGw|hu#d)7}q8BCKD@K!Fx?p>h?{pE&WgqIl z@!&2wwRp<^6dW#mY0EG`ljLxeOGb9a#cJ^mV;0Y6y+Tznyu1$`m%#$z6fi6D zlX25$IwjMNDbLsUH*+plh2Bi?C}`OzEy0dt2J}jbMvir-H!3YVn{Hw@S0_(PjmQ;= zr4fb&g$2{$LT^%fn`4cnCO?%-O47%_S4$f;n{HU$s~kY+5xd*|!|LAcPy@H+QFw|_ zvVB%0iD|XD_Q~z$$tcRlK3=upPwKkE1?{(GdEWoC?9uP+I9Hn$jb-QUbVHI6J5&$1 zB1+~&Cyd!J_LI?j&r@|FODo8tz!dAl8d^`ww^$E+f5H>HLw+jUy0Rw zRA8+lcEGI_2v&Qy4!gV#7C_&jNZ@!W?wdrB@BoVv^lyS}gj>$0!dlvModv5Nd#e_o zK6B||u*^YU%y_B0r0ABFzY4K?=c~sBRtuW+zjW~?F98HUKY%r0D8D=i2zDaV zD$h`ZK!~WaeAZ_Xk}3G_Bgsghc?BjbXVO*wfgy+hfP_vU&^ousRBcwrci2 zSqRAg!9rMv(Ses%0)W2a%`e!AIcQVvj~VU$tPD{90$LJ6RCQ&zQh*9KS`S4HlXAP2WHVVS&@xg z>x5=jnX=Srp4w`ud$*0U7xyZ;!reFOr&&k`0?)mx{as_5c^plO3Y9(MgwB$+Zdef< zlUHaDu00ez-{c)%8&44mqY_hSm*d&ui_ooT^(dP-NV@hHr%iNPn(nx}RmS5{{hOQt znb7H-nJ&e&Lm82IK!7ATm0D9Kpt7<8TF?44jW-Of#V+ys^4 zR!}>+f)bmY0JALLjmBR%bb0homQuz`CO~}`IXK8%Uc>&005K(bud^Ni3I|0MeU4aWl~tWbSC9*>T0>1?Py|BxD5;P^ONy1 zn4aK_vg5{y<;vMZumbKf>Z8tCq?RxRCov4%hYp=uq5z1P zaS<|N4FJTfu0D-8)4`$V(&@?)ud5FG2)O8@&@z)0xptZirL!PFbtEsVgWR|1Z#Gnr z(xIvbE#}E+39oO!o?b|<^G>!88s}2!bfmw0O$6skReoIzlIcwPLgv0x<8D=&E7~d* zbcyh|SPaMbwao?veu}S#IBiMatc~f2VoC1liDtNPOYB_On|pbcaPQylMn;?2Y6j(7nh)f}r*{Q&KPhu?T>hY-_Q zH9sf5)e6sofwv{0DQ5qX#K{55wckq@$2(pec;hd^{o4n5*v{_him3DQ*L1*OzVpCT%F{$#QgGTvzRJX0?qMT7Q3l4 zmfP5zyx=f_9ufz-KBk=iQaFM zc0(Mm&3E*KY+AmU^#`*sUR}wDK$?;U(*4o9$4i+I^O?!jPY}*`fq@>-kZ0>h28Dz? z`4VxrTaO++3y-{e?!`O0gW{62%VxFNfEXC?AKy9;!XL`f7BROMYG8jEfn(mfd#_?; z_Y62t>gRseBlu_!NSFzEYSH<%|CWo;``^M7UW&XAX^^^GR>`$4;M$U}99u5b(wX0N zF4Xi#fZJbzF-=f31@8;+q2AfOm56-lZoZ5J|{?f6qB*ch9qLc4lYxMSx+L z%mm1Nf6H}!t|rY7uUPnC{~ANo8}}!rad=qkb+$0ts@|H=BlVU3bY-MlCAGM@IoOPe z2C%&TDYE_QqL_iWB&jpD0M1EThzyivzumFk(^p2R1&%E{DwBLldF##U}5; zqmuf-UG`eC{PRv9T3mxU=BzMl1Hl8SfijP;U#aNo9*Xl`aROe@)?C-16c%zTP45pU zr$RSby_bShCJDFI_fao$2Cz7)K_r;7rf~AthqmlReHHwb$QCF<^+}boGfokj_vb5 z%+=s~VvepLIk@|=Mq8IZbFnixr<)h8?vU~pk?dcf*~`O+acf^Q_$4l{qGn{{iPX+R zihbLTdLiJSAth#-fR2Nk>z2-2IznK*eOaqkGEE zaFZM#WN>2X5c{>wi&%Rc2=$x77ZO*vjYPq_x@Cz0(yDJrM)td-s_4k*gURSM--x!c zB!SiocqR>Jt6zSf^~W)yk;oPKL@JN;$Hg9r*DER_zB~j%0B-*tI{bonfFy0m71D7u zRhHpkny3!r4Z3SOmDWF#m+`6@}FSs1}xSR zcPwt{)pRwfaq%#ke_gVx3gh~lZQn&flt424%hdmeTK zd<&((@!!tM&H`gK?6HE`x!79@?|#rGfxzYHJ#=w;^7YbMy?GOA0 zTx<5;R&V#S%=9p5H#D_`Bzd}od?Pbi(&4$nvGG+u!@==B0F*zdUy35Ea-BDEtrz<8=7O!F~VKHx;hwS*f^9<(;tINIoJkJyB0L@P9rAq#RuJ=)q4W%T@?
    i*b2M zc}indR191tO5dPsjd>Kks}U=-D0Sgq%0V$54jV~e15*xxm3uR6SFCG zUTd8Gmdzwq%CtEaeI5b~WnI4GWmlFAwpx19t2aF6lzLT1#@OyyU?x)?8Z8ItB6yiq z4T?SO?@z0~Me*<$BsjHAe{GEJQ7$>Jb95{gWBb_gek>;_ppUF<4n87yf6i zxB>6l^KnDhC061wOQcz}V8h>hfEQar5%6M5gvsN965@yU|Jw4pwgZ9G!${~scK$ykUs*bD@m?FU z{J#cQs~rbQMExtcT8&1wDVQt#`RUXwo4YE;Q(C2v9Pf_nRU_@OE`Ds6!^+WASQkMl zuGu^EN1M<&0Ni&CsFZ5BAr+(1SF78M665_bMmD_0(&4S=O7pk|yv8pCyKn<>9+Z`e zgdFoIg*&JfO^gqH8#Fey&IjtCYoP$R!d`6jNqb;3ThxPHPyUGa*Y1@izo*!CfH^{- z(q)AmJuP^#(aLtyKWcd`9V$H)dg@@h`@oDOg3*h=eXKg3Mi@A(I8ElhtF( z;^3opZ)Ts(cn63!E{m&uLLnQ(74OZW;nhDG??DHrC~4`j6lm3ZbT z55_mpC|ug;Zne%PkFc0gCsXNkKBQ$%S$nx

    @*jLk6h0=HMX!%-3|&0%?UNUV?d+ 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 KF$YM$zWxtUg1t@v diff --git a/zh/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG b/zh/assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG deleted file mode 100644 index ce4de45d151efdf9c78b9b7420c362d7933ebead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24060 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 YJwDvhFBSj$k$}G!A^7jm|1|Ue0Z^AhUjP6A diff --git a/zh/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG b/zh/assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG deleted file mode 100644 index 4f89d1eba8cb401075f9420d73c697b6a30d90ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25238 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 WNM=-^!>@V^#1?|F#WM!pv~*d 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.d(t,{Zo:()=>p,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=c(a),u=r,k=m["".concat(s,".").concat(u)]||m[u]||d[u]||i;return a?n.createElement(k,l(l({ref:t},p),{},{components:a})):n.createElement(k,l({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=a(7462),r=(a(7294),a(4137));const i={sidebar_position:2},l="Securing webGUI connections (SSL)",o={unversionedId:"unraid-os/manual/security/secure-webgui-ssl",id:"unraid-os/manual/security/secure-webgui-ssl",title:"Securing webGUI connections (SSL)",description:"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.",source:"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/secure-webgui-ssl",permalink:"/zh/unraid-os/manual/security/secure-webgui-ssl",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/secure-webgui-ssl.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"Good Practices",permalink:"/zh/unraid-os/manual/security/good-practices"},next:{title:"Data Encryption",permalink:"/zh/unraid-os/manual/security/data-encryption"}},s={},c=[{value:"SSL parameters",id:"ssl-parameters",level:2},{value:"How to access the Unraid server webGUI on your LAN",id:"how-to-access-the-unraid-server-webgui-on-your-lan",level:2},{value:"HTTP-only",id:"http-only",level:3},{value:"HTTPS with self-signed certificate",id:"https-with-self-signed-certificate",level:3},{value:"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable",level:3},{value:"HTTPS with Myunraid.net certificate and with no fallback URL",id:"https-with-myunraidnet-certificate-and-with-no-fallback-url",level:3},{value:"Redirects",id:"redirects",level:2},{value:"Unraid Connect remote access",id:"unraid-connect-remote-access",level:2},{value:"Custom certificates",id:"custom-certificates",level:2},{value:"HTTPS with custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:3}],p={toc:c},m="wrapper";function d(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"securing-webgui-connections-ssl"},"Securing webGUI connections (SSL)"),(0,r.kt)("p",null,"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/remote-access"},"Unraid Connect Remote Access")," using wildcard SSL Certificates provisioned by ",(0,r.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's Encrypt"),"."),(0,r.kt)("h2",{id:"ssl-parameters"},"SSL parameters"),(0,r.kt)("p",null,"When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Parameter"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"servername")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Identification")),". The default value is ",(0,r.kt)("em",{parentName:"td"},"tower"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"localTLD")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"local"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"Use SSL/TLS")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"No"),".")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTP port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),". Default value is ",(0,r.kt)("em",{parentName:"td"},"80"),". If you change this, add ",(0,r.kt)("inlineCode",{parentName:"td"},":[HTTP port]")," to any of the HTTP URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"http://tower.local:8080"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"HTTPS port")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Can be changed in ",(0,r.kt)("strong",{parentName:"td"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),' page. It defaults to "443". If you change this, add ',(0,r.kt)("inlineCode",{parentName:"td"},":[HTTPS port]")," to any of the HTTPS URLs in the scenarios below. (example: ",(0,r.kt)("inlineCode",{parentName:"td"},"https://tower.local:3443"),")")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"certificate")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Refers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"lan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"wan-ip")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("strong",{parentName:"td"},"hash")),(0,r.kt)("td",{parentName:"tr",align:"left"},"This is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued")))),(0,r.kt)("h2",{id:"how-to-access-the-unraid-server-webgui-on-your-lan"},"How to access the Unraid server webGUI on your LAN"),(0,r.kt)("h3",{id:"http-only"},"HTTP-only"),(0,r.kt)("p",null,"With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"No"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution."),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-self-signed-certificate"},"HTTPS with self-signed certificate"),(0,r.kt)("p",null,"With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution"),(0,r.kt)("li",{parentName:"ol"},"Your URLs:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Apply"),".")),(0,r.kt)("admonition",{type:"important"},(0,r.kt)("p",{parentName:"admonition"},"When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-fallback-url-if-dns-is-unavailable"},"HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable"),(0,r.kt)("p",null,"You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down."),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate)."),(0,r.kt)("li",{parentName:"ol"},"Leave ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either ",(0,r.kt)("em",{parentName:"li"},"No")," or ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"No"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your primary URLs when ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),". Note that these URLs use a self-signed certificate.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,r.kt)("li",{parentName:"ol"},"Your alternate URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate and with no fallback URL"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Go to ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access")),"."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"LocalTLD")," should be kept at the default of ",(0,r.kt)("inlineCode",{parentName:"li"},"local")," unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned below)."),(0,r.kt)("li",{parentName:"ol"},"Press ",(0,r.kt)("strong",{parentName:"li"},"Provision"),"."),(0,r.kt)("li",{parentName:"ol"},"If DNS Rebinding is not an issue, the ",(0,r.kt)("em",{parentName:"li"},"Strict")," option for ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," will be available."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Strict")," (or ",(0,r.kt)("em",{parentName:"li"},"Auto")," in earlier versions of Unraid)."),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This URL is shown in the ",(0,r.kt)("strong",{parentName:"li"},"Local access URLs")," field on the ",(0,r.kt)("strong",{parentName:"li"},"Management Access")," page. If you install the optional ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin it will also be shown on the ",(0,r.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"Connect dashboard"),".")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:"),(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]"),"."),(0,r.kt)("li",{parentName:"ul"},"Type ",(0,r.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webGUI via ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," using a self-signed certificate (See ",(0,r.kt)("a",{parentName:"li",href:"#https-with-self-signed-certificate"},"HTTPS with a self-signed certificate")," above)."),(0,r.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," back to ",(0,r.kt)("em",{parentName:"li"},"Strict"),"."))),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"redirects"},"Redirects"),(0,r.kt)("p",null,"When you access ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]"),", the behavior will change depending on the value of the ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Strict"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under ",(0,r.kt)("a",{parentName:"li",href:"#https-with-myunraidnet-certificate-and-with-no-fallback-url"},"HTTPS with Myunraid.net certificate - with no fallback URL")," above."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"Yes"),", you will be redirected to ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," as that will likely work even if your Internet goes down."),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to ",(0,r.kt)("em",{parentName:"li"},"No"),", then the HTTP URL will load directly.")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"unraid-connect-remote-access"},"Unraid Connect remote access"),(0,r.kt)("p",null,"Looking for setup instructions for Unraid Connect remote access? See our ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/remote-access"},"dedicated page"),"."),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"custom-certificates"},"Custom certificates"),(0,r.kt)("h3",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"HTTPS with custom certificate - with option to have Unraid Connect Remote Access"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Navigate to the ",(0,r.kt)("strong",{parentName:"li"},(0,r.kt)("em",{parentName:"strong"},"Settings > Management Access"))," page."),(0,r.kt)("li",{parentName:"ol"},"Set ",(0,r.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to ",(0,r.kt)("em",{parentName:"li"},"Yes"),"."),(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of the certificate.'),(0,r.kt)("li",{parentName:"ol"},"Your URL will be ",(0,r.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS for this URL."),(0,r.kt)("li",{parentName:"ol"},"You are responsible for managing the certificate. Upload it to ",(0,r.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem"),"."),(0,r.kt)("li",{parentName:"ol"},"The certificate must be valid for ",(0,r.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be ",(0,r.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,r.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server\'s URL is not specified in the certificate.'),(0,r.kt)("li",{parentName:"ol"},"As an option, use ",(0,r.kt)("a",{parentName:"li",href:"#unraid-connect-remote-access"},"Unraid Connect Remote Access"),".")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/104dd0b4.18ce3b9a.js b/zh/assets/js/104dd0b4.18ce3b9a.js new file mode 100644 index 000000000..ab0d0fba2 --- /dev/null +++ b/zh/assets/js/104dd0b4.18ce3b9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/zh/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/zh/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/zh/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/getting-started/"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/zh/assets/js/104dd0b4.f0afbec1.js b/zh/assets/js/104dd0b4.f0afbec1.js deleted file mode 100644 index 0b2a16423..000000000 --- a/zh/assets/js/104dd0b4.f0afbec1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4262],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),h=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},d=function(e){var t=h(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(n),c=o,m=u["".concat(l,".").concat(c)]||u[c]||p[c]||i;return n?a.createElement(m,r(r({ref:t},d),{},{components:n})):a.createElement(m,r({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,r[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>h});var a=n(7462),o=(n(7294),n(4137));const i={sidebar_position:9},r="Troubleshooting",s={unversionedId:"unraid-os/manual/troubleshooting",id:"unraid-os/manual/troubleshooting",title:"Troubleshooting",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/troubleshooting.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/troubleshooting",permalink:"/zh/unraid-os/manual/troubleshooting",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/troubleshooting.md",tags:[],version:"current",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"unraidSidebar",previous:{title:"Multi-Language Support",permalink:"/zh/unraid-os/manual/multi-language"},next:{title:"Additional Settings",permalink:"/zh/unraid-os/manual/additional-settings"}},l={},h=[{value:"Capturing Diagnostic Information",id:"capturing-diagnostic-information",level:2},{value:"System Diagnostics",id:"system-diagnostics",level:3},{value:"Persistent Logs (Syslog server)",id:"persistent-logs-syslog-server",level:3},{value:"Mirror to Flash: This is the simplest to set up. You select",id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select",level:4},{value:"Remote Syslog Server: This is used when you have another machine",id:"remote-syslog-server-this-is-used-when-you-have-another-machine",level:4},{value:"Local Syslog Server: Set this to Enabled to setup this",id:"local-syslog-server-set-this-to-enabled-to-setup-this",level:4},{value:"Logging to file local to Unraid server Using a bit of trickery",id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery",level:4},{value:"Docker Containers",id:"docker-containers",level:3},{value:"VMs",id:"vms",level:3},{value:"Boot Issues",id:"boot-issues",level:2},{value:"Preparing the flash drive",id:"preparing-the-flash-drive",level:3},{value:"Enabling UEFI boot",id:"enabling-uefi-boot",level:3},{value:"Boot Process",id:"boot-process",level:3},{value:"Boot Failures",id:"boot-failures",level:3},{value:"Lost root Password",id:"lost-root-password",level:3},{value:"Lost boot drive and do not know which are the parity drives",id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives",level:3},{value:"Backing Up Boot Drive",id:"backing-up-boot-drive",level:3},{value:"Manually Upgrading (or Downgrading) an Unraid release",id:"manually-upgrading-or-downgrading-an-unraid-release",level:3},{value:"Bzimage checksum error/failure reading flash drive",id:"bzimage-checksum-errorfailure-reading-flash-drive",level:3},{value:"Unclean Shutdowns",id:"unclean-shutdowns",level:2},{value:"Crash Issues",id:"crash-issues",level:2},{value:"RAM Issues",id:"ram-issues",level:3},{value:"Over-clocking RAM",id:"over-clocking-ram",level:3},{value:"Windows Connection Issues",id:"windows-connection-issues",level:2},{value:"Name Resolution",id:"name-resolution",level:3},{value:"Stored Credentials",id:"stored-credentials",level:3},{value:"Multiple Sign-ons",id:"multiple-sign-ons",level:3},{value:"Data Recovery",id:"data-recovery",level:2},{value:"Unmountable Disk(s)",id:"unmountable-disks",level:3},{value:"Lost Array Configuration",id:"lost-array-configuration",level:3},{value:"Using ddrescue to recover data from a failing disk",id:"using-ddrescue-to-recover-data-from-a-failing-disk",level:3},{value:"Docker",id:"docker",level:2},{value:"Docker Image Full",id:"docker-image-full",level:3},{value:"How do I move docker.img?",id:"how-do-i-move-dockerimg",level:3},{value:"How do I recreate docker.img?",id:"how-do-i-recreate-dockerimg",level:3},{value:"Restoring your Docker Applications",id:"restoring-your-docker-applications",level:3},{value:"Further Information",id:"further-information",level:3},{value:"UDMA CRC Errors",id:"udma-crc-errors",level:2},{value:"Cache/Pool issues",id:"cachepool-issues",level:2},{value:"Mover is not moving files",id:"mover-is-not-moving-files",level:3}],d={toc:h},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"troubleshooting"},"Troubleshooting"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"More detail still needs to be added")),(0,o.kt)("p",null,"Most of the time Unraid systems function with minimal problems. This\nsection is intended to help with resolving issues that are most commonly\nencountered."),(0,o.kt)("p",null,"There are some important general guidelines that it is recommended that\na user follows that will help with any troubleshooting that may be\nrequired:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the built-in Help"),": The Unraid GUI has extensive built-in\nHelp for most fields in the GUI. This can be accessed at the\nindividual field level by clicking on the field name, or toggled\non/off for the whole page by clicking on the\n",(0,o.kt)("img",{alt:"Help",src:n(8699).Z,width:"16",height:"15"})," icon at the top right of the GUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Use the online documentation"),": There is extensive online\ndocumentation that can be accessed via the ",(0,o.kt)("strong",{parentName:"li"},"Manual")," link at the\nbottom of the Unraid webGUI."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Enable Notifications"),": Unraid has a notification system that can\nbe used to keep you informed about the health of your Unraid system.\nThis can be enabled and the level of notifications you receive tuned\nunder Settings-",">","User Preferences-",">","Notification Settings. Since\nUnraid systems often function for very long times without needing\nany user oversight it can be important that you are informed of\nproblems when they first occur as if left unresolved they can grow\ninto more serious ones."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Proactively fix any reported issues"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for help in the forums"),": Unraid has a vibrant user community\nand many knowledgeable users who are active in the Unraid forums.\nAny time you encounter a problem and you are not sure how to proceed\nit is a good idea to ask questions in the forums. There is nothing\nworse than rushing into trying to fix a problem using a process you\ndo not understand and as a result making a problem that was\ninitially easy to resolve into something more serious"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Capture diagnostics"),": If you want to ask a question in the forums\nabout a problem you are encountering you are frequently going to be\nasked to provide your system diagnostics file. You need to do so\nBEFORE YOU REBOOT so that the logs show went wrong BEFORE the reboot\n(because once you reboot, it's lost)!")),(0,o.kt)("h2",{id:"capturing-diagnostic-information"},"Capturing Diagnostic Information"),(0,o.kt)("p",null,"When you encounter any sort of problem it is always recommended that you\nattempt to capture as much information as possible to help with\npinpointing the cause. If you want to ask questions in the forum such\ninformation will typically be requested as it will speed up the process\nof getting meaningful and accurate feedback."),(0,o.kt)("h3",{id:"system-diagnostics"},"System Diagnostics"),(0,o.kt)("p",null,"Unraid has a GUI option under ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Tools-",">","Diagnostics"))," to capture a lot\nof information about the state of your system that can be helpful when\ntrying to diagnose any issues. Using this tool will result in a zip file\nbeing produced that can be downloaded and then attached to forum posts."),(0,o.kt)("p",null,"If the GUI cannot be accessed, then use SSH, telnet, or a keyboard/monitor attached to the server\nto login and type ",(0,o.kt)("inlineCode",{parentName:"p"},"diagnostics"),'. This will save the diagnostics.zip file to the "logs" folder on your flash drive.'),(0,o.kt)("p",null,"The Diagnostics should if at all possible cover the period when the\nproblem occurred and be captured BEFORE you reboot (logs are reset on a\nreboot) so that the logs show what happened leading up to the problem\noccurring. The zip file produced can then be attached to a forum post\nwhen asking for help on a problem in the Unraid forums. It is preferred\nthat you attach them to a new post if you have already started a thread\non your issue so that other forum users are notified that there has been\nsomething added to the thread."),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(2791).Z,width:"1679",height:"847"})),(0,o.kt)("p",null,"These system diagnostics include configuration information, state\ninformation, and key system logs. When creating the diagnostics from the\nGUI then details of the sort of information that will be included are\nlisted. There is an option (set by default) to say that the diagnostics\nshould be anonymized to try and avoid including any information that\nmight be deemed sensitive."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"All the files in the diagnostics are text files so a user is free to\nexamine them to check for themselves exactly what information is\npresent"),".")),(0,o.kt)("p",null,"In most cases it is preferable that the diagnostics are captured after\nthe array has been started in Normal mode as this gives the maximum\ninformation about the state of your Unraid system, in particular if any\ndrives are having any problems. There will be times, however, when this\nis not possible, or you will be advised to capture the diagnostics in a\ndifferent state as a result of feedback in a forum thread. It is still\nbetter to have some level of diagnostics rather than nothing."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," The diagnostics are a single zip file containing multiple\nfiles. If it seems to you that the diagnostics is a lot of files and\nfolders, it is because your computer automatically opens zip files. Do\nnot upload all those files individually to a forum post but instead find\nthat single diagnostics zip file in your downloads and attach that\nsingle diagnostics zip file to your NEXT post in the relevant forum\nthread."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Note on anonymization of the diagnostics"))),(0,o.kt)("p",null,"It has been pointed out that the diagnostics are not completely\nanonymized if you have enabled ",(0,o.kt)("em",{parentName:"p"},"mover")," logging under ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Mover\nSettings")," as the ",(0,o.kt)("em",{parentName:"p"},"syslog")," will give details of files that mover is\noperating on. This is a bit of a catch-22 scenario as when one has\nenabled mover logging it is normally to investigate a problem where as\nmuch detail as possible is captured so attempting to anonymize such\ninformation may well be counter-productive. Since mover logging is\ndisabled by default and recommended practice is to only have it enabled\nwhen investigating why mover is not giving the expected results this is\nprobably acceptable."),(0,o.kt)("h3",{id:"persistent-logs-syslog-server"},"Persistent Logs (Syslog server)"),(0,o.kt)("p",null,"The main system log is the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"syslog"))," file and it is the contents of\nthis file that is displayed when you click the ",(0,o.kt)("img",{src:n(1001).Z,width:"16",height:"16"})," icon at\nthe top right of the Unraid GUI. Note that when posting to the forums\nextracted fragments of the syslog are rarely helpful as they do not show\nwhat lead up to a problem occurring."),(0,o.kt)("p",null,"Normally the logs are only written to RAM so do not survive the system\nbeing rebooted. If you are investigating a system crash then as long as\nyou are running Unraid 6.7.2 or later there is built-in syslog server\nsupport"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(8949).Z,width:"1100",height:"285"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Go to ",(0,o.kt)("em",{parentName:"p"},"Settings-",">","Network Services-",">","Syslog Server"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"You can click on the 'Help' icon on the Toolbar and get more\ninformation for all of the options."))),(0,o.kt)("h4",{id:"mirror-to-flash-this-is-the-simplest-to-set-up-you-select"},(0,o.kt)("strong",{parentName:"h4"},"Mirror to Flash"),": This is the simplest to set up. You select"),(0,o.kt)("p",null," 'Yes' from the dropdown box and click on the 'Apply' button and\nthe syslog will be mirrored to the logs folder/directory of the\nflash drive and is appended to on a reboot. There is one principal\ndisadvantage to this method. If the condition, that you are trying\nto troubleshoot, takes days to weeks to occur, it can do a lot of\nwrites to the flash drive. Some folks are hesitant to use the flash\ndrive in this manner as it may shorten the life of the flash drive."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The advantage of this approach is that it captures everything from\nthe start of the boot process which can be important if trying to\ndiagnose boot problems.")),(0,o.kt)("h4",{id:"remote-syslog-server-this-is-used-when-you-have-another-machine"},(0,o.kt)("strong",{parentName:"h4"},"Remote Syslog Server"),": This is used when you have another machine"),(0,o.kt)("p",null," on your network that is acting as a syslog server. This can be\nanother Unraid server. You can also use virtually any other\ncomputer. You find the necessary software by googling for the syslog\nserver of that computer's operating system. After you have set up the\ncomputer/server, you fill in the computer/server name or the IP\naddress. (I prefer to use the IP address as there is never any\nconfusion about what it is.) Then click on the 'Apply' button and\nyour syslog will be mirrored to the other computer."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The other computer has to be left on continuously until the problem\noccurs."),(0,o.kt)("li",{parentName:"ul"},"The events captured will only start with the point at which the\nsyslog daemon is started during the boot process thus missing the\nvery start of the boot process.")),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7397).Z,width:"867",height:"275"})),(0,o.kt)("h4",{id:"local-syslog-server-set-this-to-enabled-to-setup-this"},(0,o.kt)("strong",{parentName:"h4"},"Local Syslog Server"),": Set this to ",(0,o.kt)("strong",{parentName:"h4"},"Enabled")," to setup this"),(0,o.kt)("p",null," Unraid server to act as a network syslog server. When this is\nenabled then some extra options are offered. The built-in Help gives\nguidance /n suitable settings."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog folder"),": This will be a share on your server but\nchose it with care. Ideally, it will be a 'cache only' or a\n'cache preferred' share. This will minimize the spinning up of\ndisks due to the continuous writing of new lines to the syslog.\nA cache SSD drive would be the ideal choice here using a ",(0,o.kt)("em",{parentName:"p"},"cache\npreferred")," share. The syslog will be in the root of that\nfolder/share.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Local syslog rotation"),": These settings allow you to control\nhow much space the syslog is allowed to use."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog maximum file size"),":"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Local syslog number of files"),":"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If you click the 'Apply button at this point, you will have this\nserver setup to serve as a Remote Syslog Server. It can now capture\nsyslogs from several computers if the need should arise."))),(0,o.kt)("h4",{id:"logging-to-file-local-to-unraid-server-using-a-bit-of-trickery"},(0,o.kt)("strong",{parentName:"h4"},"Logging to file local to Unraid server")," Using a bit of trickery"),(0,o.kt)("p",null," we can use the Unraid server with the problem as the Local syslog\nserver. This is appropriate if you want to continue to keep a\npermanent copy of the syslog but the file will not be as easy to\naccess if the Unraid system is crashing. It also has the advantage\nof avoiding lots of writes to the flash drive. To achieve this you\nnow add the IP address of this server as the Remote syslog server\n(Remember the mention of trickery). So basically, you send data\nout-of-the-server and it comes-right-back-in."),(0,o.kt)("p",null,"Notes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The standard system diagnostics include the RAM copy of the ",(0,o.kt)("em",{parentName:"li"},"syslog"),"\nso there is no need to provide this separately. You ",(0,o.kt)("strong",{parentName:"li"},"will")," need to\ndo so to provide the logs captured by the syslog server as these are\nnot included in the standard system diagnostics.")),(0,o.kt)("h3",{id:"docker-containers"},"Docker Containers"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific docker containers."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h3",{id:"vms"},"VMs"),(0,o.kt)("p",null,"The standard system diagnostics do not contain much that will help with\ndiagnosing issues with specific VMs."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"MORE DETAIL NEEDED")),(0,o.kt)("h2",{id:"boot-issues"},"Boot Issues"),(0,o.kt)("h3",{id:"preparing-the-flash-drive"},"Preparing the flash drive"),(0,o.kt)("p",null,"This is covered under the ",(0,o.kt)("a",{parentName:"p",href:"getting-started.md"},"Getting\nStarted")," section of the\ndocumentation."),(0,o.kt)("p",null,"If for any reason you decide that you need to redo the flash drive then\nit is a good idea to make sure you first backup the current flash drive\n(or have a recent backup) as all user specific settings (including the\nlicence key) are held in the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder on the flash drive.\nCopying the ",(0,o.kt)("strong",{parentName:"p"},"config")," folder (and all its contents) back to the flash\ndrive after redoing it will preserve all current settings."),(0,o.kt)("h3",{id:"enabling-uefi-boot"},"Enabling UEFI boot"),(0,o.kt)("p",null,"You get asked if you want UEFI mode boot support when using initially\ncreating the flash drive. However it is always possible to enable UEFI\nmode booting at a later stage by renaming the folder on the flash drive\ncalled ",(0,o.kt)("strong",{parentName:"p"},"efi","~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the trailing ",(0,o.kt)("strong",{parentName:"p"},"~"),"\ncharacter)."),(0,o.kt)("h3",{id:"boot-process"},"Boot Process"),(0,o.kt)("p",null,"Most of the time the Unraid boot process runs seamlessly and the user\nneeds no awareness of the various stages involved. However, when things\ngo wrong it can be useful to know how far the boot process managed to\nget as this will be of use in knowing what remedial action to take."),(0,o.kt)("p",null,"Resolving boot issues will typically need either a locally attached\nmonitor+keyboard or (if the motherboard supports it) an IPMI connection\nto carry out equivalent functionality. This can then be used to set any\nrequired BIOS stings and to monitor the booting process."),(0,o.kt)("p",null,"The boot process for Unraid proceeds through a number of stages"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Bios boot"),": This is the stage at which the motherboard BIOS\nrecognizes the presence of the Unraid bootable flash drive"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The way that the Unraid flash drive is set as the default boot\ndevice is BIOS dependent so you may need to consult your\nmotherboard's User Manual to determine the correct way to do\nthis."),(0,o.kt)("li",{parentName:"ul"},"The Unraid flash drive supports booting in Legacy mode (also\nsometimes known as CSM mode) for older BiOS's and UEFI for more\nrecent ones. Many recent BIOS's support both modes."),(0,o.kt)("li",{parentName:"ul"},"If you want UEFI boot mode to be used then the EFI folder on the\nflash drive must not have trailing tilde (","~",") character."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Syslinux loader")),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Boot Menu",src:n(7463).Z,width:"479",height:"288"})),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The entries that appear on the boot menu are specified by the\n",(0,o.kt)("em",{parentName:"li"},"syslinux/syslinux.cfg")," file on the flash drive. Although in\ntheory this file can be edited manually as it a text file it is\nrecommended that it is done via the GUI by clicking on the flash\ndrive on the ",(0,o.kt)("em",{parentName:"li"},"Main")," tab and going to the ",(0,o.kt)("em",{parentName:"li"},"Syslinux\nconfiguration")," section"),(0,o.kt)("li",{parentName:"ul"},"The Memtest86+ option only works if booting in Legacy mode. If\nbooting in UEFI mode it will typically simply cause a reboot. If\nyou want a version that will work in UEFI boot mode then you\nneed to download it for yourself from either\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest.org/"},"www.memtest.org")," or\n",(0,o.kt)("a",{parentName:"li",href:"https://www.memtest86.com/"},"www.memtest86.com")),(0,o.kt)("li",{parentName:"ul"},"If the user does not select a specific option then after a\ntimeout period the default option will be used. If Unraid is\nrunning in headless mode this is the option that will be run."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Linux core"),": This is the stage at which the ",(0,o.kt)("em",{parentName:"p"},"syslinux")," boot\nloader takes over from the BIOS and starts loading the files\nspecified in the ",(0,o.kt)("em",{parentName:"p"},"syslinux.cfg")," file."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This is when the core Linux system is loaded from the flash\ndrive and unpacked into RAM."),(0,o.kt)("li",{parentName:"ul"},"There will be messages on the console about the various bz","*","\ntypes being loaded into RAM."),(0,o.kt)("li",{parentName:"ul"},"If there are any error messages displayed while loading these\nfiles then it normally indicates a problem with the flash drive."),(0,o.kt)("li",{parentName:"ul"},"There will then be messages displayed as Linux starts up and\ndetects the hardware environment."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Flash dependent services"),": At this stage, the flash drive is\nmounted at ",(0,o.kt)("em",{parentName:"p"},"/boot")," so that the process can continue"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If the mount of the flash fails it is still possible to get the\nlogin prompt displayed. However, this does not necessarily mean\nthe whole boot process completed correctly.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"If this stage of the boot process has not completed then typical\nsymptoms are that the webGUI and network are not started")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One way to see if this has happened is to login and use the\n",(0,o.kt)("strong",{parentName:"p"},"df")," command. If the flash drive was mounted successfully then\nyou will see it as /boot in the resulting list of mount points."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The output should have something like following mount points:"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"/dev/sdb1 15413232 826976 14586256 6% /boot"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop0 9344 9344 0 100% /lib/modules"),"\\\n",(0,o.kt)("inlineCode",{parentName:"li"},"/dev/loop1 7424 7424 0 100% /lib/firmware")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"One reason the flash drive may fail to mount is that it is not\nlabelled as ",(0,o.kt)("strong",{parentName:"p"},"UNRAID")," (all capitals).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Additional drivers and firmware are now available on the above\nmount points.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Configuration information is read into RAM from the flash drive.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Standard Linux services are started. Examples would be\nnetworking and (if enabled) WireGuard VPN.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Plugins")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If the user has installed plugins then they are normally loaded\nat this stage."),(0,o.kt)("li",{parentName:"ul"},"If one of the Safe Boot options was selected from the Unraid\nBoot menu then the loading of plugins is suppressed."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Web GUI")),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid web GUI is started."),(0,o.kt)("li",{parentName:"ul"},"The webGUI is actually done via an entry in the ",(0,o.kt)("em",{parentName:"li"},"config/go")," file\non the flash drive so it is possible for user-supplied commands\nto also be run from there either before starting the webGUI or\njust after doing so."))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Array")),(0,o.kt)("p",{parentName:"li"},"If the user has set the array to be auto-mounted then the\nfollowing will start. If array auto-start is not set then they\nhappen when the user elects to start the array."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Drives mounted")),(0,o.kt)("p",{parentName:"li"},"Mount points will now be created of the form ",(0,o.kt)("em",{parentName:"p"},"/dev/diskX")," and\n",(0,o.kt)("em",{parentName:"p"},"/mnt/cache")," (if you have a cache).")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"File Share Services")),(0,o.kt)("p",{parentName:"li"},"Shares will now become available on the network."),(0,o.kt)("p",{parentName:"li"},"At the Linux level the shares will now appear as paths like\n",(0,o.kt)("em",{parentName:"p"},"/mnt/user/sharename"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"Docker Containers")),(0,o.kt)("p",{parentName:"li"},"If the user has enabled the docker services then the Docker\ncontainers will be started using the order on the Docker tab."),(0,o.kt)("p",{parentName:"li"},"The order of the containers and delays between starting the\ncontainers can be set on the Docker tab.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("strong",{parentName:"p"},"VMs")),(0,o.kt)("p",{parentName:"li"},"Any VMs the user has set to auto-start will now be started"))))),(0,o.kt)("p",null,"By this stage, the Unraid server will be fully operational."),(0,o.kt)("h3",{id:"boot-failures"},"Boot Failures"),(0,o.kt)("p",null,"The following are some actions that can be taken to try and pin down the\ncause of a boot failure:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("strong",{parentName:"li"},"if possible use a USB2 port in preference to a USB3 one as they\nseem to be more reliable for booting purposes. In addition USB2\ndrives also seem less prone to failure than USB3 ones. Many modern\nmotherboards no longer have USB2 ports directly exposed but there is\nnormally a USB2 header on the motherboard that can be used via an\nappropriate adapter."),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"USB3 ",(0,o.kt)("strong",{parentName:"li"},"does")," work with no problems for many people"),(0,o.kt)("li",{parentName:"ul"},"After initial load Unraid runs from RAM so gains no significant\nperformance advantage from using USB3."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives tend to run cooler than USB3 ones which probably\nexplains why they tend to last longer."),(0,o.kt)("li",{parentName:"ul"},"USB2 drives are typically cheaper than USB3 ones- so why pay\nmore if not needed"))),(0,o.kt)("li",{parentName:"ol"},"Check that the BIOS on the Unraid server still has the flash drive\nset as the boot device. It has been known to get reset for no obvious\nreason."),(0,o.kt)("li",{parentName:"ol"},"On a windows 10 PC or a Mac run a check on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if something is wrong physically or\nlogically with the flash drive"),(0,o.kt)("li",{parentName:"ul"},"If you do not already have one make sure you have a copy of the\nconfig folder of the flash drive as this contains all your\ncurrent configuration information."))),(0,o.kt)("li",{parentName:"ol"},"Download the zip version of the release from Limetech and extract\nall the bz","*"," type files over-writing those on the flash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This will determine if these files were not written correctly\nfor some reason or are corrupt."))),(0,o.kt)("li",{parentName:"ol"},"Rewrite the flash drive with a clean copy of Unraid and copy across\njust the key file from your backup to the config folder",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if the flash drive itself is OK"),(0,o.kt)("li",{parentName:"ul"},"Copy across the remaining contents of the config folder to the\nflash drive",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this goes well you are back up and running with your\nprevious configuration intact."),(0,o.kt)("li",{parentName:"ul"},"If this fails then try booting in Safe Mode. If this works\nthen a plugin is causing problems"))))),(0,o.kt)("li",{parentName:"ol"},"If the original flash drive cannot be made to boot try a brand new\nflash drive and clean copy of Unraid (with the default configs)",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"This can determine if something is wrong with the server's\nhardware (mobo, cpu, ram, usb port, etc.)"))),(0,o.kt)("li",{parentName:"ol"},"Install a clean/new copy of Unraid on a new flash drive and then\ncopy the ",(0,o.kt)("em",{parentName:"li"},"config")," folder over from the old one.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If this works then the licence will need to be transferred to\nthis new flash drive.")))),(0,o.kt)("h3",{id:"lost-root-password"},"Lost root Password"),(0,o.kt)("p",null,"Occasionally users lose their password for managing Unraid via the\nUnraid webGUI or console. This may be that they simply forgot the\npassword, but corruption of the flash drive can also result in the\npassword not being recognized."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Passwords for shares can be changed/reset from the Unraid webGUI.")),(0,o.kt)("p",null,"To reset the management password use the following process:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Shutdown server and then plug the USB boot flash device into a PC or\nMac")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"While there it is a good idea to run a check on the flash drive and\nmake a backup of its contents")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Delete these files:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"config/passwd"),(0,o.kt)("li",{parentName:"ul"},"config/shadow"),(0,o.kt)("li",{parentName:"ul"},"config/smbpasswd"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the flash back into the server and start up again."))),(0,o.kt)("p",null,"Note that this will reset ",(0,o.kt)("strong",{parentName:"p"},"all")," user passwords including 'root' user\nto null (blank)."),(0,o.kt)("p",null,"There is an alternative procedure that can be used for just resetting\nthe root password (but is a little more prone to error):"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug the USB drive into another computer")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Bing up an editor (such as Notepad++) on the following file:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"/boot/config/shadow"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the first line you should see something such as:"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root:\\$&\\$&%\\*1112233484847648DHD\\$%.:15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Change that line to the following (essentially delete the content\nbetween the first and second colons):"),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"root::15477:0:99999:7:::"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Plug flash back into server and start up again."))),(0,o.kt)("h3",{id:"lost-boot-drive-and-do-not-know-which-are-the-parity-drives"},"Lost boot drive and do not know which are the parity drives"),(0,o.kt)("p",null,"Occasionally users get the scenario where they have the following\ncombination of circumstances:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Unraid boot drive has failed"),(0,o.kt)("li",{parentName:"ul"},"There is no recent backup of the boot drive that can be used to\nrestore the drive configuration"),(0,o.kt)("li",{parentName:"ul"},"There is uncertainty about which drives are the parity drives.")),(0,o.kt)("p",null,"The issue is how to get the Unraid system operational again on a new\nboot drive without data loss. You can exploit the fact that Unraid will\nrecognise any data disk previously used by Unraid as containing a valid\nfile system compatible with Unraid, and that the parity drives do not\ncontain a valid file system"),(0,o.kt)("p",null,"The basic approach is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Create a new Unraid boot drive."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server off this new drive. At this point no drives\nwill be assigned."),(0,o.kt)("li",{parentName:"ul"},"Get the new drive licenced. This can be using either a trial licence\nor by following the procedure for transferring an existing licence\nto a new boot drive."),(0,o.kt)("li",{parentName:"ul"},"Identify which drives are the parity drives. There are 2 ways to do\nthis as shown below."),(0,o.kt)("li",{parentName:"ul"},"Use ",(0,o.kt)("em",{parentName:"li"},"Tools -",">"," New Config")," to reset the array. It is normally\neasiest to use the option to retain previous assignments but this is\nnot mandatory."),(0,o.kt)("li",{parentName:"ul"},"Return to the main tab and now that you know which are the array\ndisks and which are the parity disk(s) correct the assignments to\nreflect this. You can (optionally) re-order the data drives at this\npoint but be aware this will always invalidate parity2"),(0,o.kt)("li",{parentName:"ul"},'Start the array to commit the drive assignments. If you have used an\napproach that has not invalidated parity you can now tick the\n"Parity is Already Valid" checkbox to avoid rebuilding parity. If\nin doubt do ',(0,o.kt)("strong",{parentName:"li"},"not")," tick this checkbox."),(0,o.kt)("li",{parentName:"ul"},"Make any corrections that assume a specific array drive order. For\ninstance If you had any includes/excludes set for a User Share you\nmay want to check them against the current assignments and correct\nif needed."),(0,o.kt)("li",{parentName:"ul"},"If you did not rebuild parity you may well want to run a parity\ncheck at this point to ensure that parity really was valid. If you\nused method 2) below to identify the parity drives then there\n",(0,o.kt)("strong",{parentName:"li"},"will")," be at least a small number of parity errors so you should\nrun a correcting check as soon as possible.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Identifying the parity Drives")),(0,o.kt)("p",null,"There are two slightly different approaches that can be used to identify\nthe parity drives. If you get unexpected results then you should ask for\nhelp in the forums before proceeding."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"1) Using the Unassigned Devices plugin")),(0,o.kt)("p",null,"This approach uses a 3rd party plugin. It has the advantage that it will\nnot automatically invalidate parity drives."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Install the ",(0,o.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin via the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," tab if\nyou have not already done so."),(0,o.kt)("li",{parentName:"ul"},"Mount all the disks read-only in turn. You need to use the Read-only\nmode to avoid any changes to the drive that will invalidate parity."),(0,o.kt)("li",{parentName:"ul"},"Any disk that will not mount should be a parity drive (although you\ncannot tell if it is parity1 or parity2 if you have dual parity)."),(0,o.kt)("li",{parentName:"ul"},"While the drive is mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"2) Using Unraid built-in capability")),(0,o.kt)("p",null,"This approach does not need to use a 3rd party plugin and will\ninvalidate parity so that it need so be rebuilt."),(0,o.kt)("p",null,"The process is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Assign ",(0,o.kt)("strong",{parentName:"p"},"ALL")," data drives to the array and start the array. Unraid\nwill recognise any drives that have previously been used by Unraid\nand leave their contents intact")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"At this point any parity drives will show as ",(0,o.kt)("strong",{parentName:"p"},"unmountable")," since\nthe parity drives contain no file system. You should have the same\nnumber of unmountable drives as you had parity drives and as long as\nthis is the case make a note of their serial numbers. If this is not\nthe case ask for help in the Unraid forums on the best way to\nproceed.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"While the drives are mounted you might want to look quickly at the\ncontents if the order of the data drives matters to you to see if\nyou can identify the order for the data drives."))),(0,o.kt)("h3",{id:"backing-up-boot-drive"},"Backing Up Boot Drive"),(0,o.kt)("p",null,"Since the Unraid boot drive contains all user specific settings in the\n'config' folder You should ideally always make a backup of the Unraid\nboot drive any time you make any significant configuration changes."),(0,o.kt)("p",null,"There are various ways of achieving this:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"From the Unraid GUI via Main -",">"," Boot -",">"," Device -",">"," Flash -",">"," Flash\nBackup. This will create a zip file that you then download."),(0,o.kt)("li",{parentName:"ul"},"by Installing ",(0,o.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect"),", which provides for automated\nbackups to cloud servers managed by Limetech."),(0,o.kt)("li",{parentName:"ul"},"by plugging the flash drive into a PC/Mac and copying the full\ncontents to a local folder on the PC/Mac")),(0,o.kt)("h3",{id:"manually-upgrading-or-downgrading-an-unraid-release"},"Manually Upgrading (or Downgrading) an Unraid release"),(0,o.kt)("p",null,"Follow the same process as laid out in the section below for handling\nbzimage checksum errors."),(0,o.kt)("h3",{id:"bzimage-checksum-errorfailure-reading-flash-drive"},"Bzimage checksum error/failure reading flash drive"),(0,o.kt)("p",null,"Sometimes when booting you get a message displayed on a locally attached\nmonitor indicating that something has gone wrong when trying to load the\nUnraid OS files into RAM from the flash drive. There are two typical\nmanifestations of this"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"An explicit message stating that a read error has occurred"),(0,o.kt)("li",{parentName:"ul"},"A message stating that there is a checksum failure on a bz","*"," type\nfile (most commonly bzimage). This most commonly happens after\nupdating the Unraid OS (which is one time a lot of data is written\nto the flash drive in one go), although it can happen at any time.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note: ",(0,o.kt)("em",{parentName:"strong"},"This procedure can also be used to upgrade or downgrade an\nUnraid release"))),(0,o.kt)("p",null,"The normal recovery action is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Plug the flash drive into a PC/Mac and make sure it is able to read\nthe flash drive (and let it repair any corruption it finds). If the\nflash drive cannot be read then this indicates the flash drive had\nprobably failed and you need to follow the procedure for\ntransferring your settings to a new flash drive."),(0,o.kt)("li",{parentName:"ul"},"(optional) Make a backup of the flash drive. Although not strictly\nnecessary at this point it is always a good idea to have an\nup-to-date backup of the flash drive. All your settings are in the\n",(0,o.kt)("strong",{parentName:"li"},"config")," folder on the flash drive and this procedure leaves that\nunchanged."),(0,o.kt)("li",{parentName:"ul"},"Download the zip file for the release. The last few Stable releases\nwill have the download link on the Download page on the Unraid web\nsite. Every forum page will have a Download link at the top right to\ntake you to that page. For beta/rc test releases you can normally\nget the link by asking in the Bug reports-",">","Preleases section of the\nUnraid forums."),(0,o.kt)("li",{parentName:"ul"},"Extract all the bz","*"," type files from the zip file and overwrite the\ncorresponding files on the flash drive."),(0,o.kt)("li",{parentName:"ul"},"Extract the ",(0,o.kt)("em",{parentName:"li"},"changes.txt")," file and overwrite the one on the flash to\nensure you have one that corresponds to the bz","*"," type files you have\njust placed on the flash drive. The system will work if you do not\ncopy this file but it is good practice to keep it in sync with the\nrelease that is currently active."),(0,o.kt)("li",{parentName:"ul"},"Tidily eject the flash drive from the PC/Mac."),(0,o.kt)("li",{parentName:"ul"},"Boot the Unraid server of the freshly written flash drive.")),(0,o.kt)("p",null,"If the above does not help then it is advisable to post in the Unraid\nforums stating what you have tried and what are your current symptoms."),(0,o.kt)("h2",{id:"unclean-shutdowns"},"Unclean Shutdowns"),(0,o.kt)("p",null,"Sometimes on booting up the system and starting the array a parity check\nis automatically started due to an ",(0,o.kt)("em",{parentName:"p"},"Unclean Shutdown"),". An Unclean\nshutdown occurs when Unraid thinks that the array was not successfully\nstopped when the system was last powered off. This can be caused by a\nwide variety of issues:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The most obvious cause is unexpected power loss. The best protection\nagainst this type of issue is to have an Uninterruptible Power\nSupply (UPS) that is set up to initiate a controlled shutdown of\nUnraid initiated by the UPS when the amount of power left in the UPS\nreaches a trigger level."),(0,o.kt)("li",{parentName:"ul"},"The status of the array is stored on the flash drive, so if for any\nreason the status on the flash drive cannot be updated due to the\nflash drive either dropping offline or going into read-only state\nfor some reason then Unraid will not be able to update this status\neven if the array is stopped successfully."),(0,o.kt)("li",{parentName:"ul"},"Another common reason for an unclean shutdown is having a terminal\nsession open.\xa0 Unraid will not force them to shut down, but instead\nwaits for them to be terminated while the shutdown timer is running.\n\xa0After the overall shutdown timer runs out, the server is forced to\nshutdown. \xa0If you have the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Tips and Tweaks"))," plugin installed,\nyou can specify that any ",(0,o.kt)("strong",{parentName:"li"},"bash")," or ",(0,o.kt)("strong",{parentName:"li"},"ssh")," sessions be terminated\nso Unraid can be gracefully shutdown and won't hang waiting for\nthem to terminate (which they won't without human intervention).")),(0,o.kt)("p",null,"There are various timeouts that are started when a shutdown of the array\nis started that run in parallel and many users find the defaults are too\nlow for their particular workload:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"There is a timer in the ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","VM Manager-",">","VM Shutdown")),(0,o.kt)("em",{parentName:"li"},"(in advanced view)")," that needs to be set to a high enough value to\nallow your VMs time to completely shutdown. \xa0 Windows VMs will\nsometimes have an update that requires a shutdown to perform. \xa0These\ncan take quite a while and the default setting of 60 seconds in the\nVM Manager is not long enough. \xa0If the VM Manager timer setting is\nexceeded on a shutdown, your VMs will be forced to shutdown. \xa0This\nis just like pulling the plug on a PC. A reasonable value is\nsomething like 300 seconds (5 minutes) in order to insure your\nWindows 10 VMs have time to completely shutdown."),(0,o.kt)("li",{parentName:"ul"},"There is a timer for stopping Docker Containers under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings\n-",">"," Docker"))," ",(0,o.kt)("em",{parentName:"li"},"(in advanced view)"),". If this timeout is reached then\ndocker containers still running will be Force Stopped."),(0,o.kt)("li",{parentName:"ul"},"If you have remote SMB or NFS mounts in Unassigned Devices you need\nto account for time for them to time out if the remote server has\ngone off-line when unmounting.\xa0 You should allow something like 45\nseconds for each remote mount.\xa0 They are unmounted sequentially, so\nyou need to account for 45 seconds for each one."),(0,o.kt)("li",{parentName:"ul"},"There is an final timer used for shutdowns under the\n",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Disk Settings-",">","Shutdown time-out")),". \xa0This is the\noverall shutdown timer and when this timer is exceeded, an unclean\nshutdown will occur. \xa0This timer has to be more than the VM and\ndocker shutdown timers. \xa0A reasonable value might be something like\n420 seconds (7 minutes) to give the system time to completely shut\ndown all VMs, Dockers, and plugins.")),(0,o.kt)("p",null,"It can be useful to use the ",(0,o.kt)("strong",{parentName:"p"},"Stop")," option on the Main tab with your\nnormal workload running and time how long it takes. The overall shutdown\ntimer should be set to at least this value plus a small extra margin to\nallow for variability."),(0,o.kt)("p",null,"If you server seems hung and nothing responds, try a quick press of the\npower button.\xa0 This will initiate a shutdown that will attempt a\ngraceful shutdown of the server.\xa0 If you have to hold the power button\nto do a hard power off, you will get an unclean shutdown."),(0,o.kt)("p",null,'If an unclean shutdown does occur because the overall "Shutdown\ntime-out" was exceeded, Unraid will attempt to write diagnostics to the\n',(0,o.kt)("strong",{parentName:"p"},"/log")," folder on the flash drive. \xa0When you ask for help in the Unraid\nforums with an unclean shutdown, post the ",(0,o.kt)("strong",{parentName:"p"},"/log/diagnostics.zip")," file.\n\xa0There is information in the log that shows why the unclean shutdown\noccurred."),(0,o.kt)("p",null,"It can also be good idea to activate the ",(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"Settings-",">","Syslog Server")),"\nto get logs that can survive a reboot as by default the syslog is only\nin RAM and lost after a reboot."),(0,o.kt)("h2",{id:"crash-issues"},"Crash Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("h3",{id:"ram-issues"},"RAM Issues"),(0,o.kt)("p",null,"It is known that RAM degrades over time. RAM issues can be\nelusive to track down and cause unpredictable errors. A somewhat common\neffect is unexpected file system level corruption."),(0,o.kt)("p",null,"The Unraid boot menu includes a version of memtest for testing RAM. This\nversion will only work if booting in Legacy mode. If you try to run this\nwhen running in UEFI mode it will immediately reboot again."),(0,o.kt)("p",null,"If you want a version that can be used in UEFI mode then you can\ndownload a newer version from memtest's website. Note that the version\nof memtest built into Unraid is a much older version that doesn't have\nthe newer testing capabilities of the current version located on\nmemtest's website. This is no fault of Unraid, the people behind\nmemtest won't allow anything newer to be installed by 3rd parties."),(0,o.kt)("h3",{id:"over-clocking-ram"},"Over-clocking RAM"),(0,o.kt)("p",null,"Many people want to run their RAM at the maximum rated speed quoted in\nthe specification of the RAM they have purchased. They tend to forget\nthat many motherboard/CPU combinations have a max speed at which they\ncan reliably drive RAM regardless of the fact that the RAM may be rated\nfor a higher theoretical maximum clock rate."),(0,o.kt)("h2",{id:"windows-connection-issues"},"Windows Connection Issues"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,"The majority of users have no problem making connections to Unraid\nshares. Having said that Microsoft is continually tweaking the network\nsecurity model via Windows Update and this can cause problems for some\nusers."),(0,o.kt)("p",null,"If you encounter problems then your first port of call should probably\nbe the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/53172-windows-issues-with-unraid/"},"Windows issues with\nUnraid"),"\nforum thread. This thread is rather long so you probably want to start\nnear the end."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"COMMONEST ISSUES AND SOLUTIONS TO BE ADDED HERE")),(0,o.kt)("h3",{id:"name-resolution"},"Name Resolution"),(0,o.kt)("h3",{id:"stored-credentials"},"Stored Credentials"),(0,o.kt)("h3",{id:"multiple-sign-ons"},"Multiple Sign-ons"),(0,o.kt)("h2",{id:"data-recovery"},"Data Recovery"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("p",null,"This section is about recovering your data when Unraid reports problems\nwith one or more drives."),(0,o.kt)("p",null,"There are some important points to bear in mind about securing your\ndata"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Backup critical data:")," Unraid will protect you against most types\nof simple hardware failure, but not catastrophic failure. You should\n",(0,o.kt)("strong",{parentName:"li"},"ALWAYS")," have backups of any critical data that you cannot afford\nto lose. Ideally one of those copies should be offsite or on the\ncloud to protect yourself against unforeseen issues such as fire,\ntheft, flood, etc.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Each user has to make their own determination of what they deem\ncritical and make an assessment of the level of risk they are\nprepared to take."),(0,o.kt)("li",{parentName:"ul"},"Personal data such as photographs & documents tend to always be\ndeemed critical. Luckily these tend to be relatively small so\neasy to back up."),(0,o.kt)("li",{parentName:"ul"},"Media files are often deemed non-critical and are relatively\nlarge so a user may well decide these do not merit being backed\nup"),(0,o.kt)("li",{parentName:"ul"},"Personal video that can never be replaced should fall into the\ncritical category regardless of its size"),(0,o.kt)("li",{parentName:"ul"},"Remember that there are things such as ",(0,o.kt)("em",{parentName:"li"},"ransomware")," around so\nthere should be at least one copy of critical files that cannot\nbe accessed online and corrupted if you are unfortunate enough\nto suffer from such an attack!"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Be proactive")," about resolving any issues that are detected by\nUnraid. Make sure that notifications are enabled under\n",(0,o.kt)("em",{parentName:"li"},"Settings-",">","Notifications")," so that you get told as soon as issues\nare detected. For many users, Unraid operates in a ",(0,o.kt)("em",{parentName:"li"},"fire-and-forget"),"\nmode so that they will not be actively checking for problems so need\nsuch reminders."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Ask for Advice:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The Unraid forums have lots of knowledgeable users who can help\nguide you through what needs doing to get your data back into a\nstandard if you are not sure what are the best steps to take."),(0,o.kt)("li",{parentName:"ul"},"Unraid is very good about protecting your data against typical\nhardware failures, but it is not immune to users taking\ninappropriate steps to recover their data after a failure\noccurs.")))),(0,o.kt)("h3",{id:"unmountable-disks"},"Unmountable Disk(s)"),(0,o.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,o.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as 'disabled' (i.e. with a red ','\nin the Unraid GUI)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will erase all content on the drive\nand update parity to reflect this making recovering the data\nimpossible/very difficult so do ",(0,o.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,o.kt)("p",null,"The correct way to proceed in such a case is to follow the procedure for\n",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management#checking-a-file-system"},"checking and\nrepairing"),"\nthe file system. The vast majority of the time this will repair the disk\nthat was previously showing as unmountable and now it will mount\ncorrectly and all your data will be intact. If you are not sure how to\nproceed then ask a question in the Unraid forums."),(0,o.kt)("h3",{id:"lost-array-configuration"},"Lost Array Configuration"),(0,o.kt)("p",null,"If you have lost the array configuration and do not have a current\nbackup of the flash drive the data will still be intact on the drives."),(0,o.kt)("p",null,"All configuration information is stored on the flash drive in the\n",(0,o.kt)("em",{parentName:"p"},"config")," folder. In particular, the Unraid array configuration is stored\nin the ",(0,o.kt)("em",{parentName:"p"},"config/super.dat")," file."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("em",{parentName:"li"},"Do not attempt to use an out-of-date backup that may have incorrect\ndrive assignments."))),(0,o.kt)("p",null,"If you know which drives were the parity drives then you can simply\nreassign the drives. However, if you do not know which were the parity\ndrives then you have to be more careful as incorrectly assigning a drive\nto parity that is really a data drive will result in you losing its\ncontents."),(0,o.kt)("p",null,"When you do not know which were your parity drives the following steps\ncan get your array back into operation:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Assign all drives as data drives"),(0,o.kt)("li",{parentName:"ol"},"Start the array"),(0,o.kt)("li",{parentName:"ol"},"All the genuine data drives should show as mounted and the parity\ndrive(s) show as ",(0,o.kt)("em",{parentName:"li"},"unmountable"),". If this is not the case and too many\ndrives show as unmountable then stop and ask for help in the forums\ngiving details of what happened."),(0,o.kt)("li",{parentName:"ol"},"Make a note of the serial numbers of the parity drives."),(0,o.kt)("li",{parentName:"ol"},"Stop the array"),(0,o.kt)("li",{parentName:"ol"},"Go to Tools-",">","New Config. Select the option to retain current\nassignments (as it reduces the chance of error). Click the yes I\nwant to do this and then Apply."),(0,o.kt)("li",{parentName:"ol"},"Go back to the Main tab and correct the assignments of the parity\ndrives. Double-check you have the right drives now assigned as\nparity drives as assigning a data drive to parity will lose its\ncontents. You can move any other drives around at this stage as\nwell."),(0,o.kt)("li",{parentName:"ol"},"Start the array and the system will start building parity based on\nthe current assignments.")),(0,o.kt)("p",null,"All your User Shares will re-appear (as they are simply the aggregation\nof the top-level folders on each drive) but with default settings, so\nyou may need to re-apply any customization you want."),(0,o.kt)("p",null,"You can now go configure any other customization that is appropriate and\nadd any plugins you normally use."),(0,o.kt)("p",null,"At this point, it is strongly recommended that you click on the flash\ndrive on the Main tab and select the option to download a backup of\nthe flash drive. It is always good practice to do this any time you make\na significant change."),(0,o.kt)("h3",{id:"using-ddrescue-to-recover-data-from-a-failing-disk"},"Using ",(0,o.kt)("em",{parentName:"h3"},"ddrescue")," to recover data from a failing disk"),(0,o.kt)("p",null,"In normal use, a tailed/disabled disk is recovered under Unraid using\nthe ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management#replacing-disks"},"Replacing\nDisks")," procedure."),(0,o.kt)("p",null,"Occasionally it can happen due to a variety of reasons, like a disk\nfailing while parity is invalid or two disks failing with single parity,\na user having a failing disk with pending sectors and no way to rebuild\nit using parity, the normal Unraid recovery processes cannot be used. In\nsuch a case you can try using ",(0,o.kt)("strong",{parentName:"p"},"ddrescue")," to salvage as much data as\npossible."),(0,o.kt)("p",null,"To install ",(0,o.kt)("em",{parentName:"p"},"ddrescue")," install the Nerd Pack plugin then go to Settings\n-",">"," Nerd Pack and install ",(0,o.kt)("em",{parentName:"p"},"ddrescue"),"."),(0,o.kt)("p",null,"You need an extra disk (same size or larger than the failing disk) to\nclone the old disk to, using the console/SSH type:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Both source and destination disks can't be mounted, replace X with\nsource disk, Y with destination disk, always triple-check these, if the\nwrong disk is used as destination it will be overwritten deleting all\ndata."),(0,o.kt)("p",null,"It's also possible to use an array disk as the destination, though only\nif it's the same size as the original, but to maintain parity you can\nonly clone the partition, so the existing array disk needs to be a\nformatted Unraid disk already in any filesystem, still to maintain\nparity you need to use the md# device and the array needs to be started\nin maintenance mode, i.e., not accessible during the copy, by using the\ncommand:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0/dev/sdX1\xa0/dev/md#\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace X with source disk (note the 1 in the source disk identifier), ","#","\nwith destination disk number. It is recommend to enable turbo write\nfirst or it will take much longer."),(0,o.kt)("p",null,"Example output during the 1st pass:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0926889\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa01695\xa0kB,\xa0\xa0current\xa0rate:\xa0\xa095092\xa0kB/s\nopos:\xa0\xa0926889\xa0MB,\xa0non-scraped:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0average\xa0rate:\xa0\xa079236\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa01074\xa0GB,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nrescued:\xa0\xa0925804\xa0MB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa03h\xa014m\xa044s\npct\xa0rescued:\xa0\xa0\xa046.28%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0\xa054,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa03h\xa018m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00s\nCopying\xa0non-tried\xa0blocks...\xa0Pass\xa01\xa0(forwards)\n")),(0,o.kt)("p",null,"After copying all the good blocks ddrescue will retry the bad blocks,\nforwards and backwards, this last part can take some time depending on\nhow bad the disk is, example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"GNU\xa0ddrescue\xa01.22\nipos:\xa0\xa0\xa017878\xa0MB,\xa0non-trimmed:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0current\xa0rate:\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B/s\nopos:\xa0\xa0\xa017878\xa0MB,\xa0non-scraped:\xa0\xa0\xa0362496\xa0B,\xa0\xa0average\xa0rate:\xa0\xa074898\xa0kB/s\nnon-tried:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa00\xa0B,\xa0\xa0bad-sector:\xa0\xa0\xa0\xa093696\xa0B,\xa0\xa0\xa0\xa0error\xa0rate:\xa0\xa0\xa0\xa0\xa0102\xa0B/s\nrescued:\xa0\xa0\xa0\xa02000\xa0GB,\xa0\xa0\xa0bad\xa0areas:\xa0\xa0\xa0\xa0\xa0\xa0101,\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0run\xa0time:\xa0\xa07h\xa025m\xa0\xa08s\npct\xa0rescued:\xa0\xa0\xa099.99%,\xa0read\xa0errors:\xa0\xa0\xa0\xa0\xa0\xa0260,\xa0\xa0remaining\xa0time:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa025m\ntime\xa0since\xa0last\xa0successful\xa0read:\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa010s\nScraping\xa0failed\xa0blocks...\xa0(forwards)\n")),(0,o.kt)("p",null,"After the clone is complete you can mount the destination disk manually\nor using for example the UD plugin (if the cloned disk is unmountable\nrun the appropriate filesystem repair tool, it might also be a good idea\nto run a filesystem check even if it mounts OK) and copy the recovered\ndata to the array. Some files will likely be corrupt and if you have\nchecksums or are using BTRFS you can easily find out which ones. If not\nsee below."),(0,o.kt)("p",null,"If you don't have checksums for your files (or use btrfs) there's a\nway you can still check which files were affected:"),(0,o.kt)("p",null,"Create a temporary text file with a text string not present on your\ndata, e.g.:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},'printf\xa0"Unraid\xa0"\xa0>~/fill.txt')),(0,o.kt)("p",null,"Then fill the bad blocks on the destination disk with that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"ddrescue\xa0-f\xa0--fill=-\xa0~/fill.txt\xa0/dev/sdY\xa0/boot/ddrescue.log")),(0,o.kt)("p",null,"Replace Y with the cloned disk (not the original) and use the existing\nddrescue mapfile."),(0,o.kt)("p",null,"Finally mount the disk, manually or for example using the UD plugin and\nsearch for that string:"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"find\xa0/mnt/path/to/disk\xa0-type\xa0f\xa0-exec\xa0grep\xa0-l\xa0\"Unraid\"\xa0'{}'\xa0';'")),(0,o.kt)("p",null,'Replace /path/to/disk with the correct mount point, all files containing\nthe string "Unraid" will be output and those are your corrupt files,\nthis will take some time as all files on the disks will be scanned, the\noutput is only displayed in the end, and if there\'s no output then the\nbad sectors were in areas without any files.'),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"A lot more detail still needs to be added")),(0,o.kt)("h3",{id:"docker-image-full"},"Docker Image Full"),(0,o.kt)("p",null,"Unraid expects docker containers to be configured so that only the\nbinaries for the container are held in the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file. All\nlocations within the container that write variable data are then\nexpected to be mapped to locations external to the docker.img file."),(0,o.kt)("p",null,"The default size of 20GB is enough for all but the most demanding users\nso if you find that your ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is running out of space it\ndefinitely sounds as if you have at least one container incorrectly\nconfigured so it is writing internally to the docker image rather than\nto storage external to the image."),(0,o.kt)("p",null,"Common mistakes are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Leaving off the leading / on the container side of a path mapping so\nit is relative rather than absolute"),(0,o.kt)("li",{parentName:"ul"},"Case mismatch on either side of a path mapping as Linux pathnames\nare case-significant.")),(0,o.kt)("p",null,"If you cannot spot the error then you can try:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the docker tab and click the Container size button. often this\nwill highlight the problem docker container(s) so you now know where\nto look.")),(0,o.kt)("p",null,"If that is not enough to identify the culprit then:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure all containers are stopped and not set to auto-start"),(0,o.kt)("li",{parentName:"ul"},"Stop docker service"),(0,o.kt)("li",{parentName:"ul"},"delete current docker image and set a more reasonable size (e.g.\n20G)"),(0,o.kt)("li",{parentName:"ul"},"Start docker service"),(0,o.kt)("li",{parentName:"ul"},"Use Apps-",">","Previous apps to re-install your containers (with\nall their settings intact)."),(0,o.kt)("li",{parentName:"ul"},"Go to docker tab and click the Container size button")),(0,o.kt)("p",null,": This will give you a starting point for the space each container is\nusing."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Enable one container, let it run for a short while, and then press\nthe Container size button again to see if that particular container\nis consuming space when it runs."),(0,o.kt)("li",{parentName:"ul"},"Repeat the above step until you track down the rogue container(s)")),(0,o.kt)("h3",{id:"how-do-i-move-dockerimg"},"How do I move docker.img?"),(0,o.kt)("p",null,"The normal reason for wanting to move the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because\nit has ended up on a drive that is not the one you want it to use."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," In many cases it is easier to just recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img"),"\nfile from scratch rather than to try and move it."),(0,o.kt)("p",null,"The way to move ",(0,o.kt)("em",{parentName:"p"},"docker.img")," is:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support).\nThis is required because othewise the Docker service will keep this\nfile open which stops you from moving it elsewhere."),(0,o.kt)("li",{parentName:"ul"},"Using mv or any file manager or the command line, move docker.img to\nthe desired location (/mnt/cache/docker.img is recommended)"),(0,o.kt)("li",{parentName:"ul"},"In Settings -",">"," Docker, change the path for ",(0,o.kt)("em",{parentName:"li"},"docker.img")," to the\nexact location you just copied to"),(0,o.kt)("li",{parentName:"ul"},"Set Enable Docker back to Yes, and click the Apply button again\n\xa0(re-enabling Docker support)")),(0,o.kt)("h3",{id:"how-do-i-recreate-dockerimg"},"How do I recreate docker.img?"),(0,o.kt)("p",null,"The commonest reason for wanting to recreate the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is\nbecause it has been corrupted. This is typically indicated by seeing\nerror messages in the syslog relating to the ",(0,o.kt)("em",{parentName:"p"},"loop2")," device (which is\nthe mount point for the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file)."),(0,o.kt)("p",null,"Other common reasons for recreating the ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file is because you\nwant to change the amount of space that you have allocated to it or to\nchange its location."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to ",(0,o.kt)("em",{parentName:"li"},"Settings -",">"," Docker -",">"," Enable Docker"),", and set to ",(0,o.kt)("strong",{parentName:"li"},"No"),",\nthen click the ",(0,o.kt)("strong",{parentName:"li"},"Apply")," button \xa0(this disables Docker support)"),(0,o.kt)("li",{parentName:"ul"},"Switch to Advanced View, then check off the box and press ",(0,o.kt)("strong",{parentName:"li"},"Delete")),(0,o.kt)("li",{parentName:"ul"},"Make sure that the settings for the size and location are what you\nwant them to be."),(0,o.kt)("li",{parentName:"ul"},"Now set Enable Docker back to ",(0,o.kt)("strong",{parentName:"li"},"Yes"),", and click the ",(0,o.kt)("strong",{parentName:"li"},"Apply"),"\nbutton again \xa0(re-enabling Docker support) and a new empty\n",(0,o.kt)("em",{parentName:"li"},"docker.img")," file will be created.")),(0,o.kt)("h3",{id:"restoring-your-docker-applications"},"Restoring your Docker Applications"),(0,o.kt)("p",null,"It is very easy to reinstall the binaries for all your Docker containers\nand get back your containers with their settings intact if you have\ninstalled them via Community Applications."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Go to the ",(0,o.kt)("strong",{parentName:"li"},"Apps")," Tab"),(0,o.kt)("li",{parentName:"ul"},"Select the ",(0,o.kt)("strong",{parentName:"li"},"Previous Apps")," Section."),(0,o.kt)("li",{parentName:"ul"},"Check off all of your previous applications that you want to be\nreinstalled and hit ",(0,o.kt)("strong",{parentName:"li"},"Instal"),"l.")),(0,o.kt)("p",null,"This will download the binaries for all of your Docker containers into\nthe ",(0,o.kt)("em",{parentName:"p"},"docker.img")," file and reinstate them with their settings intact."),(0,o.kt)("h3",{id:"further-information"},"Further Information"),(0,o.kt)("p",null,"A wealth of further information and some common problems with docker\n(and the solutions) can be found in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/"},"Docker\nFAQ")," on the forum"),(0,o.kt)("h2",{id:"udma-crc-errors"},"UDMA CRC Errors"),(0,o.kt)("p",null,"Users frequently see that they are getting UDMA CRC errors (SMART\nattribute 199) reported for some drives."),(0,o.kt)("p",null,"A CRC error indicates that the drive has noted that it has not correctly\nreceived the data from the host, and typically indicates a connection\nissue of some sort. This will normally trigger Unraid to attempt a\nrecovery by resending the data. If this resend succeeds then Unraid will\ncontinue as normal, but the retry will have the end effect of slowing\ndown the perceived write speed due to the delay caused by the retry.\nThese retry attempts will show up as entries in the syslog."),(0,o.kt)("p",null,"If the recovery attempt fails then after several retries Unraid will\ndecide it has a Read error on the drive. If the array is parity\nprotected this will then trigger Unraid to attempt to rewrite the\nproblem sector with the correct data based on the parity data and the\ncorresponding sector on all the 'good' data drives. If this write\nsucceeds then Unraid will continue as normal, but if the write fails\nUnraid will disable the drive and stop using it. This disabled state is\nindicated in the GUI by the fact that the drive is flagged with a red\n'x'."),(0,o.kt)("p",null,"Possible causes of such errors are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Badly seated SATA cables. The SATA connector is not a very robust\nconnector and can easily work slightly loose due to vibration or\ntension on the cables. It is also a good idea to avoid 'bundling'\nthe cables together in an attempt to tidy up the cabling as this can\nresult in cross-talk interference between the cables."),(0,o.kt)("li",{parentName:"ul"},"Bad SATA cables."),(0,o.kt)("li",{parentName:"ul"},"Insufficient power to the drive. Quite frequently associated with\nsplitter cables on the power lines, but also possible if the power\nsupply is insufficient to power all drives simultaneously so that\npower dips occur."),(0,o.kt)("li",{parentName:"ul"},"Badly seated disk controller"),(0,o.kt)("li",{parentName:"ul"},"Genuine disk problem (least likely but not unknown).")),(0,o.kt)("p",null,"The first guidance that is always given in the forum when a user reports\nCRC errors is to first carefully check the SATA and Power cabling to the\ndrives as this is by far the commonest cause of such issues."),(0,o.kt)("p",null,"Points to note are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Occasional CRC errors are not really a cause for concern but if they\nare happening regularly or in large numbers then this definitely\nneeds looking into to determine the cause and fix the issue."),(0,o.kt)("li",{parentName:"ul"},"It is not unusual for the ",(0,o.kt)("strong",{parentName:"li"},"Current pending sector count")," (SMART\nattribute ) 197 to also be incremented when getting a lot of CRC\nerrors. This is more of a cause for concern as it means these\nsectors may not be read reliably if another disk fails and a\nrecovery action needs to be performed as error-free recovery\nrequires all 'non-failed' drives to be read without error."),(0,o.kt)("li",{parentName:"ul"},"The CRC count is stored internally in the drive's SMART information\nand never resets to zero - it can only ever increase."),(0,o.kt)("li",{parentName:"ul"},"A CRC error will result in the Dashboard page indicating a SMART\nrelated issue has happened by an orange 'thumbs-down' symbol\nagainst the drive."),(0,o.kt)("li",{parentName:"ul"},"The user can acknowledge they have seen such an error by clicking on\nthe orange symbol and choosing the 'Acknowledge' option from the\nresulting menu that is displayed. This will result in the icon\nturning green again and Unraid will only prompt you again if the\nvalue of the CRC count increases.")),(0,o.kt)("h2",{id:"cachepool-issues"},"Cache/Pool issues"),(0,o.kt)("h3",{id:"mover-is-not-moving-files"},"Mover is not moving files"),(0,o.kt)("p",null,"The commonest cause for this is simply new users misunderstanding the\n",(0,o.kt)("em",{parentName:"p"},"Use")," ",(0,o.kt)("em",{parentName:"p"},"Cache")," setting for a share and getting the ",(0,o.kt)("strong",{parentName:"p"},"Yes")," and ",(0,o.kt)("strong",{parentName:"p"},"Prefer"),"\nsettings back-to-front. If you want files to initially be written to the\ncache and later moved to the array then you ned to use the ",(0,o.kt)("strong",{parentName:"p"},"Yes"),"\nsetting and not the ",(0,o.kt)("strong",{parentName:"p"},"Prefer")," setting."),(0,o.kt)("p",null,"Another common mis-conception is that changing the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting\nto ",(0,o.kt)("strong",{parentName:"p"},"Only")," or ",(0,o.kt)("strong",{parentName:"p"},"No")," will trigger mover to transfer files to/from their\ncurrent location to match the new ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting. In fact mover\ntakes no action on shares that have this setting so the files are left\nin their current location."),(0,o.kt)("p",null,"Another point is not realizing that the Docker and VM services keep\ncertain files permanently open (particularly in the ",(0,o.kt)("strong",{parentName:"p"},"system"),",\n",(0,o.kt)("strong",{parentName:"p"},"domains"),", and ",(0,o.kt)("strong",{parentName:"p"},"appdata")," shares) and this can stop mover acting on\nthose files. It is not enough to simply stop all running containers\nand/or VMs - you actually need to disable the services themselves to\nallow such files to be moved."),(0,o.kt)("p",null,"###Files end up on a pool (cache) despite Use Cache=No setting for a share"),(0,o.kt)("p",null,"This behaviour is the one that new users find most perplexing."),(0,o.kt)("p",null,"It arises when a 'move' action is attempted at the Linux level. (This\ncan be either from the command line or within a container (since all\ncontainer are Linux based).) It arises from the fact that Linux is not\naware of ",(0,o.kt)("em",{parentName:"p"},"User Shares")," combined with the way that Linux implements a\n'move' operation. If Linux thinks that both source and target are on\nthe same mount point (and all ",(0,o.kt)("em",{parentName:"p"},"User Shares")," are under the ",(0,o.kt)("strong",{parentName:"p"},"/mnt/user"),"\nmount point) then it first tries a ",(0,o.kt)("em",{parentName:"p"},"rename")," command and for speed and\nonly if that fails does it revert to trying a ",(0,o.kt)("em",{parentName:"p"},"copy + delete")," operation.\nIn the case of a cache/pool this 'rename' succeeds so the file is left\non the same drive but under a new folder name corresponding to the\ntarget share name. Since User Shares are simply an amalgamated view of\nthe top level folders on all drives this means that suddenly the file(s)\nin question can end up on a drive that has the ",(0,o.kt)("em",{parentName:"p"},"Use Cache=No")," setting.\nSince ",(0,o.kt)("em",{parentName:"p"},"mover")," ignores shares with the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,o.kt)("em",{parentName:"p"},"No")," or\n",(0,o.kt)("em",{parentName:"p"},"Only")," this will result in the files being left stranded on a pool that\nthe target share has not been configured to use for caching purposes."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"*","This behaviour can also occur if you try and move files between two\nUser Shares that are set to use different Pools for caching purposes"),".","*","\nOnce again this can result in the files ending up on the wrong pool."),(0,o.kt)("p",null,"Workarounds to this issue are by doing any of the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Manually move the file(s) in question to the drive where you want it\nto be finally located."),(0,o.kt)("li",{parentName:"ul"},"Set the share that the file has ended up in to have the ",(0,o.kt)("em",{parentName:"li"},"Use\nCache=Yes")," setting and then when mover runs the file will get\ntransferred to the array following the rules for that share to pick\nthe array drive. You can either start mover manually from the Main\ntab or wait until it runs automatically at its next scheduled time.\nOnce mover has been run you can either leave the ",(0,o.kt)("em",{parentName:"li"},"Use Cache")," setting\nas ",(0,o.kt)("em",{parentName:"li"},"Yes")," or change it to the setting you want to use long term."),(0,o.kt)("li",{parentName:"ul"},"Do an explicit copy + delete operation."),(0,o.kt)("li",{parentName:"ul"},"Do the move over the network as at the network level two different\nUser Share will never appear to be on the same mount point so a\ncopy + delete is done automatically."),(0,o.kt)("li",{parentName:"ul"},"Make sure the mount points for source and target appear to be\ndifferent at the Linux level."),(0,o.kt)("li",{parentName:"ul"},"Move between physical drives rather than at the User Share level.")))}p.isMDXComponent=!0},7463:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/BootMenu-105fcf5bc771c0123d8f690d108dc260.jpg"},2791:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Diagnostics-63dbf449f2b45a4c69d509099b31dfb2.jpg"},8699:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7YtvgD44/4KSfBzwj8ZNY0Lwn8Q5vi7rcN14Y8PeOoZb7wL8L/B5S5ntNQm0JbiJdX1O4gjt97yP5iXGooEaG2tmVuN+Bc1x8Af2UPFH7Snwts/CnhPR/hT4n1SLxDpvgO1nsPh38XvCNncIL3VrDR3nlisbqOBbh4Lq2kfzZrBwZbi1uFA7n4o/HHT/+CSH7NXij4P8Axq+w6b8DL61v9E+HfxCbS31zTdPsLxZ/s+iaxpMMy30jWQcQK9sDFc2scW6W3l3gXvCf7QOh/wDBYP4G6R8KPgHa2p/Z/jW10fx344/s7+x9Pn0u18nzdA0jTJHF4sl2ifZ3knjjgt7Z5Sjzy7EoA//Z"},1001:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEX///+Hh4eHh4eHh4eHh4eMjIyWlpalpaWnp6esrKyzs7O2trbIyMjR2uXS2+bS3OfU3ujV3+nW3+rg4ODr6+vu7u7w8PDz8/P29vb4+Pj6+vr7+/v9/f3+/v7///+81dMvAAAABHRSTlMAUM/vo/h8QgAAAFtJREFUGNOdykcSgCAQAMFVMWIAxUBw//9M0YXCgyf7ODUAwF9a8DgeaAwa9EoKCfsOc/L/kFE4ThedFKSIJAWrI0tBTME4UNAbWRdFwdmH2VVf3KFralKxPIML/KAP+VIW23YAAAAASUVORK5CYII="},8949:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-setup-a80b97d7a9b4847daa8323687f570e30.jpg"},7397:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Syslog-server-b166cf9ccef13716f0535c491ff164f2.jpg"}}]); \ No newline at end of file diff --git a/zh/assets/js/10869db1.70506c93.js b/zh/assets/js/10869db1.70506c93.js new file mode 100644 index 000000000..65f888356 --- /dev/null +++ b/zh/assets/js/10869db1.70506c93.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3563],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>f});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(a),d=n,f=p["".concat(l,".").concat(d)]||p[d]||h[d]||i;return a?r.createElement(f,o(o({ref:t},u),{},{components:a})):r.createElement(f,o({ref:t},u))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,o[1]=s;for(var c=2;c{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=a(7462),n=(a(7294),a(4137));const i={sidebar_position:4},o="Flash Drive",s={unversionedId:"unraid-os/manual/security/flash-drive",id:"unraid-os/manual/security/flash-drive",title:"Flash Drive",description:"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.",source:"@site/docs/unraid-os/manual/security/flash-drive.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/flash-drive",permalink:"/zh/unraid-os/manual/security/flash-drive",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/flash-drive.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Data Encryption",permalink:"/zh/unraid-os/manual/security/data-encryption"},next:{title:"VPN",permalink:"/zh/unraid-os/manual/security/vpn"}},l={},c=[{value:"Backups",id:"backups",level:2},{value:"Network Access",id:"network-access",level:2},{value:"Permissions",id:"permissions",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(p,(0,r.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"flash-drive"},"Flash Drive"),(0,n.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed."),(0,n.kt)("h2",{id:"backups"},"Backups"),(0,n.kt)("p",null,"If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change."),(0,n.kt)("p",null,"You can easily achieve this from the Unraid webGUI:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Select the flash drive on the ",(0,n.kt)("strong",{parentName:"li"},"Main")," tab."),(0,n.kt)("li",{parentName:"ol"},"In the ",(0,n.kt)("strong",{parentName:"li"},"Flash Device Settings")," section select the ",(0,n.kt)("strong",{parentName:"li"},"Flash Backup")," button."),(0,n.kt)("li",{parentName:"ol"},"The system will now create a ZIP file that is a backup of the contents of the flash drive."),(0,n.kt)("li",{parentName:"ol"},"When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.")),(0,n.kt)("p",null,"If you later need to recreate your flash drive for any reason, use this backup as input to the ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Limetech USB Creator tool"),"."),(0,n.kt)("h2",{id:"network-access"},"Network Access"),(0,n.kt)("p",null,"The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"*Network visibility"),": You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any access permissions that you want applied.")),(0,n.kt)("h2",{id:"permissions"},"Permissions"),(0,n.kt)("p",null,"As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location."),(0,n.kt)("p",null,"There are a few ways to handle this:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Copy the files to a location from which they can be executed."),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"The location ",(0,n.kt)("inlineCode",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the files on the default search path."),(0,n.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding appropriate commands to the ",(0,n.kt)("inlineCode",{parentName:"li"},"config/go")," file on the flash drive."),(0,n.kt)("li",{parentName:"ul"},"Give the files execute permission after copying them."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"For scripts, prefix the script name with the command that runs the script (e.g. ",(0,n.kt)("em",{parentName:"p"},"bash path-to-script"),")."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/14eb3368.3f60616a.js b/zh/assets/js/14eb3368.3f60616a.js deleted file mode 100644 index 5de541b9c..000000000 --- a/zh/assets/js/14eb3368.3f60616a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(3734),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(3734),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file diff --git a/zh/assets/js/14eb3368.64ec88ed.js b/zh/assets/js/14eb3368.64ec88ed.js new file mode 100644 index 000000000..25852f8f9 --- /dev/null +++ b/zh/assets/js/14eb3368.64ec88ed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9817],{3899:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(4334),l=a(3702),s=a(8259),c=a(9003),o=a(3699),m=a(7325),d=a(9524);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},853:(e,t,a)=>{a.r(t),a.d(t,{default:()=>y});var n=a(7294),r=a(9488),i=a(8259),l=a(9524),s=a(4334),c=a(3699),o=a(2735),m=a(7325);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(9473),N=a(5350),Z=a(4617),k=a(3899),L=a(8207);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function x(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function y(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(x,e))}},9473:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(7325),l=a(4334),s=a(3699);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(4334),i=a(7325),l=a(3702),s=a(8801);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},5350:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(4334),i=a(9962),l=a(3699),s=a(7325),c=a(9871),o=a(3702),m=a(6409),d=a(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},8207:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(4334),l=a(7325),s=a(107),c=a(3699);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file diff --git a/zh/assets/js/17896441.5d44835b.js b/zh/assets/js/17896441.5d44835b.js deleted file mode 100644 index 4bf4e5f5e..000000000 --- a/zh/assets/js/17896441.5d44835b.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(3734),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?["'])(?.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/zh/assets/js/17896441.63195e72.js b/zh/assets/js/17896441.63195e72.js new file mode 100644 index 000000000..0317e0a68 --- /dev/null +++ b/zh/assets/js/17896441.63195e72.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{4137:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),m=i(n),p=o,f=m["".concat(s,".").concat(p)]||m[p]||u[p]||r;return n?a.createElement(f,l(l({ref:t},d),{},{components:n})):a.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,l=new Array(r);l[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[m]="string"==typeof e?e:o,l[1]=c;for(var i=2;i<r;i++)l[i]=n[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},3899:(e,t,n)=>{"use strict";n.d(t,{Z:()=>v});var a=n(7462),o=n(7294),r=n(4334),l=n(3702),c=n(8259),s=n(9003),i=n(3699),d=n(7325),m=n(9524);function u(e){return o.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),o.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const p={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function f(){const e=(0,m.Z)("/");return o.createElement("li",{className:"breadcrumbs__item"},o.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},o.createElement(u,{className:p.breadcrumbHomeIcon})))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?o.createElement("span",{className:r,itemProp:"name"},t):n?o.createElement(i.Z,{className:r,href:n,itemProp:"item"},o.createElement("span",{itemProp:"name"},t)):o.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:l,addMicrodata:c}=e;return o.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,o.createElement("meta",{itemProp:"position",content:String(l+1)}))}function v(){const e=(0,c.s1)(),t=(0,s.Ns)();return e?o.createElement("nav",{className:(0,r.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},o.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&o.createElement(f,null),e.map(((t,n)=>{const a=n===e.length-1;return o.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},o.createElement(g,{href:t.href,isLast:a},t.label))})))):null}},9711:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>ut});var a=n(7294),o=n(9488),r=n(3768);const l=a.createContext(null);function c(e){let{children:t,content:n}=e;const o=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(l.Provider,{value:o},t)}function s(){const e=(0,a.useContext)(l);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(o.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(4334),m=n(3488),u=n(9473);function p(){const{metadata:e}=s();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var f=n(5350),h=n(4617),g=n(3702),b=n(7325);function v(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function E(e){let{lastUpdatedBy:t}=e;return a.createElement(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function y(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:o}=e;return a.createElement("span",{className:g.k.common.lastUpdated},a.createElement(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(v,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:o?a.createElement(E,{lastUpdatedBy:o}):""}},"Last updated{atDate}{byUser}"),!1)}var k=n(7462);const N={iconEdit:"iconEdit_Z9Sw"};function C(e){let{className:t,...n}=e;return a.createElement("svg",(0,k.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:g.k.common.editThisPage},a.createElement(C,null),a.createElement(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var Z=n(3699);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function _(e){let{permalink:t,label:n,count:o}=e;return a.createElement(Z.Z,{href:t,className:(0,d.Z)(T.tag,o?T.tagWithCount:T.tagRegular)},n,o&&a.createElement("span",null,o))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function B(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:w.tag},a.createElement(_,{label:t,permalink:n}))}))))}const x={lastUpdated:"lastUpdated_vwxv"};function O(e){return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(B,e)))}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:o,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(g.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",x.lastUpdated)},(n||o)&&a.createElement(y,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:o})))}function A(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:o,lastUpdatedBy:r,tags:l}=e,c=l.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(g.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(O,{tags:l}),i&&a.createElement(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:o})):null}var j=n(4639),S=n(107);function I(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):a.push(o)})),a}function M(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=M({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function P(e){const t=e.getBoundingClientRect();return t.top===t.bottom?P(e.parentNode):t}function U(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>P(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(P(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function z(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,S.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function V(e){const t=(0,a.useRef)(void 0),n=z();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:l}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let o=t;o<=n;o+=1)a.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:l}),s=U(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:o,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(D,{isChild:!0,toc:e.children,className:n,linkClassName:o}))))):null}const R=a.memo(D);function W(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:c,...s}=e;const i=(0,S.L)(),d=l??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,u=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return(0,a.useMemo)((()=>M({toc:I(t),minHeadingLevel:n,maxHeadingLevel:o})),[t,n,o])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return V((0,a.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[o,r,d,m])),a.createElement(R,(0,k.Z)({toc:u,className:n,linkClassName:o},s))}const $={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,k.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",$.tocCollapsibleButton,!t&&$.tocCollapsibleButtonExpanded,n.className)}),a.createElement(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:o,maxHeadingLevel:r}=e;const{collapsed:l,toggleCollapsed:c}=(0,j.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(q.tocCollapsible,!l&&q.tocCollapsibleExpanded,n)},a.createElement(F,{collapsed:l,onClick:c}),a.createElement(j.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:l},a.createElement(W,{toc:t,minHeadingLevel:o,maxHeadingLevel:r})))}const Y={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=s();return a.createElement(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(g.k.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(Q.tableOfContents,"thin-scrollbar",t)},a.createElement(W,(0,k.Z)({},n,{linkClassName:X,linkActiveClassName:K})))}function te(){const{toc:e,frontMatter:t}=s();return a.createElement(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(8207),ae=n(4137),oe=n(1514);var re=n(1048),le=n(9200);function ce(){const{prism:e}=(0,S.L)(),{colorMode:t}=(0,le.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}var se=n(7594),ie=n.n(se);const de=/title=(?<quote>["'])(?<title>.*?)\1/,me=/\{(?<range>[\d,-]+)\}/,ue={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function pe(e,t){const n=e.map((e=>{const{start:n,end:a}=ue[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${a})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function fe(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:o,metastring:r}=t;if(r&&me.test(r)){const e=r.match(me).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,a=ie()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const l=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return pe(["js","jsBlock"],t);case"jsx":case"tsx":return pe(["js","jsBlock","jsx"],t);case"html":return pe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return pe(["bash"],t);case"markdown":case"md":return pe(["html","jsx","bash"],t);default:return pe(Object.keys(ue),t)}}(a,o),c=n.split("\n"),s=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<c.length;){const e=c[p].match(l);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?s[i[t]].range+=`${p},`:d[t]?s[d[t]].start=p:m[t]&&(s[m[t]].range+=`${s[m[t]].start}-${p-1},`),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;ie()(n).forEach((e=>{u[e]??=[],u[e].push(t)}))})),{lineClassNames:u,code:n}}const he={codeBlockContainer:"codeBlockContainer_Ckt0"};function ge(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,o]=e;const r=t[a];r&&"string"==typeof o&&(n[r]=o)})),n}(ce());return a.createElement(t,(0,k.Z)({},n,{style:o,className:(0,d.Z)(n.className,he.codeBlockContainer,g.k.common.codeBlock)}))}const be={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function ve(e){let{children:t,className:n}=e;return a.createElement(ge,{as:"pre",tabIndex:0,className:(0,d.Z)(be.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:be.codeBlockLines},t))}const Ee={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ye(e,t){const[n,o]=(0,a.useState)(),l=(0,a.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,a.useEffect)((()=>{l()}),[l]),function(e,t,n){void 0===n&&(n=Ee);const o=(0,r.zX)(t),l=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,l),()=>t.disconnect()}),[e,o,l])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),l())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const ke={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var Ne={Prism:n(7410).Z,theme:ke};function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Le(){return Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Le.apply(this,arguments)}var Ze=/\r\n|\r|\n/,Te=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},_e=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function we(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Be=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Ce(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,a=Object.create(null),o=e.styles.reduce((function(e,n){var a=n.languages,o=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=Le({},e[t],o);e[t]=n})),e}),a);return o.root=n,o.plain=Le({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),Ce(this,"getLineProps",(function(e){var n=e.key,a=e.className,o=e.style,r=Le({},we(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(r.style=l.plain),void 0!==o&&(r.style=void 0!==r.style?Le({},r.style,o):o),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Ce(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,o=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===o&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===o&&!a)return r[n[0]];var l=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[l].concat(c))}})),Ce(this,"getTokenProps",(function(e){var n=e.key,a=e.className,o=e.style,r=e.token,l=Le({},we(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?Le({},l.style,o):o),void 0!==n&&(l.key=n),a&&(l.className+=" "+a),l})),Ce(this,"tokenize",(function(e,t,n,a){var o={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",o);var r=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,o=e.children,r=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],a=[0],o=[e.length],r=0,l=0,c=[],s=[c];l>-1;){for(;(r=a[l]++)<o[l];){var i=void 0,d=t[l],m=n[l][r];if("string"==typeof m?(d=l>0?d:["plain"],i=m):(d=_e(d,m.type),m.alias&&(d=_e(d,m.alias)),i=m.content),"string"==typeof i){var u=i.split(Ze),p=u.length;c.push({types:d,content:u[0]});for(var f=1;f<p;f++)Te(c),s.push(c=[]),c.push({types:d,content:u[f]})}else l++,t.push(d),n.push(i),a.push(0),o.push(i.length)}l--,t.pop(),n.pop(),a.pop(),o.pop()}return Te(c),s}(void 0!==l?this.tokenize(t,a,l,n):[a]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component);const xe=Be,Oe={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function He(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:r,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=r({line:t,className:(0,d.Z)(n,o&&Oe.codeLine)}),s=t.map(((e,t)=>a.createElement("span",(0,k.Z)({key:t},l({token:e,key:t})))));return a.createElement("span",c,o?a.createElement(a.Fragment,null,a.createElement("span",{className:Oe.codeLineNumber}),a.createElement("span",{className:Oe.codeLineContent},s)):s,a.createElement("br",null))}function Ae(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function je(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const Se={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Ie(e){let{code:t,className:n}=e;const[o,r]=(0,a.useState)(!1),l=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const a=document.createElement("textarea"),o=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection(),l=r.rangeCount>0&&r.getRangeAt(0);n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),l&&(r.removeAllRanges(),r.addRange(l)),o&&o.focus()}(t),r(!0),l.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),a.createElement("button",{type:"button","aria-label":o?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,d.Z)("clean-btn",n,Se.copyButton,o&&Se.copyButtonCopied),onClick:c},a.createElement("span",{className:Se.copyButtonIcons,"aria-hidden":"true"},a.createElement(Ae,{className:Se.copyButtonIcon}),a.createElement(je,{className:Se.copyButtonSuccessIcon})))}function Me(e){return a.createElement("svg",(0,k.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Pe={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Ue(e){let{className:t,onClick:n,isEnabled:o}=e;const r=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,d.Z)("clean-btn",t,o&&Pe.wordWrapButtonEnabled),"aria-label":r,title:r},a.createElement(Me,{className:Pe.wordWrapButtonIcon,"aria-hidden":"true"}))}function ze(e){let{children:t,className:n="",metastring:o,title:r,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:s,magicComments:i}}=(0,S.L)(),m=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??s,u=ce(),p=function(){const[e,t]=(0,a.useState)(!1),[n,o]=(0,a.useState)(!1),r=(0,a.useRef)(null),l=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");o(n)}),[r]);return ye(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:l}}(),f=function(e){return e?.match(de)?.groups.title??""}(o)||r,{lineClassNames:h,code:g}=fe(t,{metastring:o,language:m,magicComments:i}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return a.createElement(ge,{as:"div",className:(0,d.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`)},f&&a.createElement("div",{className:be.codeBlockTitle},f),a.createElement("div",{className:be.codeBlockContent},a.createElement(xe,(0,k.Z)({},Ne,{theme:u,code:g,language:m??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,d.Z)(t,be.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,d.Z)(be.codeBlockLines,b&&be.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(He,{key:t,line:e,getLineProps:o,getTokenProps:r,classNames:h[t],showLineNumbers:b})))))})),a.createElement("div",{className:be.buttonGroup},(p.isEnabled||p.isCodeScrollable)&&a.createElement(Ue,{className:be.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),a.createElement(Ie,{className:be.codeButton,code:g}))))}function Ve(e){let{children:t,...n}=e;const o=(0,re.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof r?ze:ve;return a.createElement(l,(0,k.Z)({key:String(o)},n),r)}var De=n(7459);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function We(e){return!!e&&("SUMMARY"===e.tagName||We(e.parentElement))}function $e(e,t){return!!e&&(e===t||$e(e.parentElement,t))}function Fe(e){let{summary:t,children:n,...o}=e;const r=(0,re.Z)(),l=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,j.u)({initialState:!o.open}),[i,d]=(0,a.useState)(o.open),m=a.isValidElement(t)?t:a.createElement("summary",null,t??"Details");return a.createElement("details",(0,k.Z)({},o,{ref:l,open:i,"data-collapsed":c,className:(0,De.Z)(Re.details,r&&Re.isBrowser,o.className),onMouseDown:e=>{We(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;We(t)&&$e(t,l.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),m,a.createElement(j.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:Re.collapsibleContent},n)))}const qe={details:"details_b_Ee"},Ge="alert alert--info";function Ye(e){let{...t}=e;return a.createElement(Fe,(0,k.Z)({},t,{className:(0,d.Z)(Ge,qe.details,t.className)}))}function Je(e){return a.createElement(ne.Z,e)}const Qe={containsTaskList:"containsTaskList_mC6p"};const Xe={img:"img_ev3q"};const Ke="admonition_LlT9",et="admonitionHeading_tbUL",tt="admonitionIcon_kALy",nt="admonitionContent_S0QG";const at={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},ot={secondary:"note",important:"info",success:"tip",warning:"danger"};function rt(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=a.Children.toArray(e),n=t.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:o}}(e.children);return{...e,title:e.title??t,children:n}}const lt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...o}=e.props;return a.createElement(e.props.originalType,o)}return e}(e):e));return a.createElement(oe.Z,e,t)},code:function(e){const t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(Ve,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){return a.createElement(Ve,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),o=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ye,(0,k.Z)({},e,{summary:n}),o)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,d.Z)(t,t?.includes("contains-task-list")&&Qe.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,d.Z)(t,Xe.img))}));var t},h1:e=>a.createElement(Je,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(Je,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(Je,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(Je,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(Je,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(Je,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:o,icon:r}=rt(e),l=function(e){const t=ot[e]??e,n=at[t];return n||(console.warn(`No admonition config found for admonition type "${t}". Using Info as fallback.`),at.info)}(n),c=o??l.label,{iconComponent:s}=l,i=r??a.createElement(s,null);return a.createElement("div",{className:(0,d.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,Ke)},a.createElement("div",{className:et},a.createElement("span",{className:tt},i),c),a.createElement("div",{className:nt},t))},mermaid:()=>null};function ct(e){let{children:t}=e;return a.createElement(ae.Zo,{components:lt},t)}function st(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(ne.Z,{as:"h1"},n)),a.createElement(ct,null,t))}var it=n(3899);const dt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function mt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),o=e.hide_table_of_contents,r=!o&&t.length>0;return{hidden:o,mobile:r?a.createElement(J,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(te,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&dt.docItemCol)},a.createElement(f.Z,null),a.createElement("div",{className:dt.docItemContainer},a.createElement("article",null,a.createElement(it.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(st,null,t),a.createElement(A,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function ut(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(o.FG,{className:t},a.createElement(i,null),a.createElement(mt,null,a.createElement(n,null))))}},9473:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(7462),o=n(7294),r=n(7325),l=n(4334),c=n(3699);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return o.createElement(c.Z,{className:(0,l.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&o.createElement("div",{className:"pagination-nav__sublabel"},a),o.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return o.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&o.createElement(s,(0,a.Z)({},t,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&o.createElement(s,(0,a.Z)({},n,{subLabel:o.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7294),o=n(4334),r=n(7325),l=n(3702),c=n(8801);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,o.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},5350:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(7294),o=n(4334),r=n(9962),l=n(3699),c=n(7325),s=n(9871),i=n(3702),d=n(6409),m=n(8801);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:o}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.Z,{to:n,onClick:o},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=u??(b=h).docs.find((e=>e.id===b.mainDocId));var b;return a.createElement("div",{className:(0,o.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>m(h.name)})))}function g(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},8207:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var a=n(7462),o=n(7294),r=n(4334),l=n(7325),c=n(107),s=n(3699);const i={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function d(e){let{as:t,id:n,...d}=e;const{navbar:{hideOnScroll:m}}=(0,c.L)();if("h1"===t||!n)return o.createElement(t,(0,a.Z)({},d,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return o.createElement(t,(0,a.Z)({},d,{className:(0,r.Z)("anchor",m?i.anchorWithHideOnScrollNavbar:i.anchorWithStickyNavbar,d.className),id:n}),d.children,o.createElement(s.Z,{className:"hash-link",to:`#${n}`,"aria-label":u,title:u},"\u200b"))}},7594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,o,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a<r?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(r+=e);for(let t=a;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/zh/assets/js/18ade0c5.6468a34d.js b/zh/assets/js/18ade0c5.6468a34d.js deleted file mode 100644 index de0a042f8..000000000 --- a/zh/assets/js/18ade0c5.6468a34d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/zh/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/zh/unraid-os/manual/getting-started/"},next:{title:"Security",permalink:"/zh/unraid-os/manual/security"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/18ade0c5.657518ee.js b/zh/assets/js/18ade0c5.657518ee.js new file mode 100644 index 000000000..900f017c4 --- /dev/null +++ b/zh/assets/js/18ade0c5.657518ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{4137:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=u(n),c=r,f=p["".concat(s,".").concat(c)]||p[c]||d[c]||o;return n?a.createElement(f,l(l({ref:t},m),{},{components:n})):a.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var u=2;u<o;u++)l[u]=n[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5691:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(4137));const o={},l="Manual Install Method",i={unversionedId:"unraid-os/manual/getting-started/manual-install-method",id:"unraid-os/manual/getting-started/manual-install-method",title:"Manual Install Method",description:"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,",source:"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/manual-install-method",permalink:"/zh/unraid-os/manual/getting-started/manual-install-method",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/zh/unraid-os/manual/getting-started/"},next:{title:"Tools",permalink:"/zh/unraid-os/manual/tools"}},s={},u=[],m={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"manual-install-method"},"Manual Install Method"),(0,r.kt)("p",null,"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,\nit is possible to manually format and prepare a bootable USB flash device.\n",(0,r.kt)("strong",{parentName:"p"},"Note: this method only works for devices 32GB and ",(0,r.kt)("em",{parentName:"strong"},"smaller"),".")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Plug the USB flash device into your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"Format the device using the FAT32 file system. It must ",(0,r.kt)("strong",{parentName:"li"},"not")," be\nex-FAT or NTFS. If your drive is larger than 32GB then you need to use\na 3rd party tool (e.g. Rufus) to format it to FAT32 as Windows will\nnot give this as an option on drives larger than 32GB."),(0,r.kt)("li",{parentName:"ul"},"Set the \u2018volume label\u2019 to ",(0,r.kt)("inlineCode",{parentName:"li"},"UNRAID")," (case-sensitive, use all caps)."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://lime-technology.com/download/"},"Go to the downloads page.")," to\nget the zip file for the release you want to use."),(0,r.kt)("li",{parentName:"ul"},"Choose a version and download it to a temporary location on your\ncomputer (e.g. a \u201cdownloads\u201d folder)."),(0,r.kt)("li",{parentName:"ul"},"Extract the contents of the newly downloaded ZIP file onto your USB\nflash device."),(0,r.kt)("li",{parentName:"ul"},"Browse to the USB flash device to see the newly extracted contents\nfrom your Mac or PC."),(0,r.kt)("li",{parentName:"ul"},"If you need to enable UEFI boot, rename the ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI-")," directory to ",(0,r.kt)("inlineCode",{parentName:"li"},"EFI")),(0,r.kt)("li",{parentName:"ul"},"Run the ",(0,r.kt)("em",{parentName:"li"},"make bootable")," script appropriate to the OS you are using:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows XP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Windows 7 or later"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"right-click the ",(0,r.kt)("strong",{parentName:"li"},"make_bootable")," file and select ",(0,r.kt)("em",{parentName:"li"},"Run as\nAdministrator"),"."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Mac"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"double-click the file ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_mac")," file and enter your\nadmin password when prompted."))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Linux"),":",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"copy ",(0,r.kt)("strong",{parentName:"li"},"make_bootable_linux")," file to hard drive"),(0,r.kt)("li",{parentName:"ul"},"unmount (not eject) USB drive"),(0,r.kt)("li",{parentName:"ul"},"run the following command from wherever you unpacked it to on your\nLinux system:"),(0,r.kt)("li",{parentName:"ul"},"sudo bash ./make_bootable_linux")))))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"NOTE"),": during the process of running this script, the flash device\nmay seem to disappear and reappear on your workstation a few times \u2013\nthis is expected behavior."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/1942e1e1.d09eaa07.js b/zh/assets/js/1942e1e1.afa4e387.js similarity index 64% rename from zh/assets/js/1942e1e1.d09eaa07.js rename to zh/assets/js/1942e1e1.afa4e387.js index 887fe15e0..f6dbb8f6c 100644 --- a/zh/assets/js/1942e1e1.d09eaa07.js +++ b/zh/assets/js/1942e1e1.afa4e387.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/zh/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/zh/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/zh/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/security#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1317],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=o,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var d=2;d<r;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6932:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(7462),o=(n(7294),n(4137));const r={},i="Additional Settings",s={unversionedId:"unraid-os/manual/additional-settings",id:"unraid-os/manual/additional-settings",title:"Additional Settings",description:"While Unraid is configured to work automatically, you may wish to",source:"@site/docs/unraid-os/manual/additional-settings.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/additional-settings",permalink:"/zh/unraid-os/manual/additional-settings",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Troubleshooting",permalink:"/zh/unraid-os/manual/troubleshooting"},next:{title:"Changing the Flash Device",permalink:"/zh/unraid-os/manual/changing-the-flash-device"}},l={},d=[{value:"CPU Isolation",id:"cpu-isolation",level:2},{value:"Date & Time",id:"date--time",level:2},{value:"Disk Settings",id:"disk-settings",level:2},{value:"Docker",id:"docker",level:2},{value:"Identification",id:"identification",level:2},{value:"Network Settings",id:"network-settings",level:2},{value:"Global Share Settings",id:"global-share-settings",level:2},{value:"UPS Settings",id:"ups-settings",level:2},{value:"VM Manager",id:"vm-manager",level:2},{value:"AFP (Apple File Protocol)",id:"afp-apple-file-protocol",level:2},{value:"NFS (Network File System)",id:"nfs-network-file-system",level:2},{value:"SMB (Server Message Block)",id:"smb-server-message-block",level:2},{value:"FTP (File Transfer Protocol)",id:"ftp-file-transfer-protocol",level:2},{value:"Syslog",id:"syslog",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Confirmations",id:"confirmations",level:2},{value:"Display Settings",id:"display-settings",level:2},{value:"Notifications Settings",id:"notifications-settings",level:2},{value:"Scheduler",id:"scheduler",level:2},{value:"Parity Checks (Read Checks)",id:"parity-checks-read-checks",level:3},{value:"Notes",id:"notes",level:4},{value:"Mover",id:"mover",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Other",id:"other",level:3}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"additional-settings"},"Additional Settings"),(0,o.kt)("p",null,"While Unraid is configured to work automatically, you may wish to\nfurther refine your setup by customizing your IP address, hostname, disk\ntunables, and other settings. This section goes over the various\nsettings you can configure from the Unraid webGui. All settings controls\ncan be found under the ",(0,o.kt)("em",{parentName:"p"},"Settings")," tab on the Unraid task bar unless\notherwise specified."),(0,o.kt)("p",null,"The Unraid GUI has extensive online help built-in that can help with\nchoosing appropriate values for the settings that are available. This\nhelp can ban be displayed for specific fields by clicking on the prompt\nfor that field. It can also be toggled on/off for all fields on a page\nby clicking on the ",(0,o.kt)("strong",{parentName:"p"},"Help"),"\nicon at the top right of each page."),(0,o.kt)("h2",{id:"cpu-isolation"},"CPU Isolation"),(0,o.kt)("p",null,"CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers).\nThis is incredibly important for gaming VMs to run smoothly because even if you manually pin your Docker containers to not overlap with your gaming VM, the host OS can still utilize those same cores as the guest VM needs for things like returning responses for the webGui, running a parity check, btrfs operations, etc."),(0,o.kt)("p",null,"So, when you pin a core to a VM or Docker, that core is allocated to the VM/Docker, but the unRAID OS may still access it and use it for various tasks."),(0,o.kt)("p",null,"When you isolate a core, it is no longer accessible even by unRaid for routine tasks and should therefore be 100% dedicated to wherever it's pinned."),(0,o.kt)("p",null,"You can pin cores without requiring a system restart. You must restart your unRaid server to effect any isolation changes."),(0,o.kt)("h2",{id:"date--time"},"Date & Time"),(0,o.kt)("p",null,"From this page, you can set your time zone and toggle the use of up to 3\nNTP servers. It is recommended that you adjust Unraid to your time zone\nfor accurate timekeeping."),(0,o.kt)("h2",{id:"disk-settings"},"Disk Settings"),(0,o.kt)("p",null,"You can configure additional settings for your disk devices from this\npage. Enable your array to auto-start on boot, adjust disk spin-down\ntimers, and even adjust advanced driver settings such as SMART polling\nfrequency."),(0,o.kt)("h2",{id:"docker"},"Docker"),(0,o.kt)("p",null,"Docker containers allow users to add a variety of pre-configured Linux\napplications to their systems. See the ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/docker-management"},"Docker\nManagement")," page for more\ninformation on setting up applications using Docker."),(0,o.kt)("h2",{id:"identification"},"Identification"),(0,o.kt)("p",null,"Unraid automatically uses the hostname of ",(0,o.kt)("inlineCode",{parentName:"p"},"tower"),", but you can adjust\nthat from this page. You can also give your system a description / model\nnumber (useful for system builders). In addition, this page also allows\nyou to enable or disable SSL support, change what port the webGui uses,\nand even provision an SSL certificate for your server."),(0,o.kt)("h2",{id:"network-settings"},"Network Settings"),(0,o.kt)("p",null,"By default, Unraid will attempt to get an IP address from a DHCP server\npresent on your local network (typically by your router). From this\npage, you can configure a static IP address, set up bonding / bridging,\nor other options. Setting a static IP is recommended, but not required\nto use Unraid."),(0,o.kt)("h2",{id:"global-share-settings"},"Global Share Settings"),(0,o.kt)("p",null,"As described earlier, user shares can vastly simplify how content can be\norganized and accessed across multiple disks in the array. You can\nspecify what disks are allowed to participate in user shares (global\ninclusion/exclusion) and if a cache device/pool is present, you can\nconfigure its use with user shares from here."),(0,o.kt)("h2",{id:"ups-settings"},"UPS Settings"),(0,o.kt)("p",null,"Unraid can be connected to an APC UPS (uninterruptable power supply) so\nthat in the event of a power loss, the system can be commanded to shut\ndown while being supplied power through a battery. From this page, you\ncan configure the connection to your specific UPS and define policies\nfor when the shutdown command should be issued. For a complete manual,\nvisit: ",(0,o.kt)("a",{parentName:"p",href:"http://apcupsd.org/manual/manual.html"},"http://apcupsd.org/manual/manual.html")),(0,o.kt)("h2",{id:"vm-manager"},"VM Manager"),(0,o.kt)("p",null,"Virtual machines can be used to turn your server into a desktop, a media\nplayer, or just to run applications that weren't designed for Linux.\nSee ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-management"},"VM Management")," and ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-support"},"VM Guest\nSupport")," for more information on\ncreating and managing VMs on Unraid."),(0,o.kt)("h2",{id:"afp-apple-file-protocol"},"AFP (Apple File Protocol)"),(0,o.kt)("p",null,"From this page you can enable user shares for use with the Apple File\nProtocol, allowing them to be used as valid Time Machine backup targets\nfor your Mac OS X devices."),(0,o.kt)("h2",{id:"nfs-network-file-system"},"NFS (Network File System)"),(0,o.kt)("p",null,"NFSv4 support has been included in Unraid 6. You can enable or disable\nits use with user shares from this page, as well as adjust the\n",(0,o.kt)("inlineCode",{parentName:"p"},"fuse_remember")," tunable which can help with resolving ",(0,o.kt)("em",{parentName:"p"},"NFS Stale File\nHandles")," error messages."),(0,o.kt)("h2",{id:"smb-server-message-block"},"SMB (Server Message Block)"),(0,o.kt)("p",null,"The SMB protocol is the standard used by Microsoft Windows-based\nclients. From this page, you can enable its use, define a Windows\nworkgroup, or even join an active directory domain."),(0,o.kt)("h2",{id:"ftp-file-transfer-protocol"},"FTP (File Transfer Protocol)"),(0,o.kt)("p",null,"Users can connect via FTP if they are added to the ",(0,o.kt)("strong",{parentName:"p"},"FTP user(s)")," field\non this page. If no users are added, the FTP service will not be\nstarted."),(0,o.kt)("h2",{id:"syslog"},"Syslog"),(0,o.kt)("p",null,"Users can set up logging of the syslog to permanent storage"),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("p",null,"WireGuard VPN Server"),(0,o.kt)("p",null,"Users can set up a VPN connection using\n",(0,o.kt)("a",{parentName:"p",href:"security.md#wireguard%22"},"WireGuard")," for secure connections\nto/from the internet"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')),(0,o.kt)("h2",{id:"confirmations"},"Confirmations"),(0,o.kt)("p",null,"From here, you can disable the need for confirmations to perform various\ntasks."),(0,o.kt)("h2",{id:"display-settings"},"Display Settings"),(0,o.kt)("p",null,"Customize the appearance of the Unraid webGui from this page. This\nincludes adjusting the date and time format, number format, toggles for\ntabbed/non-tabbed view modes, temperature unit, and much more. You can\nalso toggle between various themes for how the UI itself is presented."),(0,o.kt)("h2",{id:"notifications-settings"},"Notifications Settings"),(0,o.kt)("p",null,"Browser and e-mail-based system notifications can be configured from\nthis page. You can subscribe to different types of notifications for\neach method and even add custom alerts for SMART values attribute\nmonitoring."),(0,o.kt)("h2",{id:"scheduler"},"Scheduler"),(0,o.kt)("p",null,"The scheduler settings page presents a standard view to configure the\nfrequency for two types of automated system tasks: parity checks and the\ncache mover."),(0,o.kt)("h3",{id:"parity-checks-read-checks"},"Parity Checks (Read Checks)"),(0,o.kt)("p",null,"The parity disk contents need to be correct for Unraid to be able to\nrecover a failed drive successfully without any data loss or corruption.\nThe purpose of a Parity Check is to confirm that the data on the array\ndata drives is consistent with that held on the parity disk(s). ",(0,o.kt)("strong",{parentName:"p"},"Parity\nis updated in real-time")," during normal Unraid use so one should only\nexpect there to be any mismatch between the parity calculated from\nreading the data drives and that actually present on the parity\ndrives(s) if there have been any system events such as an unclean\nshutdown or if there have been write errors reported."),(0,o.kt)("p",null,"It is recommended that Parity Checks are run at regular intervals as\npart of normal system maintenance. You do not want to do this too\nfrequently as the check can adversely affect system performance while it\nis running (typical frequencies used are ",(0,o.kt)("strong",{parentName:"p"},"monthly")," or ",(0,o.kt)("strong",{parentName:"p"},"quarterly"),").\nIt is recommended that such checks are run as ",(0,o.kt)("strong",{parentName:"p"},"non-correcting")," so that\nif a data drive is playing up for any reason you do not corrupt the\nparity. ",(0,o.kt)("strong",{parentName:"p"},"Correcting")," parity checks do have to be run if any problem\nhas been identified (and corrected) to get parity disk contents to once\nagain be consistent with the contents of the data drives and this can be\ndone manually from the ",(0,o.kt)("em",{parentName:"p"},"Main")," page in the Unraid GUI."),(0,o.kt)("h4",{id:"notes"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The only acceptable number of errors reported by a parity check\nis 0. If you get any other result then you need to look into why\nthis has happened as it can compromise Unraid's ability to recover\nfailed drives without any data corruption/loss."),(0,o.kt)("li",{parentName:"ul"},"If you do not have a parity disk present in the system then this\noption will run a Read-Check which simply involves reading through\nall the data drives to ensure they can be read without error. This\nis still a useful maintenance function as any read errors need to be\ninvestigated as they could lead to problems later,")),(0,o.kt)("h3",{id:"mover"},"Mover"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Mover")," is used to handle the automated transfer of data belonging to\nUser Shares between a cache pool and the main array. Whether\nit actually moves files and in which direction is controlled by the\nvalue of the ",(0,o.kt)("em",{parentName:"p"},"Use Cache")," setting on each share."),(0,o.kt)("p",null,"The Mover task is normally scheduled to run automatically in the middle\nof the night when the system its likely to be otherwise inactive."),(0,o.kt)("h4",{id:"notes-1"},"Notes"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Mover can never move files off a cache pool as fast as a user can\npotentially write to it. For this reason it is typically recommended\nthat User Shares are set to not use a cache pool during the initial\nload of data into a new Unraid system as this is almost certainly to\nbe more than the cache pool can handle so the benefit is marginal at\nbest. This option should only be enabled when the volume of data on\na daily basis is likely to be less that the cache pool can handle."),(0,o.kt)("li",{parentName:"ul"},"Mover will never move files that are currently open in any\napplication. In particular this can apply to the ",(0,o.kt)("strong",{parentName:"li"},"System")," share if\nthe ",(0,o.kt)("strong",{parentName:"li"},"Docker")," or ",(0,o.kt)("strong",{parentName:"li"},"VM")," services are not disabled as they hold\nfiles in that location open all the time they are running."),(0,o.kt)("li",{parentName:"ul"},"Mover will never moves any files that are found to exist on both a\ncache pool and the main array. In normal use this should not happen\nas files are only meant to exist at one of these locations. However\nit can happen if the user has moved files manually between drives\nthus by-passing Unraid's normal handling of files for User Shares."),(0,o.kt)("li",{parentName:"ul"},"Mover can be run manually by using the Mover button on the Main page\nin the Unraid GUI.")),(0,o.kt)("h3",{id:"other"},"Other"),(0,o.kt)("p",null,"Plugins offered by 3rd parties can add additional sections to the\n",(0,o.kt)("strong",{parentName:"p"},"Scheduler")," settings page of the Unraid GUI. Typically they are\nrelated to enhancing/tuning the ",(0,o.kt)("strong",{parentName:"p"},"Parity Check")," or ",(0,o.kt)("strong",{parentName:"p"},"Mover"),"\nfunctionality although this is not mandated."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/1be78505.010a8141.js b/zh/assets/js/1be78505.010a8141.js deleted file mode 100644 index 2b4555c18..000000000 --- a/zh/assets/js/1be78505.010a8141.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(3734),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/zh/assets/js/1be78505.fe92450b.js b/zh/assets/js/1be78505.fe92450b.js new file mode 100644 index 000000000..758818503 --- /dev/null +++ b/zh/assets/js/1be78505.fe92450b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4248],{1299:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ge});var a=n(7294),l=n(4334),o=n(9488),r=n(3702),c=n(246),i=n(8259),s=n(8801),d=n(4432),m=n(241),u=n(7325),b=n(2957),p=n(3266);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(8986),g=n(6550),k=n(3488),v=n(107),_=n(6811),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var T=n(5830),Z=n(3768);const x=Symbol("EmptyContext"),B=a.createContext(x);function y(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(B.Provider,{value:o},t)}var w=n(4639),L=n(9003),A=n(3699),M=n(1048);function F(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),g=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:_,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(B);if(e===x)throw new Z.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,Z.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?T(!1):(e.preventDefault(),T())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(F,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(j,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var P=n(2735),W=n(4082);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,P.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(W.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function z(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function U(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(z,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function K(e){let{items:t,...n}=e;return a.createElement(y,null,t.map(((e,t)=>a.createElement(U,(0,C.Z)({key:t,item:e,index:t},n)))))}const j=(0,a.memo)(K),G={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",G.menu,c&&G.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(_.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3086),te=n(735);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(j,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,f.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4248),Ee=n(3647);function fe(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ge(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(fe,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4248:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(7325),o=n(9488),r=n(241);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/zh/assets/js/1c36a847.a38a32f2.js b/zh/assets/js/1c36a847.a38a32f2.js new file mode 100644 index 000000000..3a3a02e51 --- /dev/null +++ b/zh/assets/js/1c36a847.a38a32f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5289],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),p=o,m=d["".concat(l,".").concat(p)]||d[p]||h[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},7732:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={sidebar_position:5},i="VPN",s={unversionedId:"unraid-os/manual/security/vpn",id:"unraid-os/manual/security/vpn",title:"VPN",description:"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.",source:"@site/docs/unraid-os/manual/security/vpn.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/vpn",permalink:"/zh/unraid-os/manual/security/vpn",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/vpn.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Flash Drive",permalink:"/zh/unraid-os/manual/security/flash-drive"},next:{title:"Multi-Language Support",permalink:"/zh/unraid-os/manual/multi-language"}},l={},u=[{value:"Router",id:"router",level:2},{value:"OpenVPN",id:"openvpn",level:2},{value:"WireGuard",id:"wireguard",level:2},{value:"Overview",id:"overview",level:3},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:3},{value:"Implementation considerations",id:"implementation-considerations",level:4},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:4},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:4},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:4},{value:"About DNS",id:"about-dns",level:4},{value:"Complex Networks",id:"complex-networks",level:4},{value:"Configurations to avoid",id:"configurations-to-avoid",level:4},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:4},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:3},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:4},{value:"Configuring \u201cVPN tunneled access for Docker\u201d",id:"configuring-vpn-tunneled-access-for-docker",level:4},{value:"Testing the Docker tunnel",id:"testing-the-docker-tunnel",level:5},{value:"Configuring \u201cVPN tunneled access for system\u201d",id:"configuring-vpn-tunneled-access-for-system",level:4},{value:"Testing the System tunnel",id:"testing-the-system-tunnel",level:5},{value:"Support",id:"support",level:3}],c={toc:u},d="wrapper";function h(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"vpn"},"VPN"),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.")),(0,o.kt)("p",null,"If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections."),(0,o.kt)("p",null,"In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki article")),(0,o.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.")),(0,o.kt)("p",null,"There are a wide variety of VPN solutions available both free and commercial."),(0,o.kt)("p",null,"Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet."),(0,o.kt)("p",null,"There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN."),(0,o.kt)("h2",{id:"router"},"Router"),(0,o.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically based on OpenVPN)."),(0,o.kt)("p",null,"Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN."),(0,o.kt)("h2",{id:"openvpn"},"OpenVPN"),(0,o.kt)("p",null,"This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet."),(0,o.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube video")," of use in setting it up."),(0,o.kt)("h2",{id:"wireguard"},"WireGuard"),(0,o.kt)("h3",{id:"overview"},"Overview"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Wireguard logo",src:n(2602).Z,width:"128",height:"128"})),(0,o.kt)("p",null,"Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers."),(0,o.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid boot process."),(0,o.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,o.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN."),(0,o.kt)("li",{parentName:"ul"},"The interface is available under ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")),".")),(0,o.kt)("p",null,"More information about WireGuard can be found on the ",(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard website"),"."),(0,o.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the connection types:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to server"),": Use your phone or computer to remotely access your Unraid server, including:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Unraid administration via the webGUI"),(0,o.kt)("li",{parentName:"ul"},"Access Docker containers, VMs, and network shares as though you were physically connected to the network"))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote access to LAN"),': Builds on "Remote access to server", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server to server access"),": Allows two Unraid servers to connect to each other."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN to LAN access"),': Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Server hub & spoke access"),': Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.'),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"VPN tunneled access"),": Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Remote tunneled access"),": Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.")),(0,o.kt)("p",null,"The following diagram attempts to show these different connection types in a graphical format"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Connection Types",src:n(1998).Z,width:"1000",height:"655"})),(0,o.kt)("h3",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,o.kt)("p",null,"This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network."),(0,o.kt)("h4",{id:"implementation-considerations"},"Implementation considerations"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren\'t around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.'),(0,o.kt)("li",{parentName:"ul"},"This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the ",(0,o.kt)("a",{parentName:"li",href:"#complex-networks"},"Complex Networks")," section."),(0,o.kt)("li",{parentName:"ul"},"Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this ",(0,o.kt)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from SpaceInvaderOne"),"."),(0,o.kt)("li",{parentName:"ul"},"If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port."),(0,o.kt)("li",{parentName:"ul"},"You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at ",(0,o.kt)("a",{parentName:"li",href:"https://www.wireguard.com/install/"},"WireGuard clients"),". Android or iOS make good first client systems because you can get all the details via QR code.")),(0,o.kt)("h4",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -",">",' Management Access and confirm "Use UPnP" is set to Yes'),(0,o.kt)("li",{parentName:"ul"},"On Unraid go to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > VPN Manager")))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Initial setup screen",src:n(5372).Z,width:"969",height:"314"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Give the ",(0,o.kt)("strong",{parentName:"li"},"VPN Tunnel")," a name, for example ",(0,o.kt)("em",{parentName:"li"},"MyHome VPN"),"."),(0,o.kt)("li",{parentName:"ul"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Generate Keypair"),". This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this)."),(0,o.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address."),(0,o.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network."),(0,o.kt)("li",{parentName:"ul"},"Select Apply."),(0,o.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP available",src:n(7098).Z,width:"1000",height:"61"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port forwarding',".",'.." you will need to login to your router and setup the port forward as directed by the note:')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPnP not available",src:n(4546).Z,width:"1000",height:"65"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port."),(0,o.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of your Unraid system shown in the note."),(0,o.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".'))),(0,o.kt)("li",{parentName:"ul"},"Note that after ",(0,o.kt)("strong",{parentName:"li"},"Apply"),', the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.')),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Key icon",src:n(6423).Z,width:"128",height:"128"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.'),(0,o.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Activate switch",src:n(711).Z,width:"562",height:"44"})),(0,o.kt)("h4",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Select ",(0,o.kt)("strong",{parentName:"li"},"Add Peer"),".\n",(0,o.kt)("img",{alt:"Add Peer",src:n(8169).Z,width:"866",height:"284"})),(0,o.kt)("li",{parentName:"ol"},"Give it a name, such as ",(0,o.kt)("em",{parentName:"li"},"MyAndroid"),"."),(0,o.kt)("li",{parentName:"ol"},"For the initial connection type, choose ",(0,o.kt)("em",{parentName:"li"},"Remote access to LAN"),". This will give your device access to Unraid and other items on your network."),(0,o.kt)("li",{parentName:"ol"},'Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)'),(0,o.kt)("li",{parentName:"ol"},'For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.'),(0,o.kt)("li",{parentName:"ol"},"Click Apply.")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.")),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},'It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.')),(0,o.kt)("h4",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer area - Eye icon",src:n(3939).Z,width:"912",height:"108"})),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Peer details popup",src:n(1967).Z,width:"580",height:"694"})),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.'),(0,o.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.")),(0,o.kt)("h4",{id:"about-dns"},"About DNS"),(0,o.kt)("p",null,"Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net."),(0,o.kt)("p",null,'Short names such as "tower" probably won\'t work, nor any DNS entries managed by the router.'),(0,o.kt)("p",null,'To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don\'t forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8'),(0,o.kt)("p",null,'This is particularly important for "Remote tunneled access" mode if the client\'s original DNS server is no longer accessible after all traffic is routed through the tunnel.'),(0,o.kt)("p",null,"Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection."),(0,o.kt)("h4",{id:"complex-networks"},"Complex Networks"),(0,o.kt)("p",null,'The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid\'s IP, and that works fine if you have a simple setup.'),(0,o.kt)("p",null,"However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'In the WireGuard tunnel config, set "Use NAT" to No'),(0,o.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)"),(0,o.kt)("li",{parentName:"ul"},"Gateway / Next Hop: IP address of your Unraid system"),(0,o.kt)("li",{parentName:"ul"},"Distance: 1 (your router may not have this option)"),(0,o.kt)("li",{parentName:"ul"},'If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"'))),(0,o.kt)("li",{parentName:"ul"},"Navigate to ",(0,o.kt)("strong",{parentName:"li"},(0,o.kt)("em",{parentName:"strong"},"Settings > Docker Settings"))," and set ",(0,o.kt)("strong",{parentName:"li"},"Host access to custom networks")," to ",(0,o.kt)("strong",{parentName:"li"},"Enabled"))),(0,o.kt)("h4",{id:"configurations-to-avoid"},"Configurations to avoid"),(0,o.kt)("p",null,"There are some configurations you'll want to avoid, here is how a few key settings interact:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(this is the "simple network" setup assumed by the guide above)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(avoid this config)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and no static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},'(avoid this, if "Use NAT" = No, you really need to add a static route in your router)'))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = disabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - NOT accessible"),(0,o.kt)("li",{parentName:"ul"},"(You've come this far, just set \"Host access to custom networks\" to enabled you're set)"))),(0,o.kt)("li",{parentName:"ul"},'With "Use NAT" = No and "Host access to custom networks" = enabled and static route',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"server and dockers on bridge/host - accessible!"),(0,o.kt)("li",{parentName:"ul"},"VMs and other systems on LAN - accessible!"),(0,o.kt)("li",{parentName:"ul"},"dockers with custom IP - accessible!"),(0,o.kt)("li",{parentName:"ul"},"(woohoo! the recommended setup for complex networks)")))),(0,o.kt)("h4",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,o.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner."),(0,o.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking your work:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},'Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.'),(0,o.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"'),(0,o.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config."),(0,o.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.')),(0,o.kt)("p",null,"A few other ideas:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not wifi). This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR code\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working from\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,o.kt)("li",{parentName:"ul"},"If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection."),(0,o.kt)("li",{parentName:"ul"},'Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.'),(0,o.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance."),(0,o.kt)("li",{parentName:"ul"},'If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.'),(0,o.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.'),(0,o.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|"," 192.168.0.0 to 192.168.255.255)"),(0,o.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot:\n",(0,o.kt)("inlineCode",{parentName:"li"},"/boot/config/wireguard/autostart")),(0,o.kt)("li",{parentName:"ul"},'Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.')),(0,o.kt)("h3",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,o.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum thread")," discussing making an outbound VPN connection using WireGuard"),(0,o.kt)("h4",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,o.kt)("p",null,"Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.vpnjantit.com/free-wireguard"},"VPN Jantit")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://www.ovpn.com/en/wireguard"},"OVPN")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://windscribe.com/"},"Windscribe"))),(0,o.kt)("p",null,"Note that any provider that requires a custom WireGuard client will not work with Unraid."),(0,o.kt)("p",null,"Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see ",(0,o.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you."),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-docker"},"Configuring \u201cVPN tunneled access for Docker\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},'On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"The \u201cPeer type of access\u201d will default to \u201cVPN tunneled access for docker\u201d. There are no settings to change, except perhaps to give it a local name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers"),(0,o.kt)("li",{parentName:"ul"},"Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a \"DNS\" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.")),(0,o.kt)("h5",{id:"testing-the-docker-tunnel"},"Testing the Docker tunnel"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},'The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.'),(0,o.kt)("p",{parentName:"admonition"},"Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel ",(0,o.kt)("em",{parentName:"p"},"before")," the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"When setting up the container, set the \u201cNetwork Type\u201d to \u201cCustom: wg2\u201d (or whatever the name of the tunnel was in the previous step)"),(0,o.kt)("li",{parentName:"ul"},'Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.:\n',(0,o.kt)("inlineCode",{parentName:"li"},"--dns=8.8.8.8"),"\n(if you don't set this, the container may leak your ISP's DNS server)"),(0,o.kt)("li",{parentName:"ul"},"The rest of the defaults should be fine, apply the changes and start the container"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider"),(0,o.kt)("li",{parentName:"ul"},"Also visit ",(0,o.kt)("a",{parentName:"li",href:"https://www.dnsleaktest.com/"},"https://www.dnsleaktest.com/")," and run a test, confirm that it only finds IPs related to the DNS provider you specified."),(0,o.kt)("li",{parentName:"ul"},"Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.")),(0,o.kt)("h4",{id:"configuring-vpn-tunneled-access-for-system"},"Configuring \u201cVPN tunneled access for system\u201d"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,o.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.'),(0,o.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name. Click Apply."),(0,o.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for this type of connection"),(0,o.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,o.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN tunnel.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks."),(0,o.kt)("li",{parentName:"ul"},"Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled."),(0,o.kt)("li",{parentName:"ul"},"Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4")))),(0,o.kt)("h5",{id:"testing-the-system-tunnel"},"Testing the System tunnel"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using Community Applications, install a ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/community/apps?q=Firefox"},"Firefox")," Docker container"),(0,o.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,o.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,o.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should see that your IP address is in the country you selected when you signed up with the provider")),(0,o.kt)("h3",{id:"support"},"Support"),(0,o.kt)("p",null,"The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum thread")," on the original Dynamix WireGuard plugin"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum thread")," covering setting up incoming connections."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum thread")," covering setting up outgoing connections.")),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}h.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/26113f5d.1e37ce86.js b/zh/assets/js/26113f5d.1e37ce86.js new file mode 100644 index 000000000..bda2628ef --- /dev/null +++ b/zh/assets/js/26113f5d.1e37ce86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/zh/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/zh/category/faq"},next:{title:"OS",permalink:"/zh/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/getting-started/"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/26113f5d.fb48086a.js b/zh/assets/js/26113f5d.fb48086a.js deleted file mode 100644 index b42d6cff2..000000000 --- a/zh/assets/js/26113f5d.fb48086a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,f=c["".concat(s,".").concat(p)]||c[p]||h[p]||i;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:r,o[1]=l;for(var d=2;d<i;d++)o[d]=n[d];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},6844:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(7462),r=(n(7294),n(4137));const i={},o="Licensing",l={unversionedId:"unraid-os/faq/licensing-faq",id:"unraid-os/faq/licensing-faq",title:"Licensing",description:'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?',source:"@site/docs/unraid-os/faq/licensing-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/licensing-faq",permalink:"/zh/unraid-os/faq/licensing-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"FAQ",permalink:"/zh/category/faq"},next:{title:"OS",permalink:"/zh/unraid-os/faq/os-faq"}},s={},d=[{value:"Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?",id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates",level:2},{value:"How do I Purchase Unraid?",id:"how-do-i-purchase-unraid",level:2},{value:"How to Redeem a License Activation Code",id:"how-to-redeem-a-license-activation-code",level:2},{value:"How do I Upgrade my Unraid License?",id:"how-do-i-upgrade-my-unraid-license",level:2},{value:"What does "Unlimited" mean for trial and Pro licenses?",id:"what-does-unlimited-mean-for-trial-and-pro-licenses",level:2},{value:"What Happens if my USB Fails? Do I Have to Repurchase a License?",id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license",level:2},{value:"How do I Manually Install my License keyfile to my USB Flash?",id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash",level:2},{value:"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?",id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do",level:2},{value:"How do I determine what registration type (Basic, Plus, or Pro) I have?",id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have",level:2},{value:"Unraid OS Trial",id:"unraid-os-trial",level:2},{value:"Can I Transfer my Trial Key to a New Flash Device?",id:"can-i-transfer-my-trial-key-to-a-new-flash-device",level:3},{value:"How Do I Extend My Unraid Trial?",id:"how-do-i-extend-my-unraid-trial",level:3},{value:"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?",id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that",level:2}],u={toc:d},c="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(c,(0,a.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"licensing"},"Licensing"),(0,r.kt)("h2",{id:"is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates"},'Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?'),(0,r.kt)("p",null,"Unraid OS license pricing is a one-time fee and updates are included."),(0,r.kt)("h2",{id:"how-do-i-purchase-unraid"},"How do I Purchase Unraid?"),(0,r.kt)("p",null,"Unraid OS can be purchased from within the OS via the Tools-",">","\nRegistration page or, in OS version 6.10 and beyond, via the top right\ncorner of the page."),(0,r.kt)("p",null,"You can also purchase a ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"license activation code directly from our\nwebsite")," and redeem the code for a license\nlater when your server is up and running. The activation code will be on\nyour receipt."),(0,r.kt)("h2",{id:"how-to-redeem-a-license-activation-code"},"How to Redeem a License Activation Code"),(0,r.kt)("p",null,"First, buy an activation code via ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"our website.")," Your unique activation code will be listed on your purchase receipt."),(0,r.kt)("p",null,"Next, follow our ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md"},"Getting Started guide")," to set up an Unraid server."),(0,r.kt)("p",null,"Once your server is up and running:"),(0,r.kt)("p",null,"Login to your Unraid server's webgui. (",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"http://tower.local"),' from Mac by default)\nFor Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key."\nSelect the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile.\nIf you have any issues or questions with the above, there is also a walk through video: ',(0,r.kt)("a",{parentName:"p",href:"https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2"},"Activation Code Instructional Video")),(0,r.kt)("h2",{id:"how-do-i-upgrade-my-unraid-license"},"How do I Upgrade my Unraid License?"),(0,r.kt)("p",null,"If you want or need to upgrade your license to a higher tier, upgrades\nare done from within the OS WebGUI via the Tools \u2192 Registration page or\nvia the top right corner of the page."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(2444).Z,width:"780",height:"270"})),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Basic")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"6 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Plus")," allows for up to ",(0,r.kt)("em",{parentName:"p"},"12 attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Unraid Pro")," allows for ",(0,r.kt)("em",{parentName:"p"},"unlimited",(0,r.kt)("sup",null,"2")," attached storage\ndevices",(0,r.kt)("sup",null,"1"),".")),(0,r.kt)("p",null,"License upgrades are priced as follows:"),(0,r.kt)("p",null,"Basic license \u2192 Plus license: ",(0,r.kt)("em",{parentName:"p"},"$39 USD")),(0,r.kt)("p",null,"Basic license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$79 USD")),(0,r.kt)("p",null,"Plus license \u2192 Pro license: ",(0,r.kt)("em",{parentName:"p"},"$49 USD")),(0,r.kt)("sup",null,"1")," ",(0,r.kt)("b",null,"Attached storage devices")," refer to the total number of storage devices you are allowed to have attached to the server before starting the array, not counting the USB Flash boot device. There are _no other limitations_ in the software based on license type.",(0,r.kt)("h2",{id:"what-does-unlimited-mean-for-trial-and-pro-licenses"},'What does "Unlimited" mean for trial and Pro licenses?'),(0,r.kt)("p",null,"Unraid OS Pro supports up to 30 storage devices in the parity-protected\narray (28 data and 2 parity) and up to 35 named pools, of up to 30\nstorage devices in the ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/release-notes/6.9.0#multiple-pools"},"cache\npool(s)"),".\nAdditional storage devices can still be utilized directly with other\nUnraid features such as ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-management"},"Virtual\nMachines")," or the unassigned devices\nplugin."),(0,r.kt)("h2",{id:"what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license"},"What Happens if my USB Fails? Do I Have to Repurchase a License?"),(0,r.kt)("p",null,"If your USB Flash boot device fails, you can ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/changing-the-flash-device"},"transfer\nyour")," license to a new USB\nFlash device initially at any time, and subsequently using the automated\ntransfer system once per 12 months."),(0,r.kt)("p",null,"If you need to make another license transfer before 12 months has\nelapsed, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"you need to contact us")," and we\nwill transfer your license manually. Please provide the old and new USB\nGUIDs ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"with your support ticket.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"IMPORTANT:")," Please ensure you routinely back up your USB device!\nWe recommend using ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," for this."),(0,r.kt)("h2",{id:"how-do-i-manually-install-my-license-keyfile-to-my-usb-flash"},"How do I Manually Install my License keyfile to my USB Flash?"),(0,r.kt)("p",null,"First, ensure you have a recent backup of your USB drive via\nMain-",">","Flash-",">"," Flash Backup."),(0,r.kt)("p",null,"To install the license key manually, first save the key file (.key file)\nto a different PC/Mac."),(0,r.kt)("p",null,"Next:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Shutdown the server, remove the USB flash and install the USB into\nthe other computer."),(0,r.kt)("li",{parentName:"ol"},"Open the USB folder and drag and drop the .key file into the /config\nfolder. Please ensure this is the only .key file present (delete any\nothers)."),(0,r.kt)("li",{parentName:"ol"},"Then, safely eject/remove the flash and reinstall in your server and\nreboot.")),(0,r.kt)("p",null,"Alternately, if your server is running and your flash share is visible\non the network, navigate to the flash share under Network, and drag the\nregistration key file into the config directory. Next, using the webGUI,\n",(0,r.kt)("strong",{parentName:"p"},"Stop")," the array, and then ",(0,r.kt)("strong",{parentName:"p"},"Start")," the array again."),(0,r.kt)("h2",{id:"im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do"},"I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?"),(0,r.kt)("p",null,"The flash device you are trying to use with Unraid OS doesn't have a\nunique ID, and therefore is ineligible for registration. Please obtain a\ndifferent USB flash device for use with Unraid OS. A few brands that\nwork best include Lexar, Samsung, Kingston, or PNY."),(0,r.kt)("h2",{id:"how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have"},"How do I determine what registration type (Basic, Plus, or Pro) I have?"),(0,r.kt)("p",null,"Simple! Navigate to the Tools ",">"," Registration page and you can review\nyour current key type and registration information."),(0,r.kt)("h2",{id:"unraid-os-trial"},"Unraid OS Trial"),(0,r.kt)("h3",{id:"can-i-transfer-my-trial-key-to-a-new-flash-device"},"Can I Transfer my Trial Key to a New Flash Device?"),(0,r.kt)("p",null,"No. Trial registrations are only valid on the USB flash device that\ninitiated the trial. If you wish to purchase a license, you can transfer\nyour Trial configuration to a new flash device and then purchase a\nregistration key, but you cannot continue using a Trial configuration on\na new USB flash device without purchasing."),(0,r.kt)("h3",{id:"how-do-i-extend-my-unraid-trial"},"How Do I Extend My Unraid Trial?"),(0,r.kt)("p",null,"Did you know that you can extend the ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,r.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,r.kt)("p",null,"Next, go to the Tools-",">"," ",(0,r.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up\nwhere you can click for a 15 day extension. Please remember that you are\nonly allotted up to two extensions, each for two weeks. No further\nextensions can be issued thereafter."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")),(0,r.kt)("h2",{id:"im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that"},"I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?"),(0,r.kt)("p",null,"You will need to ",(0,r.kt)("a",{parentName:"p",href:"#how-do-i-purchase-unraid"},"purchase a license either via the Unraid\nwebGui"),"\nor you can ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/pricing"},"purchase an activation code via the\nwebsite"),"."),(0,r.kt)("p",null,"At checkout, you will be presented with three options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Individual"),(0,r.kt)("li",{parentName:"ul"},"Business/Organization"),(0,r.kt)("li",{parentName:"ul"},"OEM")),(0,r.kt)("p",null,"Select 'OEM', enter your purchase details, and then enter your customer\nname and email address in the Customer section. The purchase will be\nmade by you but the license key will be in your customer\u2019s name and sent\nto them. There will also be an invoice download link upon completion of\nthe checkout."),(0,r.kt)("p",null,"For bulk OEM/reseller pricing of 10 licenses or more, ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/contact"},"please contact\nus"),"!"))}h.isMDXComponent=!0},2444:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upgrade-UPC-d534ada6b8281c1c06cc9966594dd258.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/277cf690.325851d5.js b/zh/assets/js/277cf690.325851d5.js new file mode 100644 index 000000000..ac441ffe1 --- /dev/null +++ b/zh/assets/js/277cf690.325851d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9821],{4137:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,y=p["".concat(c,".").concat(m)]||p[m]||d[m]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3593:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var n=r(7462),o=(r(7294),r(4137));const i={sidebar_position:7},a="Security",s={unversionedId:"unraid-os/manual/security/security",id:"unraid-os/manual/security/security",title:"Security",description:"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.",source:"@site/docs/unraid-os/manual/security/security.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/",permalink:"/zh/unraid-os/manual/security/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/security.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/zh/unraid-os/manual/applications"},next:{title:"Good Practices",permalink:"/zh/unraid-os/manual/security/good-practices"}},c={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"security"},"Security"),(0,o.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely."),(0,o.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers."),(0,o.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are safe."),(0,o.kt)("p",null,"There is also a ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum thread")," that discusses this topic."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/313b9001.07647b6e.js b/zh/assets/js/313b9001.07647b6e.js new file mode 100644 index 000000000..58ad1dec4 --- /dev/null +++ b/zh/assets/js/313b9001.07647b6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[559],{4137:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>y});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,o,a=function(e,t){if(null==e)return{};var r,o,a={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=o.createContext({}),l=function(e){var t=o.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):n(n({},t),e)),r},c=function(e){var t=l(e.components);return o.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=l(r),h=a,y=d["".concat(u,".").concat(h)]||d[h]||p[h]||s;return r?o.createElement(y,n(n({ref:t},c),{},{components:r})):o.createElement(y,n({ref:t},c))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,n=new Array(s);n[0]=h;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:a,n[1]=i;for(var l=2;l<s;l++)n[l]=r[l];return o.createElement.apply(null,n)}return o.createElement.apply(null,r)}h.displayName="MDXCreateElement"},3283:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>n,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=r(7462),a=(r(7294),r(4137));const s={sidebar_position:1},n="Good Practices",i={unversionedId:"unraid-os/manual/security/good-practices",id:"unraid-os/manual/security/good-practices",title:"Good Practices",description:"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.",source:"@site/docs/unraid-os/manual/security/good-practices.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/good-practices",permalink:"/zh/unraid-os/manual/security/good-practices",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/good-practices.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/zh/unraid-os/manual/security/"},next:{title:"Securing webGUI connections (SSL)",permalink:"/zh/unraid-os/manual/security/secure-webgui-ssl"}},u={},l=[{value:"#1 Set a strong root password",id:"1-set-a-strong-root-password",level:2},{value:"#2 Review port mappings on your router",id:"2-review-port-mappings-on-your-router",level:2},{value:"#3 Never put your server in your network's DMZ",id:"3-never-put-your-server-in-your-networks-dmz",level:2},{value:"#4 Set security on your shares to private",id:"4-set-security-on-your-shares-to-private",level:2},{value:"#5 Don't expose the flash share, and if you do, make it private",id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private",level:2},{value:"#6 Keep your server up-to-date",id:"6-keep-your-server-up-to-date",level:2},{value:"#7 Use a secure method for remote administration",id:"7-use-a-secure-method-for-remote-administration",level:2}],c={toc:l},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"good-practices"},"Good Practices"),(0,a.kt)("p",null,"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system."),(0,a.kt)("h2",{id:"1-set-a-strong-root-password"},"#","1 Set a strong root password"),(0,a.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the ",(0,a.kt)("strong",{parentName:"p"},"Users")," tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI."),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"There is a plugin available in Community Apps called ",(0,a.kt)("strong",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in."),(0,a.kt)("p",{parentName:"admonition"},"You could also use ",(0,a.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this webpage")," to get a very quick assessment of the strength of any specific password.")),(0,a.kt)("h2",{id:"2-review-port-mappings-on-your-router"},"#","2 Review port mappings on your router"),(0,a.kt)("p",null,"Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk."),(0,a.kt)("p",null,"Here are just a few ports you should be extra careful with when forwarding:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 80"),": Used to access the webGUI without SSL - unless you've rebound access to another port on the ",(0,a.kt)("strong",{parentName:"li"},"Management Access"),' settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you\'re doing. If you want to make the webGUI remotely accessible, install the ',(0,a.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 443"),": Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the ",(0,a.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,a.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin to enable simple, safe, and secure remote access to your Unraid systems."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 445"),": Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a ",(0,a.kt)("a",{parentName:"li",href:"/zh/unraid-os/manual/security/vpn"},"WireGuard VPN")," to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 111/2049:")," Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Ports in the 57xx range:")," These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the ",(0,a.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.")),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.")),(0,a.kt)("h2",{id:"3-never-put-your-server-in-your-networks-dmz"},"#","3 Never put your server in your network's DMZ"),(0,a.kt)("p",null,'We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.'),(0,a.kt)("p",null,"Never, ",(0,a.kt)("em",{parentName:"p"},"ever"),", do this."),(0,a.kt)("h2",{id:"4-set-security-on-your-shares-to-private"},"#","4 Set security on your shares to private"),(0,a.kt)("p",null,"The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares."),(0,a.kt)("h2",{id:"5-dont-expose-the-flash-share-and-if-you-do-make-it-private"},"#","5 Don't expose the flash share, and if you do, make it private"),(0,a.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents."),(0,a.kt)("h2",{id:"6-keep-your-server-up-to-date"},"#","6 Keep your server up-to-date"),(0,a.kt)("p",null,"Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Tools > Update OS"))," to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the ",(0,a.kt)("strong",{parentName:"p"},(0,a.kt)("em",{parentName:"strong"},"Settings > Notifications"))," page."),(0,a.kt)("h2",{id:"7-use-a-secure-method-for-remote-administration"},"#","7 Use a secure method for remote administration"),(0,a.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet."),(0,a.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used."),(0,a.kt)("p",null,"An alternative for making the webGUI remotely accessible is to install the ",(0,a.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/41ecef38.24e0c714.js b/zh/assets/js/41ecef38.5c7ba79d.js similarity index 78% rename from zh/assets/js/41ecef38.24e0c714.js rename to zh/assets/js/41ecef38.5c7ba79d.js index f5a5091eb..b4ada22ab 100644 --- a/zh/assets/js/41ecef38.24e0c714.js +++ b/zh/assets/js/41ecef38.5c7ba79d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1409],{5726:a=>{a.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/zh/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/zh/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Overview","permalink":"/zh/unraid-os/manual/what-is-unraid"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1409],{5726:a=>{a.exports=JSON.parse('{"title":"Manual","slug":"/category/manual","permalink":"/zh/category/manual","navigation":{"previous":{"title":"How To Setup Wake On LAN (WOL) for UNRAID","permalink":"/zh/unraid-os/guides/wol-setup-for-unraid"},"next":{"title":"Shares","permalink":"/zh/unraid-os/manual/shares/"}}}')}}]); \ No newline at end of file diff --git a/zh/assets/js/4caccc33.80b208b9.js b/zh/assets/js/4caccc33.80b208b9.js deleted file mode 100644 index 694fe3125..000000000 --- a/zh/assets/js/4caccc33.80b208b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/zh/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/zh/unraid-os/manual/shares"},next:{title:"VM Support",permalink:"/zh/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/4caccc33.893d9038.js b/zh/assets/js/4caccc33.893d9038.js new file mode 100644 index 000000000..1d5c84d58 --- /dev/null +++ b/zh/assets/js/4caccc33.893d9038.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3967],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=p(n),u=i,m=h["".concat(l,".").concat(u)]||h[u]||d[u]||o;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var p=2;p<o;p++)r[p]=n[p];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9749:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=n(7462),i=(n(7294),n(4137));const o={sidebar_position:5},r="Docker Management",s={unversionedId:"unraid-os/manual/docker-management",id:"unraid-os/manual/docker-management",title:"Docker Management",description:"Docker is a technology that allows users to provide each application",source:"@site/docs/unraid-os/manual/docker-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/docker-management",permalink:"/zh/unraid-os/manual/docker-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/zh/unraid-os/manual/storage-management"},next:{title:"VM Support",permalink:"/zh/unraid-os/manual/vm-support"}},l={},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Concepts in Unraid Docker Implementation",id:"concepts-in-unraid-docker-implementation",level:2},{value:"appdata",id:"appdata",level:3},{value:"Templates",id:"templates",level:3},{value:"Container binaries",id:"container-binaries",level:3},{value:"Adding Applications as Containers",id:"adding-applications-as-containers",level:2},{value:"Community Applications",id:"community-applications",level:3},{value:"Configuring a container",id:"configuring-a-container",level:3},{value:"Network Type",id:"network-type",level:4},{value:"Volume Mappings",id:"volume-mappings",level:4},{value:"Port Mappings",id:"port-mappings",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Container Creation Process",id:"container-creation-process",level:3},{value:"Controlling container auto-start",id:"controlling-container-auto-start",level:2},{value:"Controlling Your Application",id:"controlling-your-application",level:2},{value:"Accessing a Volume Mapping Inside a Container",id:"accessing-a-volume-mapping-inside-a-container",level:2},{value:"Re-Create the Docker image file",id:"re-create-the-docker-image-file",level:2},{value:"Re-Installing Docker Applications",id:"re-installing-docker-applications",level:2},{value:"Docker Custom Networks",id:"docker-custom-networks",level:2},{value:"Starting and stopping Docker containers on a schedule",id:"starting-and-stopping-docker-containers-on-a-schedule",level:2},{value:"Command to start a docker",id:"command-to-start-a-docker",level:3},{value:"Command to stop a docker",id:"command-to-stop-a-docker",level:4},{value:"Other Tips and Tricks",id:"other-tips-and-tricks",level:2}],c={toc:p},h="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(h,(0,a.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"docker-management"},"Docker Management"),(0,i.kt)("p",null,"Docker is a technology that allows users to provide each application\nwith its own isolated operating Linux environment, isolating\ncompatibility or coexistence conflicts with other applications. If you\nwant more information on docker and its underlying technology than is\nprovided in this guide then you should visit the ",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"docker web\nsite"),". There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/57181-docker-faq/page/2/?tab=comments#comment-934358"},"Docker\nFAQ"),"\nin the Unraid forums that covers many commonly asked questions."),(0,i.kt)("p",null,"Using Docker, Unraid can run any Linux application regardless of the\ndistribution format as long as it is available as a Docker container.\nThat means whether an app was written for Ubuntu, CentOS, Arch, Red Hat,\nor any other variant, Unraid can run it. This is accomplished through\nthe use of Docker Containers, which allows each application to be\nprovided with its own isolated operating environment in which it cannot\ncreate software compatibility or coexistence conflicts with other\napplications. This also means that the application is isolated from the\nhosting Unraid system so that it is not affected by new releases of\nUnraid, and conversely, it will not install software components into\nUnraid that might lead to system instability"),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A system up and running with Unraid 6 and you are connected via a\nweb browser to the Unraid webGui"),(0,i.kt)("li",{parentName:"ul"},'A share created called "appdata" that will be used to store\napplication metadata (also often referred to as an application\'s\n',(0,i.kt)("em",{parentName:"li"},"working set"),"). Strictly speaking you could use any name for the\nshare to store application metadata but it is wise to stick to the\nrecommended name as it simplifies any support questions/issues if\nyou conform to the recommended name.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Applications are made available and supported by both the Docker\nand Unraid user communities respectively.")),(0,i.kt)("h2",{id:"concepts-in-unraid-docker-implementation"},"Concepts in Unraid Docker Implementation"),(0,i.kt)("p",null,"There are a number of concepts about the Unraid implementation of Docker\nsupport that you want to make sure you understand as it makes running\nDocker containers much easier."),(0,i.kt)("h3",{id:"appdata"},"appdata"),(0,i.kt)("p",null,'The folder the container puts in appdata contains the "working\nstorage" for the application. By convention the ',(0,i.kt)("strong",{parentName:"p"},"appdata")," share is\nused for this purpose, with each container using a container specific\nsub-folder in this location. This will be the data that the application\nitself uses to keep track of what it is doing. For example, plex keeps\nits library there, which is a database it uses to keep track of all your\nmedia."),(0,i.kt)("h3",{id:"templates"},"Templates"),(0,i.kt)("p",null,"Typically, you will install a new docker by going to the Apps page and\nclicking the download icon on the listing for the docker. This takes you\nto the Add/Edit Container page, a form with many things already filled\nin. The Apps page (Community Applications) fills those in for you based\non a template the docker author has provided. After you make any needed\nchanges or additions and submit the form by clicking the Apply button,\nthe contents of the form, including your changes and additions, is\nstored on the flash drive as a template, which can be used again to edit\nthe docker or even reinstall it exactly as it was, using the\nPrevious Apps feature on the Apps page."),(0,i.kt)("h3",{id:"container-binaries"},"Container binaries"),(0,i.kt)("p",null,"Each container will have its own unique set of binaries that are the\nprograms used within the container. Under Unraid the contents of the\ntemplate form (Add Container) are used to put together the docker run\ncommand with its parameters taken from that form. The docker run command\ndownloads the executable code of the docker and stores that code in the\ndocker.img, then runs the container."),(0,i.kt)("h2",{id:"adding-applications-as-containers"},"Adding Applications as Containers"),(0,i.kt)("p",null,"By default, you will have access to any and all applications that Lime\nTechnology publishes to its public Docker repository. To add them to\nyour system, perform the following steps:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Add Container")," on the ",(0,i.kt)("strong",{parentName:"li"},"Docker")," tab in the webGui."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("em",{parentName:"li"},"Template")," drop-down and select an application."),(0,i.kt)("li",{parentName:"ul"},"Read the description and instructions for using this application."),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Create")," to begin downloading the application to your system\nas a Docker container.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"This method is now deprecated and the recommended way to add all\ncontainers is via Community Applications")),(0,i.kt)("h3",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"To gain access to a wider set of applications, see ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=40262.0"},"this\npost")," in the\nLime Technology forums for information on installing the Community\nApplications plugin. This plugin will allow you to add more applications\nto your system through an app store interface."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The applications available on this store come in multiple forms\n(containers and plugins) and are not directly supported by Lime\nTechnology. Support for community-maintained Docker containers can be\nfound in the ",(0,i.kt)("a",{parentName:"em",href:"https://forums.unraid.net/forum/index.php?board=56.0"},"Docker Containers\nsubforum"),".")),(0,i.kt)("h3",{id:"configuring-a-container"},"Configuring a container"),(0,i.kt)("h4",{id:"network-type"},"Network Type"),(0,i.kt)("p",null,"If the Bridge type is selected, the application's network access will be\nrestricted to only communicating on the ports specified in the port\nmappings section. If the Host type is selected, the application will be\ngiven access to communicate using ",(0,i.kt)("strong",{parentName:"p"},"any port")," on the host that isn't\nalready mapped to another in-use application/service. Generally\nspeaking, it is recommended to leave this setting to its default value\nas specified per application template."),(0,i.kt)("h4",{id:"volume-mappings"},"Volume Mappings"),(0,i.kt)("p",null,"Applications can be given read and write access to files on the host by\nmapping a directory path from the container to a directory path on the\nhost."),(0,i.kt)("p",null,"When looking at the volume mappings section"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The Container volume represents the path from the container that\nwill be mapped."),(0,i.kt)("li",{parentName:"ul"},"The Host path represents the path the Container volume will map to\non your Unraid system."),(0,i.kt)("li",{parentName:"ul"},"The Access Mode specifies what the container can do with the\nfiles/folders to which it has been given access. It is good practice\nto give the most restrictive access that is consistent with the\ncontainer being able to run successfully.")),(0,i.kt)("p",null,"Clicking on the ",(0,i.kt)("strong",{parentName:"p"},"Edit"),' button brings up a dialog allowing you to alter\na volume mapping. Clicking inside the resulting fields provides a\n"picker" that will let you navigate to where the mapping should point.'),(0,i.kt)("p",null,"For applications that are installed via Community Applications (i.e. the\nApps tab) then you are typically provided with many of the settings for\na particular container pre-set to sensible values. You should review\nthese as being what you actually want on your system. Additional\nmappings can be manually created by clicking the ",(0,i.kt)("em",{parentName:"p"},"Add another Path,\nPort, Variable, Label or Device")," option."),(0,i.kt)("p",null,"Note that this means that the path to any particular file/folder can be\ndifferent when viewed from insides the container to that when viewed\nfrom the host level."),(0,i.kt)("p",null,"All applications should require at least one volume mapping to store\napplication metadata (e.g., media libraries, application settings, user\nprofile data, etc.). The expectation is that all dynamic data will be\nconfigured to exist outside the container (although docker does not make\nthis mandatory) so that the docker image file ends up only containing\nall the binaries associated with the docker container and none of the\nvariable data."),(0,i.kt)("p",null,"Most applications will need you to specify additional mappings in order\nfor the application to interact with other data on the system (e.g.,\nwith Plex Media Server, you should specify an additional mapping to give\nit access to your media files). It is important that when naming\nContainer volumes that you specify a path that won't conflict with\nalready existing folders present in the container. If unfamiliar with\nLinux, using a prefix such as \"unraid","_",'" for the volume name is a safe\nbet (e.g., "/unraid_media" is a valid Container volume name).'),(0,i.kt)("p",null,"Special points to note when setting up volume mappings are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Path names are case significant both at the host level and the\ncontainer level."),(0,i.kt)("li",{parentName:"ul"},"Container paths should start with a / character. If this is omitted\nthe path is a relative path so it will not be clear where inside the\ncontainer the path can be found."),(0,i.kt)("li",{parentName:"ul"},"If you are setting up a mapping that will use an Unassigned Device\nat the host level then it is important that you set the Access Mode\nto use one of the Slave access modes. If you do not do this then\ndynamic paths nay not be seen until the docker sub-system is\nrestarted.")),(0,i.kt)("p",null,"Host paths mentioned in a container's volume mappings are created when\nthe container starts if they do not already exist. If you find that you\nget unexpected folders appearing at the Unraid level then this can be a\ngood indication that you have got a container mapping wrong and so the\nfolder gets recreated every time the container is run."),(0,i.kt)("h4",{id:"port-mappings"},"Port Mappings"),(0,i.kt)("p",null,"While applications may internally be configured to talk to a specific\nport by default, we can remap those to different ports on our host with\nDocker."),(0,i.kt)("p",null,"When the network type is set to Bridge, you will be given the option of\ncustomizing what ports the container will use. This means that while\nthree different apps may all want to use port 8000 internally, we can\nmap each app to a unique port at the host level (e.g., 8000, 8001, and\n8002)."),(0,i.kt)("p",null,"When the network type is set to Host, the container will be allowed to\nuse any available port on your system. In this case, it is up to you to\nmake sure that you are not trying to run two containers using the same\nport as they would then interfere with each other."),(0,i.kt)("p",null,"Additional Port mappings can be created, similar to Volume mappings,\nalthough this is not typically necessary when working with containers\nusing templates provided through Community Applications as port mappings\nexpected by the container should already be specified."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"IMPORTANT NOTE: If adjusting port mappings, do ",(0,i.kt)("strong",{parentName:"em"},"not")," modify the\nsettings for the Container port as only the Host port can be adjusted.")),(0,i.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"container-creation-process"},"Container Creation Process"),(0,i.kt)("p",null,"With your network, volume and port mappings and environment variables\nconfigured, you are now ready to create your first Docker container.\nClick the ",(0,i.kt)("strong",{parentName:"p"},"Create")," button and the download process will begin. A few\nthings worth noting while the image is downloading:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"After clicking Create, do not close your browser window or attempt\nto navigate to other tabs using the browser until the download is\ncomplete."),(0,i.kt)("li",{parentName:"ul"},"Initial downloads per template repository may take longer than\nsubsequent downloads per repository."),(0,i.kt)("li",{parentName:"ul"},"When the download process completes, you can click the Done button\nto return to the Docker page and continue adding applications.")),(0,i.kt)("h2",{id:"controlling-container-auto-start"},"Controlling container auto-start"),(0,i.kt)("p",null,"On the Docker page, you can set the Auto-Start option to ",(0,i.kt)("strong",{parentName:"p"},"ON")," for any\ndocker container you want to always be started whenever the Array is\nstarted."),(0,i.kt)("p",null,"The default behavior when starting up the Docker sub-system is to simply\nattempt to start all the Docker containers that are listed on the Docker\ntab to be auto-started as fast as possible in the order they are listed."),(0,i.kt)("p",null,"There are times when the order in which containers are started and their\ntiming with relation to other containers becomes important."),(0,i.kt)("p",null,"Example cases that spring to mind are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Starting a container running a database before any application that\nattempts to use it is started."),(0,i.kt)("li",{parentName:"ul"},"Starting a container that runs a specialist network link (e.g. a\nVPN) before any other container attempts to use it.")),(0,i.kt)("p",null,"You can alter the container start-up behavior from the default in the\nfollowing ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Changing the order"),":")),(0,i.kt)("p",null,"The simplest capability is to simply change the order in which the\ndocker containers are listed on the Docker tab. If you use a mouse\nto click-and-hold on the container name then you will find that you\ncan use drag-and-drop to move the container to another position in\nthe list."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Adding wait times"),":")),(0,i.kt)("p",null,"If simply changing the startup order is not sufficient because some\ncontainers take a while to finish their startup process then you can\nalso add delays into the start-up sequence. You can do this by the\nfollowing steps. - Switch to Advanced View using the toggle at the top right. - A ",(0,i.kt)("em",{parentName:"p"},"wait")," field will appear in the ",(0,i.kt)("em",{parentName:"p"},"AutoStart")," column. It will\ninitially be set to 0 indicating no delay before starting the\nnext container. - Enter a value into the ",(0,i.kt)("em",{parentName:"p"},"wait")," field indicating the delay (in\nseconds) to be used before attempting to start the ",(0,i.kt)("strong",{parentName:"p"},"next"),"\ncontainer in the list. That gives this container time to finish\nits startup process. You may have to do some trial-and-error to\ndetermine what are appropriate values for this wait time."),(0,i.kt)("p",null,"Using these mechanisms should allow you to control the container startup\nprocess to achieve the results that you want."),(0,i.kt)("h2",{id:"controlling-your-application"},"Controlling Your Application"),(0,i.kt)("p",null,"Once the download is complete, the application is started automatically.\nTo interact with your application, we begin by clicking on the icon\nvisible on the Docker page of the Unraid web interface or on the icon\nfor the docker on the dashboard page. Doing so will make a context menu\nappear with multiple options:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(891).Z,width:"286",height:"301"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"WebUI"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Most apps added through Docker will have a web interface that\nyou can access to configure and use them, but not all."),(0,i.kt)("li",{parentName:"ul"},"Clicking this option will launch a new browser tab/window\ndirectly to the application's web interface."),(0,i.kt)("li",{parentName:"ul"},"For apps that do NOT have a web interface, read the description\nwhen adding the container for instructions on how to make use of\nthe app once it's running."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Update"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This option only appears after clicking Check for Updates (if\navailable)."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Start/Stop"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This will toggle the active state of the container."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Logs"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you are having difficulties with your application, useful\ninformation may be present in the application's log."),(0,i.kt)("li",{parentName:"ul"},"Logs for applications are stored separately from Unraid's system\nlog itself."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Edit"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Container settings such as port and volume mappings can be\nchanged by clicking this option."),(0,i.kt)("li",{parentName:"ul"},"Once changes are applied, the container will start\nautomatically, even if it is stopped initially."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Enable/Disable autostart"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Toggling this will change the default behavior of the\napplication when the Docker service is started."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remove"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Allows you to remove either the entire application or just the\ncontainer."),(0,i.kt)("li",{parentName:"ul"},'Removing a container without its "image" will make adding the\napplication again later a much faster process (as it will not\nneed to be redownloaded).')))),(0,i.kt)("h2",{id:"accessing-a-volume-mapping-inside-a-container"},"Accessing a Volume Mapping Inside a Container"),(0,i.kt)("p",null,"One of the first things you will do after your application is running\nwill be to configure it. Configuration typically will involve specifying\nstorage locations from within the application's web interface. When\ndoing so, remember to look for the volume mappings you defined when\nadding your container. For example, if I needed to specify a folder path\nin the BT Sync app that would point to my Media share, I would specify\nthe path of \"/unraid_media\" in the application's interface, as depicted\nbelow."),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2231).Z,width:"1264",height:"559"})),(0,i.kt)("h2",{id:"re-create-the-docker-image-file"},"Re-Create the Docker image file"),(0,i.kt)("p",null,"If for any reason your docker image file gets corrupted it is easy to\nrecreate it from scratch. The commonest cause for this seems to be the\ncase where the docker image file is located on the cache and the cache\nruns out of free space. Probably the next most common cause is when an\nunclean shutdown has occurred for some reason."),(0,i.kt)("p",null,"Since a properly set up docker container stores all its variable data\nexternally to the docker image. The docker image file should only hold\nthe binaries for the container so it is easy to get back to the last\nworking state with the applications in the same state they were before\nthe problem occurred."),(0,i.kt)("p",null,"The steps to recreate the docker image file are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to Settings-",">","Docker in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"No")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstop the docker service"),(0,i.kt)("li",{parentName:"ul"},"Select the option to delete the Docker vdisk file and click apply\n(you can also delete this file manually if you prefer)."),(0,i.kt)("li",{parentName:"ul"},"Check that the location for the docker vdisk file points to where\nyou want the new file to be placed. Note that this setting includes\nthe filename for the vdisk file not just the path to the folder\nwhere it is to be located."),(0,i.kt)("li",{parentName:"ul"},"Check that the amount of space to be allocated to the disk file is\nwhat you want. Unless you are an exceptionally heavy user of docker\napplications the default value is likely to be fine."),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"Enable Docker")," option to ",(0,i.kt)("strong",{parentName:"li"},"Yes")," and click ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to\nstart the docker service. A new vdisk file will be created and\nformatted internally to BTRFS as part of starting the service.")),(0,i.kt)("p",null,"At his point, you will probably want to re-install your applications\nwith the same settings as previously used. This is easily achieved as\ndescribed below."),(0,i.kt)("h2",{id:"re-installing-docker-applications"},"Re-Installing Docker Applications"),(0,i.kt)("p",null,"Every time an application is installed as a docker container then a\ntemplate with the settings used is stored on the flash drive. This\ntemplate will be updated any time you edit the settings for this\ncontainer."),(0,i.kt)("p",null,"If you ever need to re-install an application (perhaps after deleting\nthe docker.img file) with the same settings as you used previously then\nthis can be done by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Apps")," tab in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"Go to the ",(0,i.kt)("strong",{parentName:"li"},"Previous Apps")," section. Any apps you have installed\npreviously that are not currently installed will be displayed."),(0,i.kt)("li",{parentName:"ul"},"Indicate which apps you want to re-install"),(0,i.kt)("li",{parentName:"ul"},"Proceed with the installation and the docker container will be\nre-downloaded and your previous settings applied.")),(0,i.kt)("h2",{id:"docker-custom-networks"},"Docker Custom Networks"),(0,i.kt)("p",null,"For any Docker Custom Networks created, it is necessary to recreate\nthese networks if a vDisk is deleted. They do no persist."),(0,i.kt)("p",null,"Please make note of any Docker Custom Networks before deleting and it is\nnecessary to recreate these network(s) ","*","with the same name(s)","*"," prior\nto re-adding the containers."),(0,i.kt)("p",null,"Normally Docker does not allow Docker containers to directly access the\nsame subnet as the one used by the host. You can allow this under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Docker")," by changing ",(0,i.kt)("strong",{parentName:"p"},"Host access to custom networks")," from\n",(0,i.kt)("strong",{parentName:"p"},"disabled")," to ",(0,i.kt)("strong",{parentName:"p"},"enabled"),"."),(0,i.kt)("h2",{id:"starting-and-stopping-docker-containers-on-a-schedule"},"Starting and stopping Docker containers on a schedule"),(0,i.kt)("p",null,"A number of users have requested a way to start and/or stop their docker\ncontainers on a specified schedule. This is not currently a standard\nfeature of Unraid but is easy to achieve using the ",(0,i.kt)("strong",{parentName:"p"},"User Scripts"),"\nplugin."),(0,i.kt)("p",null,"The basic process is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/"},"User\nScripts"),"\nplugin via the ",(0,i.kt)("em",{parentName:"li"},"Apps")," tab if you do not already have it installed."),(0,i.kt)("li",{parentName:"ul"},"Go to ",(0,i.kt)("em",{parentName:"li"},"Settings -",">"," User Scripts")," to setup and control your scripts."),(0,i.kt)("li",{parentName:"ul"},"Create a new script for each separate time you want to schedule. A\nsingle script can be used to start and/or stop multiple Docker\ncontainers if you want them on the same schedule point."),(0,i.kt)("li",{parentName:"ul"},"Set the schedule at which the script is to be run. If (as is likely)\nthe simple scheduling options available via the dropdown list is not\nsufficient then you can set up a Custom schedule by creating an entry\nin ",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Cron#Overview"},"crontab")," format as\nthis provides far more precise control."),(0,i.kt)("li",{parentName:"ul"},"Hit ",(0,i.kt)("strong",{parentName:"li"},"Apply")," to activate the new script together with its schedule.")),(0,i.kt)("h3",{id:"command-to-start-a-docker"},"Command to start a docker"),(0,i.kt)("p",null,"In most cases this is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0start\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab. This starts an existing docker container that you have previously\nset up."),(0,i.kt)("p",null,"You can also see the ",(0,i.kt)("em",{parentName:"p"},"container-name")," in the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command that\nUnraid uses to both create a container (if it does not exist) and also\nstart it with the parameters provided via the docker template for that\ncontainer. The ",(0,i.kt)("em",{parentName:"p"},"container-name")," is that provided via the ",(0,i.kt)("em",{parentName:"p"},"name"),"\nparameter to the ",(0,i.kt)("em",{parentName:"p"},"docker run")," command. You can see the ",(0,i.kt)("em",{parentName:"p"},"docker run"),"\ncommand that Unraid will use when you install / edit the application\n(you can always make any change and then change it back and hit Apply to\nget the docker run command to appear). The following is an example of\nwhat this might look like:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5306).Z,width:"1000",height:"55"})),(0,i.kt)("h4",{id:"command-to-stop-a-docker"},"Command to stop a docker"),(0,i.kt)("p",null,"This is the simply a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},'docker\xa0stop\xa0"container-name"')),(0,i.kt)("p",null,"where ",(0,i.kt)("em",{parentName:"p"},"container-name")," is the name you gave the container on the Docker\ntab."),(0,i.kt)("h2",{id:"other-tips-and-tricks"},"Other Tips and Tricks"),(0,i.kt)("p",null,"Using Docker containers to run applications on Unraid is incredibly easy\nand very powerful. Here are some additional tips to improve your\nexperience:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using a cache device or pool for storing your Docker virtual disk\nimage and application data can improve performance."),(0,i.kt)("li",{parentName:"ul"},"Run multiple instances of the same app at the same time, which is\nuseful for testing out alternate versions before upgrading."),(0,i.kt)("li",{parentName:"ul"},"Click the ",(0,i.kt)("strong",{parentName:"li"},"Advanced View")," toggle on the top right when viewing the\nDocker page or adding applications to see additional configuration\noptions."),(0,i.kt)("li",{parentName:"ul"},"Learn more about Docker containers from our ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/47-docker-containers/"},"helpful user\ncommunity"),".")))}d.isMDXComponent=!0},5306:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Docker_run-bd9456c5748e6eaf250adbe6090a8fd8.png"},891:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-controlling-e991c64c34a7a591841aceadff407e63.png"},2231:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Dockerguide-usingvolumes-eeebd412480931feeab950da55aa72b3.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/55054ac6.84d1245d.js b/zh/assets/js/55054ac6.84d1245d.js deleted file mode 100644 index d952750e0..000000000 --- a/zh/assets/js/55054ac6.84d1245d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/zh/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/zh/unraid-os/manual/what-is-unraid"},next:{title:"Shares",permalink:"/zh/unraid-os/manual/shares"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/zh/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/security#data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxUAAAA2CAYAAACxzbQPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAACG2SURBVHhe7Z3fzyPVecf7J+0NN72pb3wTSwFLCb6IJruJ00iuIllVM6RgqDpXVgJGVVyJGhJStbVE46SqCeAt1JHaV1XwLqx3F8zu4gByEnBIcLjwTRwiPX2e82PmzMyZ8bvrF97dN9+PNLLn1znPec6v5znnzMyfEQAAAAAAAAAcAJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAAAAAAAAwEHAqQAAAAAAAAAcBJwKAD5j1uMWtcZrs3coc+q1xnT80NY0brXoZKI/ybBOlnmvQr252SnkdnVnmPeosj/wO0D0WaFKJbsV6Hg9phaf95Wl7XJMUVCjqtxfrVN7sKCtOuOLwxO+CbtSadBwZY4JnHYVZqXH2juMYhmZ7YIGLX2uWmvRYBGfkRtp1K4q2dPZsKZpFJjwAorGK9qZM1k2R11qVPm6bP4Xhp2mVHba0FG3oc7tq+fb5YjaIkdWn6sJh6/lyKU/x4qGDQmjQuE0c52UVZGxEtGRowxpg9RxX/mP70m2ahDReGnCzp7n9DejMdnTcdiezauP7Yy6tQrV+wtzwMHE5c2LkvJ/V1Am+13OjmWvV+ose1ENclnTpF2jWqNDkxucJ7fdpjr9iOjsxBS2oVm/TXVVv6pU4zI8tYJtZtQ37Uu2/uq6besetyPmJulTbDlOtqTeFtXl1SSiwMrQGlBclbfzuI1T7VUsnIjXp3Y9L8O9AJwKAD5jTtSp2NxuIw6nIua2dWc40Y7PxRj8jS5NZjOaxduc1t6+fUfb7Za2uXMrGgUcTtCjyXxOs0GLO64qRcqqNHFEU32v2XJBxE5FhYJR4lUs+twJVqWzO9SpKJNxR0cRx1GPaLJY0CSqUaXWJ2Vybo4oqtep09GGq5sNi36drwtptFjSXMLj/5Nc5u5oNeJzzQ6FYoi7+V8SdpoS2Xd8rlWlZiekBodRVs83RxHV6x3qKCfP1eeC+mxkS/iz5YKGHF6lmnYKUqyGHFeDAjGEQs5Xc1hhDFsxaLRuhS1NQzZWJB9LnIr20JY/NrLqHEa1Q8pnyZ6f9KkpRlOd08Dnd2vWibpvQl3RsVOe556CvBoGTvrYQWLdxro3cfnzoqj8W7aqHJ2a01Eq+93Ohh0FzrvjtI+qrTikPfh0+pEd169qpUYhl9P53JThYMQljMt/h8t+rUtH6y2tp3KdrR9LGsh1rRE7yVtaDLhsVgKSJnCzNOVdbVPqNxP9FNblRZ9qXAaC3oyWiyG1uJ5UoyMuuUa/pr2aRtx2mXhYcIr4ulo4pBm3L2P33D0AnAoAPmPKnApp4AI2bBqNOtVToxoyctvg47zx+ZYaWeFjMppRrfFxvtZcGsNGUjfgcCSseJRGN+CD6Yg6QUCNWo2a8SjNlpZjjl/i4C1gwzOWUkZwQwmrwY2nHTlNdwaSrgb3oFbkGO+99rhJE2/xaJF0Upz2cb/FstSoFvRpvplTv2XkHS60ERxf1+T761RzRnRTToUalbLx2Gs8uvNeJ+gR8HqdddLq0nTULXAqWH8jNiZNehptm39G55MBtY3Og75HT+q6pKPKokbKuLObDmQUnDuu447Upq4zBus+S8fc02w2HXn0iHin03E6TlNmPCNxOXn1YT8pGWfU5f8NO0XCxpl0+krk+Yj6YrnmDLY59ViG5miPLiQvBxNOiUfXhWEzZQaiK/t6yvnMcvvyJhPGfMTlWkUnunP0o5wEZ9bBGCbdmd7Nsho2lNM1V0ZUqA1/i4qzyfnIxoyNWIwWdkI6HTdvHTxpFQMtPubTBcsc8LFaarahvDxrdHnUsnEechgSttrkmImrO5qa0WN22Nx2gs9pHZu4ehNtMLb+hf5VGXhmMzJs5wNq1XQ4tVafZhsJSFix8+rOci1N/bThTtnAbFFNjMIGO1feBIkR2lRhqGukneD/Wk8F9SSb13ydOHyVxpAl4j1n1FzJJWUrR3EdlHPzvk6XONnjlEzp8NWIeJxua5RnZipzcDvKbbTUz3p2pkLyrsv1vyvtuLTPHL/R23bB+aD6uYCd0wn3bfmZCqkXku9daffr3A+EthyJnlu6PQ46NDpiY720jGmSeqbbikpkKpRbjmSgif/HAym+si5wnaxX6mSLe1FdVnXTqZMyKFOpdGmm6qBTX7ZTCnnf234VycDIjEbL9jduvivd9zlvOG/lxuy+lJmSvqo/6HCe6jxRNom6zrUjioFTAcBnTKFTIQ2LMyIpI3i20VmP2DCIG5wNzYYj1YipxsLboMpISC1u9LazLtXaEz4qjQZ3zMOlPqFGRUyjJ8YLG4E2rPWIOwPTuEpj2J6YHng94o5ZRo51AyRJ2bIcjYKG3X+vPt6K07SmUcvIK418NXFWZl3u8EKRnWEddWyjra5rJiM4LENNjUTJX9sIaz10Z6a1laUWdaPjlO6Kr1Oda8eOAOvRT69R7tGfzr8SnacwBkyBHlWHVa1SIxrTbLakjc9w9SDlLRmJ04ZbvdXWRgg7VdpBzWDC7vXFoDWyqmMt6vVkJN/kwXJETTbS2mPOHbOMxRqvOXnVUT8pGbPpivedECTvRD6bDeaaTt8YjUXpiinRdTZswXfMkNavIZsGoSCMrCGSMzTNvj+ftaOnypkZ4UwtgVJxspHQD5PZHj5Wrfaox/XquOnXToV17HzpMEuwUuGVl2eFSVusO6O3OGwTV0UMpvWKnXsxysyobUrHJi4ub+3BlGbzNe1MWY/1tpH2lQ3GgdRDNt65HlfDqSqXapaL216luuWAHSRrMNpw6xRN2RUVY5jD1KPNabQRzvGN2DCXARO5j/dVWgrriZn1suEZY1M71Nrhagzm6pws2atV2/nZt5I6WCqT0UctmtJqK0ZmphwbQzdV73yofHDaZJvfknfSn9liPLL9maS5QSobhBXLb9t7ucfILvVC9Kxvl3tM/8DXB40B6du3NOvVqVpWxoQtl4V4psLMhNa0zKpvrNRYJ5Jukx/tsSoX0obnl4fqMpHIlpCty1mnQu9zeKuMU2HyPd+vsFPI6fPOVGwm1K6xg2LClnTUbTlSumfH1mZddn9PX9WwcqkBHo7D7NFyQj2uB2XsdSo++eQT+uijj2i9XtOvf/3re24TuUV+SQcAdwOFTkUWp4HdTkNuOAc0X5kG3yLX+BpU1SE4hkqMNBru6JPs60ZTGfmuXOwANFXY0rllG1bB3DvnjqTBcWVbWEXRvfnj4jipzlQ6pqbT4KX0JYaCuU+us4aSQhpA7QhI465U59GDOCnqnKu7kuuyetmwPD6nwqs/NeJYrPM0clx3+ulNy6U7rMTpVOnn82VlSU3L8zVJpysjiw1qhAOazmZmaj1jEAsm7N5Mj+rJeSmD0ikfSfoLyxbLaOLKyVtATsZsunzplLwT+awQ5hptfHKJHYiMiVOdJy1rimzYJeT1azhG3liyhogyMMThiw1pyaOCsJRRbtNpjCV3CZRKi6mjZtRZyqkYREcSb0n6c8ufxAiTvPTqx6fPEh1bVFhO3bDlzoZt4orLpxt3SscmLjPCr0k7FareOnFpR0kMPl3GY8OeQ4gdtVy4xWma91j3jgGpw/eVo3QYYmzH9YTTV40NSDOL05RldsuCJZBZ0mFnZVJ12Mik/7t1RNpPvjeeEtP68w6guKh8MOVX/lvdSF7FOmVkX0ecaWtF/6Y9tNeov06+M7ZNz7W/orOyMsbOlFpCqJ4RsZnDuhXnQdLHOmjZ2W9hPaUO612fa1D3KB2ydtSSWQqXbF2OnbrBgtarqa5Hqv8yzkuNHdkVt1dDceh4P6VrdvTM8Tofz3avKv9S10v+mbhFj9l2wNkv76vcMiFlkB3qyZI2xyp/e5yKP/zhD/Thhx8qo/x3v/sdffzxx/fcJnKL/OJgSHoAOG2KnQr9YFk8JSnLc+JGgxuYSZ9CeTjUnZ6XxsLXoLoNfQppNFyDNtmXBrFaM3HHGxs20ujnRmsE3QDVG1Wq1l3j3qXo3vxx0YtKr9sxmeOJvpz7Mte552wHpPUgU/PpdHVk5sTVXcl1ElYqv+S+VGOuyV0X50GxztPIce5Ycs9U6FH+bIelw8/E6bAet1WHVG2PHUMrgxmNjJfGWEzYMnonhmq1d8TGrR5BVflk5YgfqK5SjfUly0MSgyYjrwevjNl0mf38CLxjsBXcU6QbvkDr2ld3smEXUKrfvfEn+PQky0PUcwrVGoXdyMxU2GHGBD3yKfe7W2JE6rRIWdNGTGt8pAxmMdZUvCXpdzd5UDteeePVjzaAJbxEyhIdW2L5zL7RWxx2Ni53P6VjX1zSHiR5oMttkia9Sdz6utw5HUkm3OI05fLRlbWknuh06FkgMfb0aLpGLRNSy7UkbFnaNKRF1ri7nTroyKT14bZDRg9x2sy+SkAJSn4Th/y390tc7r12371eITo1cjj3iOzp2xO53ee8UnFmEYdRlvxUG9SzQ/oqPj6mnPatmX0yz97s+Ho2/O3szWoaUS31wLp5FsLJI5ecvrmXjpfE1ULqRmamQiqJOC8iG8cdcB1vyzVxgmWGQpaNVqnRm8XOgIvKv6osIXP7rA6pRQFFujeInKm2Kc4TJy8smxkNI3ngXcqfu2TQT6FTISP7YohvNhtlmJ+FX3GQMGMBThtpDHzGhhp5iJfZMLOCtfvbpepE1GiCNBa+BrV0psJtNJL93OhFTH5WQSP3yjT2ju+t+9/eUnhv/ni8xCvTSaT1JR2duU+uS41MHm+mIsbVXcl1Mtrn6uW2ZirUjEuxztPIcbdTT5PrsFRHkOkcDLIcTUbQZTq8tA8wTkU8DW8xYUsy1YhrI6CADVy5TBsjWg5lBFXauiNjqUfOw4v5DjZNsYycx2wYpZ+pcEfPGMk7I58itWyEKdGNpkTX2bA97NXv3vgT9umJlayWZ+Srl3YUqt2j+IH77WqsjJPYAVNp0WVNOSAB56NxOlS8d5J+33klY/qh/lIdW1RY+2cqvPspHfvi0kaxzQM9Mt+k/LJ14xB5H1rJhlucprJZgbJ6Yg3VWn+qwk7r0LBb03KiZ8VSzjVTXgeLZdL/3XJlZioSZX86ToV6bsEt71LfTXvo3BO34Qa7f/yZCskrcShaNLSvJhPMcxPJcmKTTlkeLGHx/7gomDJWtUoy7WXczmTYV5dVXqVm1w0mXJu30saKQ9EaJs+4ZFH55+rBpUj3huP3VWnk+Ypa9mUQGQqdChnl/81vfqNG+c/KJumRdAFwmhQ5FdJYJiMVXLnl1ZaqddvSfNilcdyOydsrTGeg1kb6GtTMMwLLgXnmIdtoOPuZdZbbWU89UCxjNKoRso0wN4CdqjScbljcMdf9U8L+ezPHOaxRy9zvdkxqt8SpqASJQeLoIumQMnqQeNpmXXJKd8XXqSns2NmTNHO++BrzjP5knap2tEp0nkKOJwZBllyHZTq8fFmSvOBrayENj5wZjyVbHXxPk++pR2Oax28W8eSbCVsl03R4FZNveaciUA+1y6ieGD0Vs965vIMtkdEu46lHNF0u9duf4pkw88YfjkuMo4g7Yf32KrtO2vM2lQw7ZYAvaSjGV3Oo3vKi3yBUFDYjnbLVxx7ZVRjLodKzPEfjD4PZ6fBlBkiWv0zlPiXIgoaNKnfeI1os5bWToguPISJry0VOZ4lIXIZsx6/idOo3X58YnMn/FFk5s5jzRW9/Sigvz4qCZyoCeR5GDmVlcfdT5d8XlzYWq/LCCQlM1qBL2NymbXby2l8uV4EelFDluCpvC+OSxHqVketIPQyQDbc4TfFSF8/zC2X1RNhM2rzfYF04ZXZ7RN1alUJuhEQVu6WVy83v8rDLZIqfqWCndM1lTz9T4YzKm3p/0DMVbiGK98UZTp6pkH6mfhtOhSrHJt/47sJnKjZsdEvag940qaPqTXrGibQzFfO+qkd1EcikOZ6pmEgYVepYryxbHi1FdXnB5VtmG0cLWspLAljfuk/YqD68qt7wJm0ct1fynJ2o2uSLvP1Nlqha2XNvTss8UyGOQZsdo3LdG47bV8mSrYHz7IjYEXfqVMiovhjhsv32t789E7+ySboAOE20UaYb93iTCr+dUz+Q930HFMjbGLhCd2o1anAHK1OlkXqTk57mjB9C3fE9YoA0hnmjo+TtT4kd6u5zx+K8/Sn1NgnpkPa8/UkaqroYFpm2z3+vPj6OAjNt67zZxO2Y1G7Z8qcBTYZtJXO9nrxdJNUhpd7qxPHY11dkdVd0HUsy7TSoVufjTdZj2dufUm/PkrcMCWU6d5HjXBY8HaSQM9JTRpWDOe4tY4x6Y4hZUiHfQMiuGVaYMPQtWi77cKrrVKSm8LkjXnIHLd9/kJG9nLwue2RMlnRwWFx2C7+RoDajS1Oe5J7se98TjI6zYUi8ZWG7xkSZ7AXn1H1uGGo3f53Ne3fZi6TflxS9Fj9fjlIPh6o47TUyIpyMhKv4fWUtI2eOrJ7YaArCoeeZqvLyrNEGXm4wRdItRk5WFnff6LrYqbBLSDgs9ZIKPhK//UnrNXmZkvv2pxq3r3YNezbcsjSJo2LetCR55r5pqaSeKKzjnllWsz7qJsuf1PcUPG+NKw3bJ1MyM1T0TQZBOyT2Wkm3r81iVD7cjlOhy3dT+jZuJ9uD4rc/pW+3+3pJUa1m3sY3Y2fLkx/e+mXqQvo7M1x+47Zat4/2GxFZneu2Lz9rWFyX9Zuq1JI0kz+xnKpPt7p3+kVTxrNbfvDItOWmv2m47USJ7jXH7auSN22l4yguD4VOhX3QWYzws/QrGwDgDOB2YACAexLlHDlvCfpTQ2bO9AzDp/VNjR3t1EDPRo3ql37zJMY8O+C0r9tp3+9UfObsaLMSc12znXbyyzfBqbHXqbBvfTorv7IBAM4AcCoAuPcxr0H1P5N11jEzHzKK3d3z/NOdIDN+7boekectNetXgnxRO/2A8o6Out1jOCOfBXr2RY2cyyy8O6MOTp1Sp+L999+nDz744Ez9wqkAAAAAAADgZCl1Kn71q1+duQ1OBQAAAAAAACdLqVPxi1/8gn75y1/u/X3lsXP0d6+kj1//wVfpqz+4xvuv0GPnHqNXSu7/LH/hVAAAAAAAAHCylDoVq9XqWNvL7FQ89nL62NVnv0JfefZq6ljR9vJjX6Fnr/rPnfQGpwIAAAAAAICTpdSpeO+99461XXz0HD16MX3syvfZqfj+Ff5/kR499yhdlOOz5+hbX3qAHnhAtq/Td396i6489w2q3HcfVR74a3ruynt066ffpa+r87w9+C16bibh6TCe+O6D9MA3nqanvv4gPaWOy3aLfvytB+ipI7tfvsGpAAAAAAAA4GQpdSreffddeuedd/b+Ttip+POadRbMVrmPLnzvdT4/UQ7BRK6L7qPO2Nx342c0mb5ON955jb534QJ97zU5PqXHaw/Rj2+a8KdPUO2hMd18d0Kdc1V69Pmb6vjN5x+i2uP/bcL5ET304FP0M0eesl84FeDuYUeb5Vx/3Ga+pM1d8WYNAAAAAIDbp9Sp+PnPf36s7aXOOeq8lD52+ZkLdOGZy/z/JXYIOvQSH3vrpcfZ2fgShf/wDI3/55q59jI9w07FM5f5/+Vn6MKFZ+iyDeetEYXVx+kVFUZIo7fs8TGFn5PjHOYoNPGYc3s2OBXgbkA+wqS+Qut83EZeK9j0fdwIAAAAAOAup9SpWC6X9Pbbb+/9ffGRc/TIC+njl54+TxeevsT7L9Aj5x6hF+Lr36T/e/mH9PQjX6QH/v5FevPtS/Q0OxVPX+Lzl56m8+efpks2nMUP2an4Dr28fFGF8aIT/svf+SJ95+UF/TD8S/rnq8nxfb9wKsBps533qC7vDG/2abbaqq8U77YrmvWb6n3i9R4cCwAAAADcW5Q6FTdv3qRbt27t/f3Jw+fo4RfSx2eD83R+8Crvv0APn3uYXrj1Bl18dkD/9Ya57o1/p2+eH9Ds1owG58/TYCbHL9K3q2167roJ5+K36XPf/A+6fvMnKoyfuPH+9B/p/MMPU/uv/o1ed4/v+YVTAU6V3Zx6NXYoomniOCwG1Jnozx6txy12LOrk/Q4UOyPVmvlcvmxtdkpO8stvjhwnhnygrmo/5y8feqol8jcGdLufu9pMOjQ41W9kbWk+bFEt9dG9NU27LWpHXeq02izfXeISiu7ZQb0T1FeOgxGtzP6fDPt0JnWwntTBuN5Ou9RqR9TtcDngApotAVuuW21zT8tzXsLNfel4O6WwUiEljqpH9TjeRhDR1Kn7816HphiJAACcMnudihs3buz9VU7F8+njP/unLyun4saN55VD8Dwfv37xSfry/ffT/Wr7Gj158bq6/uKT99NffO4LvH+Trk169DV7zdeepMk1CS9xKpJ4/5f6XzhHf/PctVS8+37hVIBTRYySSoOGrrXGx1ra6mYW1Benw2fYpK5jtjPqNUKaHuQHbGka9ujOTM99bGga9agXWaeCHarT+AK2GGd3aFxnWU8HNFmx3t10cL40R3ZvRt275Svfd+xUcBlsjWg6avmd27PMHp2J058/zeW6OYrzfMYOpltN2UWjUZMdBmX0b/l8kNcrl6FGEFDH8QzEgQ5DE19WrkWfavE+51eIL8sDAE6fUqdisVjQW2+9dXf+Xv0R/e0XuvTSca83v3AqwGkiRkmlkhjxu+2Wbd4o5SzMuhWqsGGa8xWyTgUj4bXGfGXqnDXeZWYgot6gRcFgQbvFkNrNkLo9ji/oqJFOWYoVVAI2uqe0csJYj0NqtPneqE3N7pGSReLq9AYURhGFbAD15mIASRxZI0qzPYooYktq3nOcilpArWZQMGIrYXVY3og6IV/TGdOU/0dRk+rtiTKaYqOOZW12+xSFfL5Zp7aKQO5PdKuvlfhl1D2k3pQ9ue2CBm1OR7dLnXbXjPbyfWGD2uwARe0mRe4QsJeMc7QaUas702mR/9GRWtKW4A/fjm6LjuPR7e2c+s0m6zhUeaSSZY+xzCHn32gloYsh26U+X6f1Y+Rh4zNstCjiPO71u9TUFultpW/H+RbKCPxmwnLotGwmLGM8i2WMZD7hS4PoPeJy0goGtFhPOX/avM+yB614FkeVLymbEaeh2zSGup3xETl9Mz6+dBg9dLkcSJmxxrU3n/3yFurMU64lbfVmi5pqtkDXIaWPVpdmKjD5n5lxyJQXCSNbj1X9HY44DRNT7yWtfZqwY6fFSTsVor84jBXXazVKcWA5AwCAAyl1Kt588827cvvPJz5Pn//8l+mJF694z5dtcCrAabKdhuxUWKNjRdNej3q8jZSBLmzYmGGngo3UHCnHwWCPpc5ZI0YMowYNluawy4wNDXU9X2udHBuGjOyzEW9NyEVfj6yKMRSMzBTLemSMrwJkFoWdAhVD7FSIE2WtrS0dRdllXq4hJ/+bpCcA5H+olndoR4EPsazV2Hi3swNyXdap4D98bcXIatOiYKO5HU5pu2GDrWPTu6Hl0qa8iLSRKPccsWHcYgM5bHdotLR5afCFX6DjlHwGr8wig7Ncxo6Oz3uOTkVHku7bSp/MXNlwNzSx/3dHFNk0sxHbkkhKyknDV+jiMsOy1/tm6RvH19FLfKRuJI7LgvqBvcbgTUdaD4t+XYXl1VmBvF6dFbHTz0ApWA+ByguO4oidEXYmumGbOqOlOpbgzlQQLQfsUNsKYTF1L64r4pyyUHEZFqfCWf4UsBMzNuVMHAwl/4HlDAAADqXUqbh+/Tq98cYbZ+oXTgU4VdhYCCqVvFFhYcOrxecT48rBGB4u61GTQrG2U+es0Zs2stW67kBGjdmRCQNzPV+bdSpyo6LasIkNHH2wZJnIjoNi49qI4zoVLqnwFK682f86jPieY6TXvdY6FfNejVpd7cipbaQfit/Mx9QP2Wli52W495kIG59mw/Eky1ZWNAwSGSy58EV/Mnti5eBNJlJ8ukofs3GnZbDXpK518ujY6ZPZCfe5nUZNz1pwnh5F7OSxjLFBWpCGdDmZsjMiMwZ8nh0fvWQnLbu9Xn6DMAmrJ7Nn5hpLPh3+sLz5fBydl5brLCZuZcwnz0ithjKLZ3YMUvdajRa1ZQamF3LZzdRvW54XfWqxklcjrj+uLnNysdNVl3ImTllS3g4pZwAAcCilTsW1a9fO3AanApwushynTpVqk/rx7IRhc0RRvUIVMRbi4VCHlCHNbNhgq5tRWj4Xr+sXQ0IZWmkje96zI/9iO7ZNWGwYVc01NvzM6KYdyU0bi2XGVzIDI1sYiIHHBqK84SoeJZeZCm2kJpyEU9ElO8cz71Xja+3os3eEdrOk+doq/DjPRKQN2bRTsaRB1qnwhZ/RscUnX+qY6N3OVDgyJE5FMuouy5j0TMXx07diJzWVrTJD0TQPbIvBO2SjtWX2C9LglhP5H0+6xc8BsOzB0DgMUg50PqVnKjx40+GUX8Y7U2EpkNerMy87Wi/mXI7N7mpITZktyzgVy0HWqeD75Ds06r88U9HKlHsmLs/slEaylEvreK9TIfljZ+wOLGcAAHAopU7FfD4/cxucCnD6sPHbrqpvU1TreuYgatfV62QrdbtO24MYx+4ocst5+9NuTv0gUM87RMM+dZTB5RrmHOtEr2Pv8jXD8YCazZCmbCEdderUbI9p4Rjqsg673emm3mbjdyoSg7+IZFRULxOy8oe5ZSKuvNn/x3Eq+Dw7S/WmPIfRpYFdq789ok69Se0xW1HxWnvRORu8R2xuqWN2LTofs2v1c8b3hiYdkZ3zqqrfYqXe/hPfL888eJ5Z8IbPstq17t0O/w5pKfagWuvO14ZhstZd3S/lJKI2O036dr9TIfming+I2tSxzwd44/flmx39dpEZisC8WEDOV83MhcaXBrec7OZ9CoJQlbnueEQRyzZgZzp+poLzIc4nlsk+U6HK3XCpjWVLUT7JMxXyPETU8jxT4eQz49W5T2de/XCwyxFfa+ofx6uD3dJi0FbPIHXDJjsaUy0Dl1E7Q7aeRvo5jEbBMy1OeZY3b1nnKuVUuG9/4nBUmvi+2KE9tJwBAMCBlDoVV69epddff52uXLlyJn4lPXAqwN3Cejbkzt8aCW02uubaGAF3ARuajrMPXIOTwR25P3TU3Of8AQAAOA0KnYqPPvpIPYPw2muvnZlN0iPpAgAAcHqokftmSJE7sn9HwKkAAIC7hUKn4pNPPqEPPviALl26RJcvXz4Tv5KeP/7xjyaFAAAAAAAAgJOg0KkQfv/739P777+vnkWQkf5XX32VZrPZPfUrcov84lBIegAAAAAAAAAnS6lTIciMxccff0wffviheh7hXttEbpEfMxQAAAAAAAB8Oux1KgAAAAAAAACgDDgVAAAAAAAAgIOAUwEAAAAAAAA4CDgVAAAAAAAAgIOAUwEAAAAAAAA4CDgVAAAAAAAAgAMg+n+9BHyhMaHebwAAAABJRU5ErkJggg=="},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/55054ac6.d4a0c2c6.js b/zh/assets/js/55054ac6.d4a0c2c6.js new file mode 100644 index 000000000..60d5ebd89 --- /dev/null +++ b/zh/assets/js/55054ac6.d4a0c2c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7537],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=h(a),c=i,m=p["".concat(l,".").concat(c)]||p[c]||u[c]||r;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<r;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}c.displayName="MDXCreateElement"},8836:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:3},o="Storage Management",s={unversionedId:"unraid-os/manual/storage-management",id:"unraid-os/manual/storage-management",title:"Storage Management",description:"To assign devices to",source:"@site/docs/unraid-os/manual/storage-management.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/storage-management",permalink:"/zh/unraid-os/manual/storage-management",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/storage-management.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Overview",permalink:"/zh/unraid-os/manual/what-is-unraid"},next:{title:"Docker Management",permalink:"/zh/unraid-os/manual/docker-management"}},l={},h=[{value:"Help! I can't start my array!",id:"help-i-cant-start-my-array",level:2},{value:"Too many disks missing from the array",id:"too-many-disks-missing-from-the-array",level:3},{value:"Too many attached devices",id:"too-many-attached-devices",level:3},{value:"Trial",id:"trial",level:4},{value:"Invalid or missing key",id:"invalid-or-missing-key",level:3},{value:"Missing key",id:"missing-key",level:4},{value:"Expired trial",id:"expired-trial",level:4},{value:"Blacklisted USB flash device",id:"blacklisted-usb-flash-device",level:4},{value:"Cannot contact key-server",id:"cannot-contact-key-server",level:3},{value:"This Unraid Server OS release has been withdrawn",id:"this-unraid-server-os-release-has-been-withdrawn",level:3},{value:"Adding disks",id:"adding-disks",level:2},{value:"Configuring Disks",id:"configuring-disks",level:3},{value:"Clear v Pre-Clear",id:"clear-v-pre-clear",level:3},{value:"Data Disks",id:"data-disks",level:3},{value:"Parity Disks",id:"parity-disks",level:3},{value:"Upgrading parity disk(s)",id:"upgrading-parity-disks",level:3},{value:"Replacing disks",id:"replacing-disks",level:2},{value:"Replacing a disk to increase capacity",id:"replacing-a-disk-to-increase-capacity",level:3},{value:"Replacing failed/disabled disk(s)",id:"replacing-faileddisabled-disks",level:3},{value:"Array Tolerance to Disk Failure Events",id:"array-tolerance-to-disk-failure-events",level:4},{value:"What is a 'failed' (disabled) drive",id:"what-is-a-failed-disabled-drive",level:4},{value:"Normal replacement",id:"normal-replacement",level:4},{value:"Notes",id:"notes",level:5},{value:"Rebuilding a drive onto itself",id:"rebuilding-a-drive-onto-itself",level:4},{value:"Parity Swap",id:"parity-swap",level:4},{value:"Important Notes",id:"important-notes",level:5},{value:"A disk failed while I was rebuilding another",id:"a-disk-failed-while-i-was-rebuilding-another",level:3},{value:"Removing disks",id:"removing-disks",level:2},{value:"Removing parity disk(s)",id:"removing-parity-disks",level:3},{value:"Removing data disk(s)",id:"removing-data-disks",level:3},{value:"Alternative method",id:"alternative-method",level:3},{value:"Notes",id:"notes-1",level:3},{value:"Checking array devices",id:"checking-array-devices",level:2},{value:"Parity check",id:"parity-check",level:3},{value:"Read check",id:"read-check",level:3},{value:"Check history",id:"check-history",level:3},{value:"Spin up and down disks",id:"spin-up-and-down-disks",level:2},{value:"Reset the array configuration",id:"reset-the-array-configuration",level:2},{value:"Notifications",id:"notifications",level:2},{value:"Status Reports",id:"status-reports",level:3},{value:"SMART Monitoring",id:"smart-monitoring",level:2},{value:"Why use a Pool?",id:"why-use-a-pool",level:2},{value:"Cache",id:"cache",level:3},{value:"Docker application Storage",id:"docker-application-storage",level:3},{value:"VM vdisks",id:"vm-vdisks",level:3},{value:"Pool Modes",id:"pool-modes",level:2},{value:"Single device mode",id:"single-device-mode",level:3},{value:"Multi-Device mode",id:"multi-device-mode",level:3},{value:"Backing up the pool to the array",id:"backing-up-the-pool-to-the-array",level:2},{value:"Switching the pool to multi-device mode",id:"switching-the-pool-to-multi-device-mode",level:2},{value:"Adding disks to a pool",id:"adding-disks-to-a-pool",level:2},{value:"Removing disks from a multi-device pool",id:"removing-disks-from-a-multi-device-pool",level:2},{value:"Change Pool RAID Levels",id:"change-pool-raid-levels",level:2},{value:"Replace a disk in a pool",id:"replace-a-disk-in-a-pool",level:2},{value:"Remove a disk from a pool",id:"remove-a-disk-from-a-pool",level:2},{value:"Minimum Free Space for a Pool",id:"minimum-free-space-for-a-pool",level:2},{value:"Moving files between a Pool and the array",id:"moving-files-between-a-pool-and-the-array",level:2},{value:"Moving files from pool to array",id:"moving-files-from-pool-to-array",level:3},{value:"Moving files from array to pool",id:"moving-files-from-array-to-pool",level:3},{value:"Multiple Pools",id:"multiple-pools",level:2},{value:"Moving files between pools",id:"moving-files-between-pools",level:3},{value:"Selecting a File System type",id:"selecting-a-file-system-type",level:2},{value:"Setting a File System type",id:"setting-a-file-system-type",level:2},{value:"Creating a File System (Format)",id:"creating-a-file-system-format",level:2},{value:"Drive shows as unmountable",id:"drive-shows-as-unmountable",level:2},{value:"Checking a File System",id:"checking-a-file-system",level:2},{value:"Preparing to test",id:"preparing-to-test",level:3},{value:"Running the Test using the webGui",id:"running-the-test-using-the-webgui",level:3},{value:"Running the Test using the command line",id:"running-the-test-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs",level:4},{value:"BTRFS",id:"btrfs",level:4},{value:"ZFS",id:"zfs",level:4},{value:"Repairing a File System",id:"repairing-a-file-system",level:2},{value:"Preparing to repair",id:"preparing-to-repair",level:3},{value:"Running the Repair using the webGui",id:"running-the-repair-using-the-webgui",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-1",level:4},{value:"BTRFS",id:"btrfs-1",level:4},{value:"Running the Repair using the command line",id:"running-the-repair-using-the-command-line",level:3},{value:"XFS and ReiserFS",id:"xfs-and-reiserfs-2",level:4},{value:"BTRFS",id:"btrfs-2",level:4},{value:"ZFS",id:"zfs-1",level:4},{value:"Changing a File System type",id:"changing-a-file-system-type",level:2},{value:"Converting to a new File System type",id:"converting-to-a-new-file-system-type",level:2},{value:"Reformatting a drive",id:"reformatting-a-drive",level:2},{value:"Reformatting a cache drive",id:"reformatting-a-cache-drive",level:2},{value:"BTRFS Operations",id:"btrfs-operations",level:2},{value:"Balance",id:"balance",level:3},{value:"Scrub",id:"scrub",level:3},{value:"Array Write Modes",id:"array-write-modes",level:2},{value:"Setting the Write mode",id:"setting-the-write-mode",level:3},{value:"Read/Modify/Write mode",id:"readmodifywrite-mode",level:3},{value:"Turbo write mode",id:"turbo-write-mode",level:3},{value:"Ramifications",id:"ramifications",level:3},{value:"Using a Cache Drive",id:"using-a-cache-drive",level:3},{value:"Read Modes",id:"read-modes",level:2},{value:"(Cache) Pools",id:"cache-pools",level:2}],d={toc:h},p="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"storage-management"},"Storage Management"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4557).Z,width:"1648",height:"859"})),(0,i.kt)("p",null,"To assign devices to\nthe array and/or cache, first login to the server's webGui. Click on\nthe ",(0,i.kt)("strong",{parentName:"p"},"Main")," tab and select the devices to assign to slots for parity,\ndata, and cache disks. Assigning devices to Unraid is easy! Just\nremember these guidelines:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren't limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no disk in the\narray can be larger than your smallest parity device.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be\nimplemented. Using SSDs as data/parity devices may have\nunexpected/undesirable results. This does NOT apply to the cache /\ncache pool. Most modern SSDs will work fine in the array, and even\nNVMe devices are now supported, but know that until these devices\nare in wider use, we only have limited testing experience using them\nin this setting.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Using a cache will improve array performance"),". It does this by\nredirecting write operations to a dedicated disk (or pool of disks\nin Unraid 6) and moves that data to the array on a schedule that you\ndefine (by default, once per day at 3:40AM). Data written to the\ncache is still presented through your user shares, making use of\nthis function completely transparent.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Creating a cache-pool adds protection for cached data"),". If you\nonly assign one cache device to the system, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on\ndata and cache disks), you must assign more than one device to the\ncache function, creating what is called a cache-pool. Cache pools\ncan be expanded on demand, similar to the array.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"SSD-based cache devices are ideal for applications and virtual\nmachines"),". Apps and VMs benefit from SSDs as they can leverage\ntheir raw IO potential to perform faster when interacting with them.\nUse SSDs in a cache pool for the ultimate combination of\nfunctionality, performance, and protection.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Encryption is disabled by default"),". If you wish to use this\nfeature on your system, you can do so by adjusting the file system\nfor the devices you wish to have encrypted. Click on each disk you\nwish to have encrypted and toggle the filesystem to one of the\nencrypted options. Note, however, that using encryption can\ncomplicate recovering from certain types of failure so do not use\nthis feature just because it is available if you have no need for\nit."))),(0,i.kt)("p",null,"Unraid recognizes disks by their serial number (and size). This means\nthat it is possible to move drives between SATA ports without having to\nmake any changes in drive assignments. This can be useful for\ntroubleshooting if you ever suspect there may be a hardware-related\nissue such as a bad port or a think a power or SATA cable may be\nsuspect."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you assign or attach more devices\nthan your license key allows.")),(0,i.kt)("h1",{id:"starting-and-stopping-the-array"},"Starting and stopping the array"),(0,i.kt)("p",null,"Normally following system boot up the array (complete set of disks) is\nautomatically started (brought on-line and exported as a set of shares).\nBut if there's been a change in disk configuration, such as a new disk\nadded, the array is left stopped so that you can confirm the\nconfiguration is correct. This means that any time you have made a disk\nconfiguration change you must log in to the webGui and manually start\nthe array. When you wish to make changes to disks in your array, you\nwill need to stop the array to do this. Stopping the array means all of\nyour applications/services are stopped, and your storage devices are\nunmounted, making all data and applications unavailable until you once\nagain start the array. To start or stop the array, perform the following\nsteps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower"),";\n",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Main")),(0,i.kt)("li",{parentName:"ol"},"Go to the ",(0,i.kt)("em",{parentName:"li"},"Array Operation")," section"),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," or ",(0,i.kt)("strong",{parentName:"li"},"Stop"),' (you may first need to click the "Yes I\nwant to do this" checkbox)')),(0,i.kt)("h2",{id:"help-i-cant-start-my-array"},"Help! I can't start my array!"),(0,i.kt)("p",null,"If the array can't be started, it may be for one of a few reasons which\nwill be reported under the ",(0,i.kt)("em",{parentName:"p"},"Array Operation")," section:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Too many wrong and/or missing disks"),(0,i.kt)("li",{parentName:"ul"},"Too many attached devices"),(0,i.kt)("li",{parentName:"ul"},"Invalid or missing registration key"),(0,i.kt)("li",{parentName:"ul"},"Cannot contact key-server"),(0,i.kt)("li",{parentName:"ul"},"This Unraid Server OS release has been withdrawn")),(0,i.kt)("h3",{id:"too-many-disks-missing-from-the-array"},"Too many disks missing from the array"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many devices missing or incorrectly assigned",src:a(1306).Z,width:"1590",height:"166"})),(0,i.kt)("p",null,"If you have no parity disks, this message won't appear."),(0,i.kt)("p",null,"If you have a single parity disk, you can only have up to one disk\nmissing and still start the array, as parity will then help simulate the\ncontents of the missing disk until you can replace it."),(0,i.kt)("p",null,"If you have two parity disks, you can have up to two disks missing and\nstill start the array."),(0,i.kt)("p",null,"If more than two disks are missing / wrong due to a catastrophic\nfailure, you will need to perform the New Config procedure."),(0,i.kt)("h3",{id:"too-many-attached-devices"},"Too many attached devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that you have too many storage devices attached",src:a(3741).Z,width:"1998",height:"170"})),(0,i.kt)("p",null,"Storage devices are any\ndevices that present themselves as a block storage device EXCLUDING the\nUSB flash device used to boot Unraid Server OS. Storage devices can be\nattached via any of the following storage protocols:\nIDE/SATA/SAS/SCSI/USB. This rule only applies prior to starting the\narray. Once the array is started, you are free to attach additional\nstorage devices and make use of them (such as USB flash devices for\nassignment to virtual machines). In Unraid Server OS 6, the attached\nstorage device limits are as follows:"),(0,i.kt)("p",null,"Attached Storage Device Limits by Registration Key"),(0,i.kt)("hr",null),(0,i.kt)("h4",{id:"trial"},"Trial"),(0,i.kt)("p",null,"Unlimited"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: The attached device limits do NOT refer to how many devices you\ncan assign to the array or cache. Those limits are imposed by the\nsoftware, not the license policy.")),(0,i.kt)("h3",{id:"invalid-or-missing-key"},"Invalid or missing key"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"indication that your key is missing or invalid",src:a(3119).Z,width:"1558",height:"184"})),(0,i.kt)("h4",{id:"missing-key"},"Missing key"),(0,i.kt)("p",null,"A valid registration key is required in order to start the array. To\npurchase or get a trial key, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Log into the Unraid webGui using a browser (e.g. ",(0,i.kt)("a",{parentName:"li",href:"http://tower"},"http://tower")," from\nmost device, ",(0,i.kt)("a",{parentName:"li",href:"http://tower.local"},"http://tower.local")," from Mac devices)"),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Tools")),(0,i.kt)("li",{parentName:"ol"},"Click on ",(0,i.kt)("strong",{parentName:"li"},"Registration")),(0,i.kt)("li",{parentName:"ol"},"Click to ",(0,i.kt)("strong",{parentName:"li"},"Purchase Key")," or ",(0,i.kt)("strong",{parentName:"li"},"Get Trial Key")," and complete the\nsteps presented there"),(0,i.kt)("li",{parentName:"ol"},"Once you have your key file link, return to the ",(0,i.kt)("strong",{parentName:"li"},"Registration")," and\npaste it in the field then click ",(0,i.kt)("strong",{parentName:"li"},"Install Key"),".")),(0,i.kt)("h4",{id:"expired-trial"},"Expired trial"),(0,i.kt)("p",null,'If the word "expired" is visible at the top left of the webGui, this\nmeans your trial key has expired. Visit the registration page to request\neither an extension to your trial or purchase a valid registration key.'),(0,i.kt)("h4",{id:"blacklisted-usb-flash-device"},"Blacklisted USB flash device"),(0,i.kt)("p",null,"If your server is connected to the Internet and your trial hasn't\nexpired yet, it is also possible that your USB flash device contains a\nGUID that is prohibited from registering for a key. This could be\nbecause the GUID is not truly unique to your device or has already been\nregistered by another user. It could also be because you are using an SD\ncard reader through a USB interface, which also tends to be provisioned\nwith a generic GUID. If a USB flash device is listed as blacklisted,\nthis is a permanent state and you will need to seek an alternative\ndevice to use for your Unraid Server OS installation."),(0,i.kt)("h3",{id:"cannot-contact-key-server"},"Cannot contact key-server"),(0,i.kt)("p",null,"This message will only occur if you are using a Trial license. If you\nare using a paid-for license then the array can be started without the\nneed to contact the Unraid license server."),(0,i.kt)("p",null,"If your server is unable to contact our key server to validate your\nTrial license, you will not be able to start the array. The server will\nattempt to validate upon first boot with a timeout of 30 sec. If it\ncan't validate upon first boot, then the array won't start, but each\ntime you navigate or refresh the webGui it will attempt validation again\n(with a very short timeout). Once validated, it won't phone-home for\nvalidation again unless rebooted."),(0,i.kt)("h3",{id:"this-unraid-server-os-release-has-been-withdrawn"},"This Unraid Server OS release has been withdrawn"),(0,i.kt)("p",null,"If you receive this message, it means you are running a beta or release\ncandidate version of Unraid that has been marked disabled from active\nuse. Upgrade the OS to the latest stable, beta, or release candidate\nversion in order to start your array."),(0,i.kt)("h1",{id:"array-operations"},"Array operations"),(0,i.kt)("p",null,"There are a number of operations you can perform against your array:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace disks"),(0,i.kt)("li",{parentName:"ul"},"Remove disks"),(0,i.kt)("li",{parentName:"ul"},"Check disks"),(0,i.kt)("li",{parentName:"ul"},"Spin disks up/down"),(0,i.kt)("li",{parentName:"ul"},"Reset the array configuration")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},'NOTE: In cases where devices are added/replaced/removed, etc., the\ninstructions say "Power down" ',".",'.. "Power up". If your server\'s\nhardware is designed for hot/warm plug, Power cycling is not necessary\nand Unraid is designed specifically to handle this. All servers built by\nLimeTech since the beginning are like this:')," ",(0,i.kt)("strong",{parentName:"p"},"no power cycle\nnecessary.")),(0,i.kt)("h2",{id:"adding-disks"},"Adding disks"),(0,i.kt)("h3",{id:"configuring-disks"},"Configuring Disks"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"clear-v-pre-clear"},"Clear v Pre-Clear"),(0,i.kt)("p",null,"Under Unraid a 'Clear disk is one that has been completely filled with\nzeroes and contains a special signature to say that it is in this state.\nThis state is needed before a drive can be added to a parity-protected\narray without affecting parity. If Unraid is in the process of writing\nzeroes to all of a drive then this is referred to as a 'Clear'\noperation. This Clear operation can take place as a background operation\nwhile using the array, but the drive in question cannot be used to store\ndata until the Clear operation has completed and the drive been\nformatted to the desired File System type."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"A disk that is being added as a parity drive or one that is to be used\nto rebuild a failed drive does ",(0,i.kt)("strong",{parentName:"em"},"not")," need to be in a 'Clear' state\nas those processes overwrites every sector on the drive with new\ncontents as part of carrying out the operation. In addition, if you are\nadding an additional data drive to an array that does not currently have\na parity drive there is no requirement for the drive to be clear before\nadding it.")),(0,i.kt)("p",null,"You will often see references in the forum or various wiki pages to\n'Preclear'. This refers to getting the disk into a 'Clear' state\nbefore adding it to the array. The Preclear process requires the use of\na third-party plugin. Prior to Unraid v6, this was highly desirable as\nthe array was offline while Unraid carried out the 'Clear' operation.\nbut Unraid v6 now carries out 'Clear' as a background process with the\narray operational while it is running so it is now completely optional.\nMany users still like to use the Preclear process as in addition to\nputting the disk into a clear state it also performs a level of 'stress\ntest' on the drive which can be used as a confidence check on the\nhealth of the drive. The Preclear as a result takes ",(0,i.kt)("strong",{parentName:"p"},"much")," longer than\nUnraid's more simplistic 'clear' operation. Many users like to\nPreclear new disks as an initial confidence check and to reduce the\nchance of a drive suffering from 'what is known as infant mortality'\nwhere one of the most likely times for a drive to fail is when it is\nfirst used (presumably due to a manufacturing defect)."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is also important to note that after completing a 'Preclear' you\nmust ",(0,i.kt)("strong",{parentName:"em"},"not")," carry out any operation that will write to the drive (e.g.\n",(0,i.kt)("strong",{parentName:"em"},"format")," it) as this will destroy the 'Clear' state.")),(0,i.kt)("h3",{id:"data-disks"},"Data Disks"),(0,i.kt)("p",null,"This is the normal case of expanding the capacity of the system by\nadding one or more new hard drives."),(0,i.kt)("p",null,"The capacity of any new disk(s) added must be the same size or smaller\nthan your parity disk. If you wish to add a new disk that is larger than\nyour parity disk, then you must instead first replace your parity disk.\n(You could use your new disk to replace parity, and then use your old\nparity disk as a new data disk)."),(0,i.kt)("p",null,"The procedure is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install your new disk(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the new storage device(s) to a disk slot(s) using the Unraid\nwebGui."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If your array is parity protected then Unraid will now automatically\nbegin to clear the disk as this is required before it can be added\nto the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"This step is omitted if you do not have a parity drive."),(0,i.kt)("li",{parentName:"ul"},"If a disk has been pre-cleared before adding it Unraid will\nrecognize this and go straight to the next step."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase is necessary to preserve the fault tolerance\ncharacteristic of the array. If at any time while the new\ndisk(s) is being cleared, one of the other disks fails, you will\nstill be able to recover the data of the failed disk."),(0,i.kt)("li",{parentName:"ul"},"The clearing phase can take several hours depending on the size\nof the new disks(s) and although the array is available during\nthis process Unraid will not be able to use the new disk(s) for\nstoring files until the clear has completed and the new disk has\nbeen formatted."),(0,i.kt)("li",{parentName:"ul"},"The files on other drives in the array will be accessible during\na clear operation, and the clear operation should not degrade\nperformance in accessing these other drives."))),(0,i.kt)("li",{parentName:"ol"},"Once the disk has been cleared, an option to format the disk will\nappear in the webGui. At this point, the disk is added to the array\nand shows as unmountable and the option to format unmountable disks\nis shown.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Check that the serial number of the disk(s) is what you expect.\nYou do not want to format a different disk (thus erasing its\ncontents) by accident."))),(0,i.kt)("li",{parentName:"ol"},"Click the check box to confirm that you want to proceed with the\nformat procedure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"A warning dialog will be given warning you of the consequences\nas once you start the format the disks listed will have any\nexisting contents erased and there is no going back. This\nwarning may seem a bit like over-kill but there have been times\nthat users have used the format option when it was ",(0,i.kt)("strong",{parentName:"li"},"not")," the\nappropriate action."))),(0,i.kt)("li",{parentName:"ol"},"The format button will now be enabled so you can click on it to\nstart the formatting process."),(0,i.kt)("li",{parentName:"ol"},"The format should only take a few minutes and after the format\ncompletes the disk will show as mounted and ready for use.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You will see that a small amount of space will already show as\nused which is due to the overheads of creating the empty file\nsystem on the drive.")))),(0,i.kt)("p",null,"You can add as many new disks to the array as you desire at one time,\nbut none of them will be available for use until they are both cleared\nand formatted with a filesystem"),(0,i.kt)("h3",{id:"parity-disks"},"Parity Disks"),(0,i.kt)("p",null,"It is not mandatory for an Unraid system to have a parity disk, but it\nis normal to provide redundancy. A parity disk can be added at any time,\nEach parity disk provides redundancy against one data drive failing."),(0,i.kt)("p",null,"Any parity disk you add must be at least as large as the largest data\ndrive (although it can be larger). If you have two parity drives then it\nis not required that they be the same size although it is required that\nthey both follow the rule of being at least as large as the largest data\ndrive."),(0,i.kt)("p",null,"The process for adding a parity disk is identical to that for adding a\ndata disk except that when you start the array after adding it Unraid\nwill start to build parity on the drive that you have just added."),(0,i.kt)("p",null,"While parity is being rebuilt the array will continue to function with\nall existing files being available, but the performance in accessing\nthese files will normally be degraded due to contention with the parity\nbuild process."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")),(0,i.kt)("p",null,"You cannot add a parity disk(s) and data disk(s) at the same time in a\nsingle operation. This needs to be split into two separate steps, one to\nadd parity and the other to add additional data space."),(0,i.kt)("h3",{id:"upgrading-parity-disks"},"Upgrading parity disk(s)"),(0,i.kt)("p",null,"You may wish to upgrade your parity device(s) to a larger one(s) so you\ncan start using larger sized disks in the array or to add an additional\nparity drive"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you take the actions below and only have a ",(0,i.kt)("strong",{parentName:"p"},"single"),"\nparity drive then you need to bear the following in mind:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The array will be unprotected until the parity rebuild occurs. This\nmeans that if a data drive fails during this process you are likely\nto suffer loss of the data on the failing drive."),(0,i.kt)("li",{parentName:"ul"},"If you already have a failed data drive then this will remove the\nability to rebuild that data drive. In such a situation the ",(0,i.kt)("strong",{parentName:"li"},"Parity\nSwap")," procedure is the correct way to proceed.")),(0,i.kt)("p",null,"The procedure to remove a parity drive is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the server."),(0,i.kt)("li",{parentName:"ol"},"Install new larger parity disks. Note if you do this as your first\nstep then steps 2 & 4 listed here are not needed."),(0,i.kt)("li",{parentName:"ol"},"Power up the server."),(0,i.kt)("li",{parentName:"ol"},"Assign the larger disk to the parity slot (replacing the former\nparity device)."),(0,i.kt)("li",{parentName:"ol"},"Start the array.")),(0,i.kt)("p",null,"When you start the array, the system will once again perform a parity\nbuild to the new parity device and when it completes the array will once\nagain be in a protected state. It is recommended that you keep the old\nparity drives contents intact until the above procedure completes as if\nan array drive fails during this procedure so you cannot complete\nbuilding the contents of the new parity disk, then it is possible to use\nthe old one for recovery purposes (ask on the forum for the steps\ninvolved). If you have a dual parity system and wish to upgrade both of\nyour parity disks, it is recommended to perform this procedure one\nparity disk at a time, as this will allow for your array to still be in\na protected state throughout the entire upgrade process."),(0,i.kt)("p",null,"Once you've completed the upgrade process for a parity disk, the former\nparity disk can be considered for assignment and use in the array as an\nadditional data disk (depending on age and durability)"),(0,i.kt)("h2",{id:"replacing-disks"},"Replacing disks"),(0,i.kt)("p",null,"There are two primary reasons why you may wish to replace disks in the\narray:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A disk needs to be replaced due to failure or scheduled retirement\n(out of warranty / support / serviceability)."),(0,i.kt)("li",{parentName:"ul"},"The array is nearly full and you wish to replace existing data\ndisk(s) with larger ones (out of capacity).")),(0,i.kt)("p",null,"In either of these cases, the procedure to replace a disk is roughly the\nsame, but one should be aware of the risk of data loss during a disk\nreplacement activity. Parity device(s) protect the array from data loss\nin the event a disk failure. A single parity device protects against a\nsingle failure, whereas two parity devices can protect against losing\ndata when two disks in the array fail. This chart will help you better\nunderstand your level of protection when various disk replacement\nscenarios occur."),(0,i.kt)("p",null,"Data Protection During Disk Replacements"),(0,i.kt)("hr",null),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Replacing a single disk"),"\n",(0,i.kt)("strong",{parentName:"p"},"Replacing two disks")),(0,i.kt)("h3",{id:"replacing-a-disk-to-increase-capacity"},"Replacing a disk to increase capacity"),(0,i.kt)("p",null,"With modern disks rapidly increasing in capacity you can replace an\nexisting data drive with a larger one to increase the available space in\nthe array without increasing the total count of drives in the array."),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as unmountable then you should resolve this\nbefore attempting to upgrade the drive as the rebuild process does\nnot clear an unmountable status"),(0,i.kt)("li",{parentName:"ul"},"If you have single parity then you are not protected against a\ndifferent drive failing during the upgrade process. If this happens\nthen post to the forums to get advice on the best way to proceed to\navoid data loss."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity and you are upgrading a single data drive\nthen you are still protected against another data drive failing\nduring the upgrade process."),(0,i.kt)("li",{parentName:"ul"},"If you have dual parity you can upgrade two drives simultaneously\nbut you would then not be protected against another drive failing\nwhile doing the upgrade. If this happens then post to the forums to\nget advice on the best way to proceed to avoid data loss. It is up\nto you to decide on whether to take the route of upgrading two\ndrives one at a time or taking the faster but riskier route of doing\nthem at the same time."),(0,i.kt)("li",{parentName:"ul"},"Keep the disk that you are replacing with its contents unchanged\nuntil you are happy that the upgrade process has gone as planned.\nThis gives a fallback capability if the upgrade has gone wrong for\nany reason.")),(0,i.kt)("p",null,"To perform the upgrade proceed as follows:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Run a parity check if you have not done so recently and make sure\nthat zero errors are reported. Attempting an upgrade if parity is\nnot valid will result in the file system on the upgraded disk being\ncorrupt."),(0,i.kt)("li",{parentName:"ul"},"Stop the array."),(0,i.kt)("li",{parentName:"ul"},"Unassign the disk you want to upgrade."),(0,i.kt)("li",{parentName:"ul"},"Start the array to commit this change and make Unraid 'forget' the\ncurrent assignment.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid will now tell you that the missing disk is being\nemulated. It does this using the combination of the remaining\ndata drives and a parity drive to dynamically reconstruct the\ncontents of the emulated drive. From a user perspective the\nsystem will act as if the drive was still present albeit with a\nreduced level of protection against another drive failing."),(0,i.kt)("li",{parentName:"ul"},"If you started the array in Maintenance mode then this will\nensure no new files can be written to the drive during the\nupgrade process"),(0,i.kt)("li",{parentName:"ul"},"If you started the drive in Normal mode then you will be able to\nread and write to the Emulated drive as if it was still physically\npresent"))),(0,i.kt)("li",{parentName:"ul"},"Stop the array.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"At this point the array is in the same state as it would be if\nthe drive you have stopped using had failed instead of being\nunassigned as part of the upgrade process."))),(0,i.kt)("li",{parentName:"ul"},"Assign the (larger) replacement drive to the slot previously used\nfor the drive you are upgrading."),(0,i.kt)("li",{parentName:"ul"},"Start the array to begin rebuilding the contents of the emulated\ndrive on to the upgraded drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Since the replacement drive is larger than the one it is\nreplacing when the contents of the emulated drive have been put\nonto the replacement drive Unraid will automatically expand the\nfile system on the drive so the full capacity of the drive\nbecomes available for storing data.")))),(0,i.kt)("h3",{id:"replacing-faileddisabled-disks"},"Replacing failed/disabled disk(s)"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"a red X indicates that a disk has suffered a write error and should be replaced",src:a(3941).Z,width:"1010",height:"146"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"if notifications are enabled, this additional alert will appear",src:a(3565).Z,width:"756",height:"140"})),(0,i.kt)("p",null,"As noted previously, with a single parity disk, you can replace up to\none disk at a time, but during the replacement process, you are at risk\nfor data loss should an additional disk failure occur. With two parity\ndisks, you can replace either one or two disks at a time, but during a\ntwo disk replacement process, you are also at risk for data loss.\nAnother way to visualize the previous chart:"),(0,i.kt)("h4",{id:"array-tolerance-to-disk-failure-events"},"Array Tolerance to Disk Failure Events"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null}),(0,i.kt)("th",{parentName:"tr",align:null},"Without Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Single Parity"),(0,i.kt)("th",{parentName:"tr",align:null},"With Dual Parity"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A single disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data from that disk is lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disk can be replaced")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("strong",{parentName:"td"},"A dual disk failure")),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data on both disks are lost"),(0,i.kt)("td",{parentName:"tr",align:null},"Data is still available and the disks can be replaced")))),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"confirming you wish to start the array and rebuild the contents of the failed disk on a new disk",src:a(7021).Z,width:"1812",height:"208"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"notification indicating that a disk rebuild is occurring",src:a(6213).Z,width:"724",height:"300"})),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the progress and time remaining for the rebuild will be displayed under the array operation section",src:a(362).Z,width:"1086",height:"718"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If more disk failures have occurred than your parity protection\ncan allow for, you are advised to post in the General Support forum for\nassistance with data recovery on the data devices that have failed.")),(0,i.kt)("h4",{id:"what-is-a-failed-disabled-drive"},"What is a 'failed' (disabled) drive"),(0,i.kt)("p",null,"It is important to realize what is meant by the term failed drive:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It is typically used to refer to a drive that is marked with a red\n'x' in the Unraid GUI."),(0,i.kt)("li",{parentName:"ul"},"It does NOT necessarily mean that there is a physical problem with\nthe drive (although that is always a possibility). More often than\nnot the drive is OK and an external factor caused the write to fail.")),(0,i.kt)("p",null,"If the syslog shows that resets are occurring on the drive then this\nis a good indication of a connection problem."),(0,i.kt)("p",null,"The SMART report for the drive is a good place to start."),(0,i.kt)("p",null,"The SMART attributes can indicate a drive is healthy when in fact it\nis not. A better indication of health is whether the drive can\nsuccessfully complete the SMART extended test without error. If it\ncannot complete this test error-free then there is a high likelihood\nthat the drive is not healthy."),(0,i.kt)("p",null,"CRC errors are almost invariably cabling issues. It is important to\nrealize that this SMART attribute is never reset to 0 so if it stops\nincreasing that is what you should be aiming to achieve."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have sufficient parity drives then Unraid will emulate the\nfailed drive using the combination of the parity drive(s) and the\nremaining 'good' drives. ",(0,i.kt)("strong",{parentName:"li"},"From a user perspective, this results\nin the system reacting as if the failed drive is still present"),".")),(0,i.kt)("p",null,"This is one reason why it is important that you have enabled\nnotifications to get alerted to such a failure. From the end-user\nperspective, the system continues to operate and the data remain\navailable. Without notifications enabled the user may blithely\ncontinue using their Unraid server not realizing that their data may\nnow be at risk and they need to take some corrective action."),(0,i.kt)("p",null,"When a disk is marked as disabled and Unraid indicates it is being\nemulated then the following points apply:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Unraid will stop writing to the physical drive"),". Any writes to\nthe 'emulated' drive will not be reflected on the physical drive\nbut will be reflected in parity so from the end-user perspective\nthen the array seems to be updating data as normal."),(0,i.kt)("li",{parentName:"ul"},"When you rebuild a disabled drive the process will make the physical\ndrive correspond to the emulated drive by doing a\n",(0,i.kt)("em",{parentName:"li"},"sector-for-sector")," copy from the emulated drive to the physical\ndrive. You can, therefore, check that the emulated drive contains\nthe content that you expect before starting the rebuild process."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If a drive is being emulated then you can carry out recovery\nactions on the emulated drive before starting the rebuild process"),".\nThis can be important as it keeps the physical drive untouched for\npotential data recovery processes if the emulated drive cannot be\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"If an ",(0,i.kt)("strong",{parentName:"li"},"emulated")," drive is marked as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," then a rebuild\nwill ",(0,i.kt)("strong",{parentName:"li"},"not")," fix this and the rebuilt drive will have the same\nunmountable status as the emulated drive. The correct handling of\nunmountable drives is described in a later section. It is\nrecommended that you repair the file system before attempting a\nrebuild as the repair process is much faster that the rebuild\nprocess and if the repair process is not successful the rebuilt\ndrive would have the same problem.")),(0,i.kt)("p",null,"A replacement drive does not need to be the ",(0,i.kt)("em",{parentName:"p"},"same")," size as the disk it\nis replacing. It cannot be smaller but it can be larger. If the\nreplacement drive is not larger than any of your parity drives then the\nsimpler procedure below can be used. In the special case where you want\nto use a new disk that is larger than at least one of your parity drives\nthen please refer to the ",(0,i.kt)("strong",{parentName:"p"},"Parity Swap")," procedure that follows instead."),(0,i.kt)("p",null,"If you have purchased a replacement drive, many users like to pre-clear\nthe drive to stress test the drive first, to make sure it's a good\ndrive that won't fail for a few years at least. The Preclearing is not\nstrictly necessary as replacement drives don't have to be cleared since\nthey are going to be completely overwritten., but Preclearing new drives\none to three times provides a thorough test of the drive, eliminates\n'infant mortality' failures. You can also carry out stress tests in\nother ways such as running an extended SMART test or using tools\nsupplied by the disk manufacturer that run on Windows or macOS."),(0,i.kt)("h4",{id:"normal-replacement"},"Normal replacement"),(0,i.kt)("p",null,"This is a normal case of replacing a failed drive where the replacement\ndrive is ",(0,i.kt)("strong",{parentName:"p"},"not")," larger than your current parity drive(s)."),(0,i.kt)("p",null,"It is worth emphasizing that Unraid must be able to reliably read every\nbit of parity PLUS every bit of ALL other disks in order to reliably\nrebuild a missing or disabled disk. This is one reason why you want to\nfix any disk-related issues with your Unraid server as soon as possible."),(0,i.kt)("p",null,"To replace a failed disk or disks:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Power down the unit."),(0,i.kt)("li",{parentName:"ol"},"Replace the failed disk(s) with a new one(s)."),(0,i.kt)("li",{parentName:"ol"},"Power up the unit."),(0,i.kt)("li",{parentName:"ol"},"Assign the replacement disk(s) using the Unraid webGui."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox that says ",(0,i.kt)("em",{parentName:"li"},"Yes I want to do this")),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed. The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process.and the system will\nreconstruct the contents of the emulated disk(s) onto the new\ndisk(s) and, if the new disk(s) is/are bigger, expand the file\nsystem.")),(0,i.kt)("h5",{id:"notes"},"Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": If at any point during the replacement process Unraid\nappears to offer an option to format a drive do ",(0,i.kt)("strong",{parentName:"li"},"not")," do so as\nthis will result in wiping all files belonging to the drive you are\ntrying to replace and updating parity to reflect this."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"A 'good' rebuild relies on all the other array disks being\nread without error.")," If during the rebuild process any of the other\narray disks start showing read errors then the rebuilt disk is going\nto show corruption (and probably end up as unmountable) with some\ndata loss highly likely."),(0,i.kt)("li",{parentName:"ul"},"You must replace a failed disk with a disk that is as big or bigger\nthan the original and not bigger than the smallest parity disk."),(0,i.kt)("li",{parentName:"ul"},"If the replacement disk has been used before then remove any\nexisting partitions. In theory this should not be necessary but is\nhas been known to sometimes cause problems so it is better to play\nsafe."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process can never be used to change the format of a\ndisk - it can only rebuild to the existing format."),(0,i.kt)("li",{parentName:"ul"},"The rebuild process will not correct a disk that is showing as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," when being emulated (as this indicates there is some\nlevel of file system corruption present) - it will still show as\n",(0,i.kt)("em",{parentName:"li"},"unmountable")," after the rebuild as the rebuild process simply makes\nthe physical disk match the emulated one.")),(0,i.kt)("h4",{id:"rebuilding-a-drive-onto-itself"},"Rebuilding a drive onto itself"),(0,i.kt)("p",null,"There can be cases where it is determined that the reason a disk was\ndisabled is due to an external factor and the disk drive appears to be\nfine. In such a case you need to take a slightly modified process to\ncause Unraid to rebuild a 'disabled' drive back onto the same drive."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Unassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"Start array so the missing disk is registered"),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("strong",{parentName:"li"},"Important"),": If the drive to be rebuilt is a data drive then check\nthat the emulated drive is showing the content you expect to be\nthere as the rebuild process simply makes the physical drive match\nthe emulated one. If this is not the case then you may want to ask\nin forums for advice on the best way to proceed."),(0,i.kt)("li",{parentName:"ol"},"Stop array"),(0,i.kt)("li",{parentName:"ol"},"Reassign disabled disk"),(0,i.kt)("li",{parentName:"ol"},"(optional) Tick the box to start in Maintenance mode. If you start\nthe array in Maintenance mode you will need to press the ",(0,i.kt)("strong",{parentName:"li"},"Sync"),"\nbutton to trigger the rebuild. The advantage of doing this in\nMaintenance mode is that nothing else can write to the array while\nthe rebuild is running which maximises speed.\xa0The disadvantage is\nthat you cannot use the array in the meantime and until you return\nto normal mode cannot see what the contents of the disk being\nrebuilt will look like."),(0,i.kt)("li",{parentName:"ol"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Start")," to initiate the rebuild process and the system will\nreconstruct the contents of the emulated disk.")),(0,i.kt)("p",null,"This process can be used for both data and parity drives that have been\ndisabled."),(0,i.kt)("h4",{id:"parity-swap"},"Parity Swap"),(0,i.kt)("p",null,"This is a special case of replacing a disabled drive where the\nreplacement drive is larger than your current parity drive. This\nprocedure applies to both the parity1 and the parity2 drives. If you\nhave dual parity then it can be used on both simultaneously to replace 2\ndisabled data drives with the 2 old parity drives."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE"),": It is ",(0,i.kt)("strong",{parentName:"p"},"not")," recommended that you use this procedure for\nupgrading the size of both a parity drive and a data drive as the array\nwill be offline during the parity copy part of the operation. In such a\ncase it is normally better to first upgrade the parity drive and then\nafterward upgrade the data drive using the drive replacement procedure.\nThis takes longer but the array remains available for use throughout the\nprocess, and in addition, if anything goes wrong you have the just\nremoved drive available intact for recovery purposes"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Why would you want to do this? To replace a data drive with a larger\none, that is even larger than the Parity drive.")),(0,i.kt)("p",null,"Unraid does not require a replacement drive to be the same size as\nthe drive being replaced. The replacement drive CANNOT be smaller\nthan the old drive, but it CAN be larger, much larger in fact. If\nthe replacement drive is the same size or larger, UP TO the same\nsize as the smallest parity drive, then there the simple procedure\nabove can be used. If the replacement drive is LARGER than the\nParity drive, then a special two-step procedure is required as\ndescribed here. It works in two phases: - The larger-than-existing-parity drive is first upgraded to\nbecome the new the parity drive - The old parity drive replaces the old data drive and the data of\nthe failed drive is rebuilt onto it."),(0,i.kt)("p",null,"As an example, you have a 1TB data drive that you want to replace\n(the reason does not matter). You have a 2TB parity drive. You buy a\n4TB drive as a replacement. The 'Parity Swap' procedure will copy\nthe parity info from the current 2TB parity drive to the 4TB drive,\nzero the rest, make it the new parity drive, then use the old 2TB\nparity drive to replace the 1TB data drive. Now you can do as you\nwish with the removed 1TB drive."),(0,i.kt)("h5",{id:"important-notes"},"Important Notes"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you have purchased a replacement drive, we always recommend many\nusers to pre-clear the drive to stress test the replacement drive\nfirst, to make sure it's a good drive that won't fail for a few\nyears at least. The Preclearing is not strictly necessary, as\nreplacement drives don't have to be cleared, they are going to be\ncompletely overwritten. But Preclearing new drives one to three\ntimes provides a thorough test of the drive, eliminates 'infant\nmortality' failures."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If your replacement drive is the same size or smaller than your\ncurrent Parity drive, then you don't need this procedure. Proceed\nwith the ",(0,i.kt)("a",{parentName:"strong",href:"/zh/legacy/FAQ/replacing-a-data-drive"},"Replacing a Data Drive"),"\nprocedure.")),(0,i.kt)("li",{parentName:"ul"},"This procedure is strictly for replacing data drives in an Unraid\narray. If all you want to do is replace your Parity drive with a\nlarger one, then you don't need the Parity Swap procedure. Just\nremove the old parity drive and add the new one, and start the\narray. The process of building parity will immediately begin. (If\nsomething goes wrong, you still have the old parity drive that you\ncan put back!)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT!!!")," This procedure REQUIRES that the data drive being\nreplaced MUST be disabled first. If the drive failed (has a red\nball), then it is already 'disabled', but if the drive is OK but\nyou want to replace it anyway, then you have to force it to be\n'failed', by unassigning it and starting and stopping the array.\nUnraid only forgets a drive when the array is started without the\ndrive, otherwise it still associates it with the slot (but\n'Missing'). The array must be started once with the drive\nunassigned or disabled. Yes, it may seem odd, but is required before\nUnraid will recognize that you are trying to do a 'Parity Swap'.\nIt needs to see a disabled data disk with forgotten ID, a new disk\nassigned to its slot that used to be the parity disk, and a new disk\nassigned to the parity slot."),(0,i.kt)("li",{parentName:"ul"},"Obviously, it's very important to identify the drives for\nassignment correctly! Have a list of the drive models that will be\ntaking part in this procedure, with the last 4 characters of their\nserial numbers. If the drives are recent Toshiba models, then they\nmay all end in ",(0,i.kt)("strong",{parentName:"li"},"GS")," or ",(0,i.kt)("strong",{parentName:"li"},"S"),", so you will want to note the\npreceding 4 characters instead.")),(0,i.kt)("p",null,"The steps to carry out this procedure are:"),(0,i.kt)("p",null,"Note: these steps are the general steps needed. The steps you take\nmay differ depending on your situation. If the drive to be replaced\nhas failed and Unraid has disabled it, then you may not need steps 1\nand 2, and possibly not steps 3 and 4. If you have already installed\nthe new replacement drive (perhaps because you have been Preclearing\nit), then you would skip steps 5 through 8. Revise the steps as\nneeded."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array ",(0,i.kt)("em",{parentName:"p"},"(if it's started)"))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the old drive ",(0,i.kt)("em",{parentName:"p"},"(if it's still assigned)"),"\n",(0,i.kt)("em",{parentName:"p"},"If the drive was a good drive and notifications are enabled, you\nwill get error notifications for a missing drive! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Start the array (put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this"),"\ncheckbox if it appears (older versions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"))\n",(0,i.kt)("em",{parentName:"p"},"Yes, you need to do this. Your data drive should be showing as\n",(0,i.kt)("strong",{parentName:"em"},"Not installed"),"."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array again")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power down")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"[ Optional ]")," Pull the old drive\n",(0,i.kt)("em",{parentName:"p"},"You may want to leave it installed, for Preclearing or testing or\nreassignment."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Install the new drive (preclear STRONGLY suggested, but formatting\nnot needed)")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Power on")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Stop the array"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*",'If you get an "Array Stopping\u2022Retry unmounting disk\nshare(s)',".",'.." message, try disabling Docker and/or VM in Settings\nand stopping the array again after rebooting.'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Unassign the parity drive")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the new drive in the parity slot\n",(0,i.kt)("em",{parentName:"p"},"You may see more error notifications! This is normal."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Assign the old parity drive in the slot of the old data drive being\nreplaced\n",(0,i.kt)("em",{parentName:"p"},"You should now have blue drive status indicators for both the\nparity drive and the drive being replaced."))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Go to the ",(0,i.kt)("strong",{parentName:"p"},"Main")," -",">"," ",(0,i.kt)("strong",{parentName:"p"},"Array Operation")," section\n",(0,i.kt)("em",{parentName:"p"},"You should now have a ",(0,i.kt)("strong",{parentName:"em"},"Copy"),' button, with a statement indicating\n"',(0,i.kt)("strong",{parentName:"em"},"Copy"),' will copy the parity information to the new parity\ndisk".'))),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Copy")," button\n_Now patiently watch the copy progress, takes a long time (","~","20\nhours for 4TB on a 3GHz Core 2 Duo). All of the contents of the old\nparity drive are being copied onto the new drive, then the remainder\nof the new parity drive will be zeroed."),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"The array will NOT be available during this operation!")),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("em",{parentName:"p"},"*","If you disabled Docker and/or VM in settings earlier, go ahead\nand re-enable now.")),(0,i.kt)("p",{parentName:"li"},'When the copy completes, the array will still be stopped\n("',(0,i.kt)("strong",{parentName:"p"},"Stopped"),'. Upgrading disk/swapping parity.").'),(0,i.kt)("p",{parentName:"li"},"The ",(0,i.kt)("strong",{parentName:"p"},"Start")," button will now be present, and the description will\nnow indicate that it is ready to start a Data-Rebuild._")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"Put a check in the ",(0,i.kt)("strong",{parentName:"p"},"Yes I want to do this")," checkbox (older\nversions: ",(0,i.kt)("strong",{parentName:"p"},"Yes, I'm sure"),"), and click the ",(0,i.kt)("strong",{parentName:"p"},"Start")," button\n_The data drive rebuild begins. Parity is now valid, and the array\nis started."),(0,i.kt)("p",{parentName:"li"},"Because the array is started, you can use the array as normal, but\nfor best performance, we recommend you limit your usage."),(0,i.kt)("p",{parentName:"li"},"Once again, you can patiently watch the progress, it takes a long\ntime too! All of the contents of the old data drive are now being\nreconstructed on what used to be your parity drive, but is now\nassigned as the replacement data drive._"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"That's it!")," Once done, you have an array with a larger parity\ndrive and a replaced data drive that may also be larger!"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note: many users like to follow up with a parity check, just to\ncheck everything. It's a good confidence builder (although not\nstrictly necessary)!")),(0,i.kt)("h3",{id:"a-disk-failed-while-i-was-rebuilding-another"},"A disk failed while I was rebuilding another"),(0,i.kt)("p",null,"If you only have a single parity device in your system and a disk\nfailure occurs during a data-rebuild event, the data rebuild will be\ncancelled as parity will no longer be valid. However, if you have dual\nparity disks assigned in your array, you have options. You can either"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"let the first disk rebuild complete before starting the second, or"),(0,i.kt)("li",{parentName:"ul"},"you can cancel the first rebuild, stop the array, replace the second\nfailed disk, then start the array again")),(0,i.kt)("p",null,"If the first disk being rebuilt is nearly complete, it's probably\nbetter to let that finish, but if you only just began rebuilding the\nfirst disk when the second disk failure occurred, you may decide\nrebuilding both at the same time is a better solution."),(0,i.kt)("h2",{id:"removing-disks"},"Removing disks"),(0,i.kt)("p",null,"There may be times when you wish to remove drives from the system."),(0,i.kt)("h3",{id:"removing-parity-disks"},"Removing parity disk(s)"),(0,i.kt)("p",null,"If for some reason you decide you do not need the level of parity\nprotection that you have in place then it is always possible to easily\nremove a parity disk."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Set the slot for the parity disk you wish to remove to ",(0,i.kt)("em",{parentName:"li"},"Unassigned"),"."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the change and 'forget' the previously\nassigned parity drive.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"CAUTION:")," If you already have any failed data drives in the array be\naware that removing a parity drive reduces the number of failed drives\nUnraid can handle without potential data loss."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"dual")," parity you can still handle a single\nfailed drive but would not then be able to sustain another drive\nfailing while trying to rebuild the already failed drive without\npotential data loss."),(0,i.kt)("li",{parentName:"ul"},"If you started with ",(0,i.kt)("strong",{parentName:"li"},"single")," parity you will no longer be able to\nhandle any array drive failing without potential data loss.")),(0,i.kt)("h3",{id:"removing-data-disks"},"Removing data disk(s)"),(0,i.kt)("p",null,"Removing a disk from the array is possible, but normally requires you to\nonce again sync your parity disk(s) after doing so. This means that\nuntil the parity sync completes, the array is vulnerable to data loss\nshould any disk in the array fail."),(0,i.kt)("p",null,"To remove a disk from your array, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"(optional) Make note if your disk assignments under the main tab\n(for both the array and cache; some find it helpful to take a\nscreenshot)"),(0,i.kt)("li",{parentName:"ol"},"Perform the ",(0,i.kt)("a",{parentName:"li",href:"#reset-the-array-configuration"},"Reset the array\nconfiguration"),"\nprocedure. When doing this it is a good idea to use the option to\npreserve all current assignments to avoid you having to re-enter\nthem (and possibly make a mistake doing so)."),(0,i.kt)("li",{parentName:"ol"},"Make sure all your previously assigned disks are there and set the\ndrive you want removed to be Unassigned"),(0,i.kt)("li",{parentName:"ol"},"Start the array without checking the 'Parity is valid' box.")),(0,i.kt)("p",null,"A parity-sync will occur if at least one parity disk is assigned and\nuntil that operation completes, the array is vulnerable to data loss\nshould a disk failure occur."),(0,i.kt)("h3",{id:"alternative-method"},"Alternative method"),(0,i.kt)("p",null,"It is also possible to remove a disk without invalidating parity if\nspecial action is taken to make sure that the disk only contains zeroes\nas a disk that is all zeroes does not affect parity. There is no support\nfor this method built into the Unraid GUI so. it requires manual steps\nto carry out the zeroing process. It also takes much longer than the\nsimpler procedure above."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There is no official support from Limetech for using this method so you\nare doing it at your own risk.")),(0,i.kt)("h3",{id:"notes-1"},"Notes"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"This method preserves parity protection at all times."),(0,i.kt)("li",{parentName:"ol"},"This method can only be used if the drive to be removed is a good\ndrive that is completely empty, is mounted and can be completely\ncleared without errors occurring"),(0,i.kt)("li",{parentName:"ol"},"This method is limited to removing only one drive at a time\n(actually this is not technically true but trying to do multiple\ndrives in parallel is slower than doing them sequentially due to the\ncontention that arises for updating the parity drive)"),(0,i.kt)("li",{parentName:"ol"},"As stated above, the drive must be completely empty as this process\nwill erase all existing content. If there are still any files on it\n(including hidden ones), they must be moved to another drive or\ndeleted.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"One quick way to clear a drive of files is to reformat it! To\nformat an array drive, you stop the array, and then on the Main\npage click on the link for the drive and change the file system\ntype to something different than it currently is, then restart\nthe array. You will then be presented with an option to format\nit. Formatting a drive removes all of its data, and the parity\ndrive is updated accordingly, so the data cannot be easily\nrecovered."),(0,i.kt)("li",{parentName:"ul"},"Explanatory note: \"Since you are going to clear the drive\nanyway, why do I have to empty it? And what is the purpose of\nthis strange clear-me folder?\" Yes, it seems a bit draconian to\nrequire the drive to be empty since we're about to clear and\nempty it in the script, but we're trying to be absolutely\ncertain we don't cause data loss. In the past, some users\nmisunderstood the procedure, and somehow thought we would\npreserve their data while clearing the drive! This way, by\nrequiring the user to remove all data, and then add an odd\nmarker, there cannot be any accidents or misunderstandings and\ndata loss.")))),(0,i.kt)("p",null,"The procedure is as follows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that the drive you are removing has been removed from any\ninclusions or exclusions for all shares, including in the global\nshare settings."),(0,i.kt)("li",{parentName:"ol"},"Make sure the array is started, with the drive assigned and mounted."),(0,i.kt)("li",{parentName:"ol"},"Make sure you have a copy of your array assignments, especially the\nparity drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'In theory you should not need this but it is a useful safety net\nin case if the "Retain current configuration" option under New\nConfig doesn\'t work correctly (or you make a mistake using it).'))),(0,i.kt)("li",{parentName:"ol"},"It is highly recommended to turn on reconstruct write, as the write\nmethod (sometimes called 'Turbo write'). With it on, the script\ncan run 2 to 3 times as fast, saving hours!",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"However when using 'Turbo Write' all drives must read without\nerror so do not use it unless you are sure no other drive is\nhaving issues."),(0,i.kt)("li",{parentName:"ul"},"To enable 'turbo Write' in ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),", change\nTunable (md_write_method) to reconstruct write"))),(0,i.kt)("li",{parentName:"ol"},"Make sure ALL data has been copied off the drive; drive MUST be\ncompletely empty for the clearing script to work."),(0,i.kt)("li",{parentName:"ol"},"Double check that there are no files or folders left on the drive.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Note: one quick way to clean a drive is to reformat it! (once\nyou're sure nothing of importance is left of course!)"))),(0,i.kt)("li",{parentName:"ol"},"Create a single folder on the drive with the name ",(0,i.kt)("strong",{parentName:"li"},"clear-me")," -\nexactly 7 lowercase letters and one hyphen"),(0,i.kt)("li",{parentName:"ol"},"Run the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=50416.msg494968#msg494968"},"clear an array\ndrive"),"\nscript from the ",(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/forum/index.php?topic=49992"},"User\nScripts"),"\nplugin (or run it standalone, at a command prompt).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If you prepared the drive correctly, it will completely and\nsafely zero out the drive. If you didn't prepare the drive\ncorrectly, the script will refuse to run, in order to avoid any\nchance of data loss."),(0,i.kt)("li",{parentName:"ul"},"If the script refuses to run, indicating it did not find a\nmarked and empty drive, then very likely there are still files\non your drive. Check for hidden files. ALL files must be\nremoved!"),(0,i.kt)("li",{parentName:"ul"},"Clearing takes a loooong time! Progress info will be displayed."),(0,i.kt)("li",{parentName:"ul"},"For best performance, make sure there are no reads/writes\nhappening to the array. The easiest way to do this is to bring\nthe array up in maintenance mode."),(0,i.kt)("li",{parentName:"ul"},"If running in User Scripts, the browser tab will hang for the\nentire clearing process."),(0,i.kt)("li",{parentName:"ul"},"While the script is running, the Main screen may show invalid\nnumbers for the drive, ignore them. Important! Do not try to\naccess the drive, at all!"))),(0,i.kt)("li",{parentName:"ol"},"When the clearing is complete, stop the array"),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure for resetting the array making sure you elect\nto retain all current assignments."),(0,i.kt)("li",{parentName:"ol"},"Return to the Main page, and check all assignments. If any are\nmissing, correct them. Unassign the drive(s) you are removing.\nDouble-check all of the assignments, especially the parity drive(s)!"),(0,i.kt)("li",{parentName:"ol"},"Click the check box for Parity is already valid, make sure it is\nchecked!"),(0,i.kt)("li",{parentName:"ol"},"Start the array! Click the Start button then the Proceed button (on\nthe warning popup that will pop up)"),(0,i.kt)("li",{parentName:"ol"},"(Optional) Start a correcting parity check to ensure parity really\nis valid and you did not make a mistake in the procedure. If\neverything was done correctly this should return zero errors.")),(0,i.kt)("p",null,"Alternate Procedure steps for Linux proficient users"),(0,i.kt)("p",null,"If you are happy to use the Linux Command line then you can replace\nsteps 7 and 8 by performing the clearing commands yourself at a command\nprompt. (Clearing takes just as long though!) If you would rather do\nthat than run the script in steps 7 and 8, then here are the 2 commands\nto perform:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"umount\xa0/mnt/diskX\ndd\xa0bs=1M\xa0if=/dev/zero\xa0of=/dev/mdX\xa0status=progress\n")),(0,i.kt)("p",null,"(where X in both lines is the number of the data drive being removed)\n",(0,i.kt)("strong",{parentName:"p"},"Important!!!")," It is VITAL you use the correct drive number, or you\nwill wipe clean the wrong drive! That's why using the script is\nrecommended, because it's designed to protect you from accidentally\nclearing the wrong drive."),(0,i.kt)("h2",{id:"checking-array-devices"},"Checking array devices"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"the check button lets you perform parity and read checks",src:a(6712).Z,width:"406",height:"67"})),(0,i.kt)("p",null,"When the array is started,\nthere is a button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations")," labelled ",(0,i.kt)("em",{parentName:"p"},"Check"),". Depending\non whether or not you have any parity devices assigned, one of two\noperations will be performed when clicking this button."),(0,i.kt)("p",null,"It is also possible to schedule checks to be run automatically at\nUser-defined intervals under ",(0,i.kt)("strong",{parentName:"p"},"Settings-",">","Scheduler"),". It is a good idea\nto do this as an automated check on array health so that problems can be\nnoticed and fixed before the array can deteriorate beyond repair.\nTypical periods for such automated checks are monthly or quarterly and\nit is recommended that such checks should be ",(0,i.kt)("strong",{parentName:"p"},"non-correcting"),"."),(0,i.kt)("h3",{id:"parity-check"},"Parity check"),(0,i.kt)("p",null,"If you have at least one parity device assigned, clicking ",(0,i.kt)("em",{parentName:"p"},"Check"),"\nwill initiate a Parity-check. This will march through all data disks in\nparallel, computing parity and checking it against stored parity on the\nparity disk(s)."),(0,i.kt)("p",null,"You can continue to use the array while a parity check is running but\nthe performance of any file operations will be degraded due to drive\ncontention between between the check and the file operation. The parity\ncheck will also be slowed while any such file operations are active."),(0,i.kt)("p",null,"By default, if an error is found during a Parity-check the parity disk\nwill be updated (written) with the computed data and the Sync Errors\ncounter will be incremented. If you wish to run purely a check without\nwriting correction, uncheck the checkbox that says ",(0,i.kt)("strong",{parentName:"p"},"Write corrections\nto parity")," before starting the check. In this mode, parity errors will\nbe notated but not actually fixed during the check operation."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"correcting"),' parity check is started automatically when starting the\narray after an "Unsafe Shutdown". An "Unsafe Shutdown" is defined as\nany time that the Unraid server was restarted without having previously\nsuccessfully stopped the array. The most common cause of Sync Errors is\nan unexpected power-loss, which prevents buffered write data from being\nwritten to disk. It is highly recommended that users consider purchasing\na UPS (uninterruptable power supply) for their systems so that Unraid\ncan be set to shut down tidily on power loss, especially if frequent\noffsite backups aren\'t being performed.'),(0,i.kt)("p",null,"It is also recommended that you run an automatic parity check\nperiodically and this can be done under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Scheduler"),". The\nfrequency is up to the user but monthly or quarterly are typical\nchoices. It is also recommended that such a check is set as\n",(0,i.kt)("strong",{parentName:"p"},"non-correcting")," as if a disk is having problems there is a chance of\nyou corrupting your parity if you set such a check to be correcting. The\nonly acceptable result from such a check is to have ",(0,i.kt)("strong",{parentName:"p"},"0 errors"),"\nreported. If you do have errors reported then you should take\npre-emptive action to try and find out what is causing them. If in doubt\nask questions in the forum."),(0,i.kt)("h3",{id:"read-check"},"Read check"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"history lets you review stats on your preview check operations",src:a(9299).Z,width:"789",height:"54"})),(0,i.kt)("p",null,"If you configure an array\nwithout any parity devices assigned, the ",(0,i.kt)("em",{parentName:"p"},"Check")," option will start a\n",(0,i.kt)("em",{parentName:"p"},"Read check")," against all the devices in the array. You can use this to\ncheck disks in the array for unrecoverable read errors, but know that\nwithout a parity device, data may be lost if errors are detected."),(0,i.kt)("p",null,"A ",(0,i.kt)("em",{parentName:"p"},"Read Check")," is also the type of check started if you have disabled\ndrives present and the number of disabled drives is larger than the\nnumber of parity drives."),(0,i.kt)("h3",{id:"check-history"},"Check history"),(0,i.kt)("p",null,"Any time a parity or read check is performed, the system will log the\ndetails of the operation and you can review them by clicking the\n",(0,i.kt)("em",{parentName:"p"},"History")," button under ",(0,i.kt)("strong",{parentName:"p"},"Array Operations"),". These are stored in a text\nfile under the config directory on your Unraid USB flash device."),(0,i.kt)("h2",{id:"spin-up-and-down-disks"},"Spin up and down disks"),(0,i.kt)("p",null,"If you wish to manually control the spin state of your rotational\nstorage devices or toggle your SSD between active and standby mode,\nthese buttons provide that control. Know that if files are in the\nprocess of being accessed while using these controls, the disk(s) in use\nwill remain in an active state, ignoring your request."),(0,i.kt)("p",null,"When disks are in a spun-down state, they will not report their\ntemperature through the webGui."),(0,i.kt)("h2",{id:"reset-the-array-configuration"},"Reset the array configuration"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"you can reset your disk configuration from the new config page",src:a(7539).Z,width:"1106",height:"309"})),(0,i.kt)("p",null,"If you wish to remove a disk from the array or you simply wish to start\nfrom scratch to build your array configuration, there is a tool in\nUnraid that will do this for you. To reset the array configuration,\nperform the following steps: "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Tools")," page and click ",(0,i.kt)("em",{parentName:"li"},"New Config")),(0,i.kt)("li",{parentName:"ol"},"You can (optionally) elect to have the system preserve some of the\ncurrent assignments while resetting the array. This can be very\nuseful if you only intend to make a small change as it avoids you\nhaving to re-enter the details of the disks you want to leave\nunchanged."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox confirming that you want to do this and then\nclick apply to perform the operation"),(0,i.kt)("li",{parentName:"ol"},"Return to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab and your configuration will have been\nreset"),(0,i.kt)("li",{parentName:"ol"},"Make any adjustments to the configuration that you want."),(0,i.kt)("li",{parentName:"ol"},"Start the array to commit the configuration. You can start in Normal\nor Maintenance mode.")),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unraid will recognize if any drives have been previously used by\nUnraid, and when you start the array as part of this procedure the\ncontents of such disks will be left intact."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button that you can use to say\n'Parity is Valid'. Do not check this unless you are sure it is the\ncorrect thing to do, or unless advised to do so by an experienced\nUnraid user as part of a data recovery procedure."),(0,i.kt)("li",{parentName:"ul"},"Removing a data drive from the array will always invalidate parity\nunless special action has been taken to ensure the disk being\nremoved only contains zeroes"),(0,i.kt)("li",{parentName:"ul"},"Reordering disks after doing the New Config without removing drives\ndoes not invalidate parity1, but it ",(0,i.kt)("strong",{parentName:"li"},"DOES")," invalidate parity2.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Undoing a reset")),(0,i.kt)("p",null,"If for any reason after performing a reset, you wish to undo it, perform\nthe following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Browse to your flash device over the network (SMB)"),(0,i.kt)("li",{parentName:"ol"},"Open the ",(0,i.kt)("strong",{parentName:"li"},"Config")," folder"),(0,i.kt)("li",{parentName:"ol"},"Rename the file ",(0,i.kt)("em",{parentName:"li"},"super.old")," to ",(0,i.kt)("em",{parentName:"li"},"super.dat")),(0,i.kt)("li",{parentName:"ol"},"Refresh the browser on the ",(0,i.kt)("strong",{parentName:"li"},"Main")," page and your array\nconfiguration will be restored")),(0,i.kt)("h2",{id:"notifications"},"Notifications"),(0,i.kt)("p",null,"TBD"),(0,i.kt)("h3",{id:"status-reports"},"Status Reports"),(0,i.kt)("p",null,"Unraid can be configured to send you status reports about the state of\nthe array."),(0,i.kt)("p",null,"An important point about these reports is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"They only tell you if the array currently has any disks disabled or\nshowing read/write errors."),(0,i.kt)("li",{parentName:"ul"},"The status is reset when you reboot the system, so it does not tell\nyou what the status was in the past."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"IMPORTANT"),": The status report does not take into account the\nSMART status of the drive. You can therefore get a status report\nindicating that the array appears to be healthy even though the\nSMART information might indicate that a disk might not be too\nhealthy.")),(0,i.kt)("h2",{id:"smart-monitoring"},"SMART Monitoring"),(0,i.kt)("p",null,"Unraid can be configured to report whether SMART attributes for a drive\nare changing. The idea is to try and tell you in advance if drives might\nbe experiencing problems even though they have not yet caused read/write\nerrors so that you can take pre-emptive action before a problem becomes\nserious and thus might potentially lead do data loss. You should have\nnotifications enabled so that you can see these notifications even when\nyou are not running the Unraid GUI."),(0,i.kt)("p",null,"SMART monitoring is currently only supported for SATA drives and is not\navailable for SAS drives."),(0,i.kt)("p",null,"Which SMART attributes are monitored can be configured by the user, but\nthe default ones are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"5: Reallocated Sectors count"),(0,i.kt)("li",{parentName:"ul"},"187: Reported uncorrected errors"),(0,i.kt)("li",{parentName:"ul"},"188: Command timeout"),(0,i.kt)("li",{parentName:"ul"},"197: Current / Pending Sector Count"),(0,i.kt)("li",{parentName:"ul"},"198: Uncorrectable sector count"),(0,i.kt)("li",{parentName:"ul"},"199: UDMA CRC error count")),(0,i.kt)("p",null,"If any of these attributes change value then this will be indicated on\nthe Dashboard by the icon against the drive turning orange. You can\nclick on this icon and a menu will appear that allows you to acknowledge\nthat you have seen the attribute change, and then Unraid will stop\ntelling you about it unless it changes again."),(0,i.kt)("p",null,"You can manually see all the current SMART information for a drive by\nclicking on its name on the Main tab in the Unraid GUI."),(0,i.kt)("h1",{id:"pool-cache-operations"},"Pool (cache) Operations"),(0,i.kt)("p",null,"Prior to Unraid 6.9.0 there was only one pool supported and it was\nalways called ",(0,i.kt)("strong",{parentName:"p"},"cache"),". Starting with Unraid 6.9.0 multiple pools are\nsupported and the names of these pools are user defined. When multiple\npools are present then any (or all) of them can have the functionality\nthat was available with the cache in earlier Unraid releases."),(0,i.kt)("p",null,"If you are running Unraid 6.9.0 or later then any reference you find in\ndocumentation to cache can be considered as applying to any pool, not\njust one that is actually named cache."),(0,i.kt)("h2",{id:"why-use-a-pool"},"Why use a Pool?"),(0,i.kt)("p",null,"There are several reasons why a user might want to use a pool in Unraid."),(0,i.kt)("p",null,"It is worth pointing out that these uses are not mutually exclusive as a\nsingle pool can be used for multiple Use Cases."),(0,i.kt)("p",null,"UnRaid 6.9 (or later) also supports multiple pools so it is possible to\nhave individual pools dedicated to specific Use Cases."),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,"The way that Unraid handles parity means that the speed of writing to a\nparity protected array is lower than might be expected by the raw speed\nof the array disks. If a pool is configured to act as a cache for a User\nShare then the perceived speed of writing to the array is that supported\nby the pool rather than the speed of writing directly to the array."),(0,i.kt)("p",null,"A particular User Share can only be associated with one pool at a time,\nbut it is not necessary for all User Shares to be associated with the\nsame pool."),(0,i.kt)("h3",{id:"docker-application-storage"},"Docker application Storage"),(0,i.kt)("p",null,"Docker containers basically consist of 2 parts - the binaries that are\ntypically stored within the docker.img file that are static and only\nupdated when the container updates, and the working set that is meant to\nbe mapped to be external to the docker container (typically as a\ncontainer specific subfolder within the appdata share. There are good\nreasons to hold both categories on a Pool for several reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Writes are much faster than when held on the array as they are not\nslowed down by the way in which UnRaid updates parity for a parity\nprotected array"),(0,i.kt)("li",{parentName:"ul"},"The working set can be accessed and updated faster when stored on a\nPool."),(0,i.kt)("li",{parentName:"ul"},"It is not necessary to have array disks spun up when a container is\naccessing its binaries or using its working set.")),(0,i.kt)("h3",{id:"vm-vdisks"},"VM vdisks"),(0,i.kt)("p",null,"Most VM's will have one (or more) vdisk files used to emulate a hard\ndisk or iso files to emulate a CD-ROM."),(0,i.kt)("p",null,"Performance of VMs is much better if such files are on a Pool rather\nthan on an array drive."),(0,i.kt)("h2",{id:"pool-modes"},"Pool Modes"),(0,i.kt)("p",null,"There are two primary modes of operating a pool in Unraid:"),(0,i.kt)("h3",{id:"single-device-mode"},"Single device mode"),(0,i.kt)("p",null,"When the number of disk slots for the pool is set to one, this is\nreferred to as running in single device mode. In this mode, you will\nhave no protection for any data that exists on the pool, which is why\nmulti-device mode is recommended. However, unlike in multi-device mode,\nwhile in single device mode, you are able to adjust the filesystem for\nthe cache device to something other than BTRFS. It is for this reason\nthat there are no special operations for single mode. You can only add\nor remove the device from the system."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"NOTE: If you choose to use a non-BTRFS file system for your pool device\noperating in single mode, you will not be able to expand to a\nmulti-device pool without first reformatting the device with BTRFS. It\nis for this reason that BTRFS is the default filesystem for a pool, even\nwhen operating in single device mode.")),(0,i.kt)("h3",{id:"multi-device-mode"},"Multi-Device mode"),(0,i.kt)("p",null,"When more than one disk is assigned to the pool, this is referred to as\nrunning in multi-device mode. This mode utilizes a BTRFS specific\nimplementation of RAID 1 in order to allow for any number of devices to\nbe grouped together in a pool. Unlike a traditional RAID 1, a BTRFS\nRAID1 can mix and match devices of different sizes and speeds and can\neven be expanded and contracted as your needs change. To calculate how\nmuch capacity your BTRFS pool will have, check out this handy ",(0,i.kt)("a",{parentName:"p",href:"http://carfax.org.uk/btrfs-usage/"},"btrfs\ndisk usage calculator"),". Set the\nPreset RAID level to RAID-1, select the number of devices you have, and\nset the size for each. The tool will automatically calculate how much\nspace you will have available."),(0,i.kt)("p",null,"Here are typical operations that are likely to want to carry out on the\npool:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Back up the pool to the array"),(0,i.kt)("li",{parentName:"ul"},"Switch the pool to run in multi-device mode"),(0,i.kt)("li",{parentName:"ul"},"Add disks"),(0,i.kt)("li",{parentName:"ul"},"Replace a disk")),(0,i.kt)("h2",{id:"backing-up-the-pool-to-the-array"},"Backing up the pool to the array"),(0,i.kt)("p",null,"The procedure shown assumes that there are at least some dockers and/or\nVMs related files on the cache disk, some of these steps are unnecessary\nif there aren't."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop all running Dockers/VMs"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: disable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: disable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},'Click on Shares and change to "Yes" all User Shares with "Use\ncache disk:" set to "Only" or "Prefer"'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the array and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool is empty")),(0,i.kt)("p",null,"Note that any files on the pool root will not be moved as they\nare not part of any share and will need manual attention"),(0,i.kt)("p",null,"You can then later restore files to the pool by effectively reversing\nthe above steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},'Click on all shares whose content you want on the pool and set "Use\ncache:" option to "Only" or "Prefer" as appropriate.'),(0,i.kt)("li",{parentName:"ol"},'Check that there\'s enough free space on the pool and invoke the\nmover by clicking "Move Now" on the Main page'),(0,i.kt)("li",{parentName:"ol"},"When the mover finishes check that your pool now has the expected\ncontent and that the shares in question no longer have files on the\nmain array"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," Docker: enable Docker and click apply"),(0,i.kt)("li",{parentName:"ol"},"Settings -",">"," VM Manager: enable VMs and click apply"),(0,i.kt)("li",{parentName:"ol"},"Start any Dockers/VMs that you want to be running")),(0,i.kt)("h2",{id:"switching-the-pool-to-multi-device-mode"},"Switching the pool to multi-device mode"),(0,i.kt)("p",null,"If you want a multi-device pool then the only supported format for this\nis BTRFS. If it is already in BTRFS format then you can follow the\nprocedure below for adding an additional drive to a pool"),(0,i.kt)("p",null,"If the cache is NOT in BTRFS format then you will need to do the\nfollowing:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Use the procedure above for backing up any existing content you want\nto keep to the array."),(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool on the Main tab and change the format to be BTRFS"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"The pool should how show as ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and offer the option to\nformat the pool."),(0,i.kt)("li",{parentName:"ol"},"Confirm that you want to do this and click the format button"),(0,i.kt)("li",{parentName:"ol"},"When the format finishes you now have a multi-device pool (albeit\nwith only one drive in it)"),(0,i.kt)("li",{parentName:"ol"},"If you want additional drives in the pool you can (optionally) do it\nnow."),(0,i.kt)("li",{parentName:"ol"},"Use the restore part of the previous procedure to restore any\ncontent you want on the pool")),(0,i.kt)("h2",{id:"adding-disks-to-a-pool"},"Adding disks to a pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is ",(0,i.kt)("strong",{parentName:"li"},"already")," formatted as BTRFS")),(0,i.kt)("p",null,"If it is not then you will need to first follow the steps in the\nprevious section to create a pool in BTRFS format."),(0,i.kt)("p",null,"To add disks to the BTRFS pool perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Navigate to the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Scroll down to the section labeled ",(0,i.kt)("em",{parentName:"li"},"Pool Devices"),"."),(0,i.kt)("li",{parentName:"ol"},"Change the number of ",(0,i.kt)("strong",{parentName:"li"},"Slots")," to be at least as many as the number\nof devices you wish to assign."),(0,i.kt)("li",{parentName:"ol"},"Assign the devices you wish to the pool slot(s)."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"Click the checkbox and then the button under ",(0,i.kt)("strong",{parentName:"li"},"Array Operations")," to\nformat the devices.")),(0,i.kt)("p",null,"Make sure that the devices shown are those you expect - you do not\nwant to accidentally format a device that contains data you want to\nkeep."),(0,i.kt)("h2",{id:"removing-disks-from-a-multi-device-pool"},"Removing disks from a multi-device pool"),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if your pool is configured for redundancy at\nboth the data and metadata level."),(0,i.kt)("li",{parentName:"ul"},"You can check what raid level your pool is currently set to by\nclicking on it on the Main tab and scrolling down to the Balance\nStatus section."),(0,i.kt)("li",{parentName:"ul"},"You can only remove one drive at a time")),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Unassign a pool drive."),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the pool drive"),(0,i.kt)("li",{parentName:"ol"},"If you still have more than one drive in the pool then you can\nsimply run a Balance operation"),(0,i.kt)("li",{parentName:"ol"},"If you only have one drive left in the pool then switch the pool\nRAID level to single as described below")),(0,i.kt)("h2",{id:"change-pool-raid-levels"},"Change Pool RAID Levels"),(0,i.kt)("p",null,"BTRFS can add and remove devices online, and freely convert between RAID\nlevels after the file system has been created."),(0,i.kt)("p",null,"BTRFS supports raid0, raid1, raid10, raid5, and raid6 (but note that\nraid5/6 are still considered experimental so use with care i.e. make\nsure you have good backups if using these modes), and it can also\nduplicate metadata or data on a single spindle or multiple disks. When\nblocks are read in, checksums are verified. If there are any errors,\nBTRFS tries to read from an alternate copy and will repair the broken\ncopy if the alternative copy succeeds."),(0,i.kt)("p",null,"By default, Unraid creates BTRFS volumes in a pool with data=raid1 and\nmetadata=raid1 to give redundancy."),(0,i.kt)("p",null,"For more information about the BTRFS options when using multiple devices\nsee the ",(0,i.kt)("a",{parentName:"p",href:"https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices"},"BTRFS wiki\narticle"),"."),(0,i.kt)("p",null,"You can change the BTRFS raid levels for a pool from the Unraid GUI by:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If the array is not started then start it in normal mode"),(0,i.kt)("li",{parentName:"ul"},"Click on the Pool name on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"Scroll down to the Balance section"),(0,i.kt)("li",{parentName:"ul"},"At this point information (including current RAID levels) will be\ndisplayed."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.8.3 or earlier")," then add the appropriate\nadditional parameters added to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field.")),(0,i.kt)("p",null,"As an example, the following screenshot shows how you might convert\nthe pool from the RAID1 to the SINGLE profile."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(9253).Z,width:"1158",height:"307"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"If using UnRaid 6.9.0 or later")," this has been made even easier by\ngiving you a drop-down list of the available options to simply\nselecting the one you want"),(0,i.kt)("li",{parentName:"ul"},"Start the Balance operation."),(0,i.kt)("li",{parentName:"ul"},"Wait for the Balance to complete"),(0,i.kt)("li",{parentName:"ul"},"The new RAID level will now be fully operational.")),(0,i.kt)("h2",{id:"replace-a-disk-in-a-pool"},"Replace a disk in a pool"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Notes:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can only do this if the pool is formatted as BTRFS ",(0,i.kt)("strong",{parentName:"li"},"AND")," it is\nset up to be redundant."),(0,i.kt)("li",{parentName:"ul"},"You can only replace up to one disk at a time from a pool.")),(0,i.kt)("p",null,"To replace a disk in the redundant pool, perform the following steps:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array."),(0,i.kt)("li",{parentName:"ol"},"Physically detach the disk from your system you wish to remove."),(0,i.kt)("li",{parentName:"ol"},"Attach the replacement disk (must be equal to or larger than the\ndisk being replaced)."),(0,i.kt)("li",{parentName:"ol"},"Refresh the Unraid webGui when under the ",(0,i.kt)("strong",{parentName:"li"},"Main")," tab."),(0,i.kt)("li",{parentName:"ol"},"Select the pool slot that previously was set to the old disk and\nassign the new disk to the slot."),(0,i.kt)("li",{parentName:"ol"},"Start the array."),(0,i.kt)("li",{parentName:"ol"},"If presented with an option to ",(0,i.kt)("strong",{parentName:"li"},"Format")," the device, click the\ncheckbox and button to do so.")),(0,i.kt)("h2",{id:"remove-a-disk-from-a-pool"},"Remove a disk from a pool"),(0,i.kt)("p",null,"There have been times when users have indicated they would like to\nremove a disk from a pool they have set up while keeping all the data\nintact. This cannot be done from the Unraid GUI but is easy enough to do\nfrom the command line in a console session."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": You need to maintain the minimum number of devices for the\nprofile in use, i.e., you can remove a device from a 3+ device raid0\npool but you can't remove one from a 2 device raid0 pool (unless it's\nconverted to a single profile first)."),(0,i.kt)("p",null,"With the array running type on the console:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/mnt/cache")),(0,i.kt)("p",null,"Replace X with the correct letter for the drive you want to remove from\nthe system as shown on the Main tab (don't forget the 1 after it)."),(0,i.kt)("p",null,"Wait for the device to be deleted (i.e., until the command completes and\nyou get the cursor back)."),(0,i.kt)("p",null,"The device is now removed from the pool, you don't need to stop the\narray now, but at the next array stop you need to make Unraid forget the\nnow-deleted member, and to achieve that:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Unassign all pool devices"),(0,i.kt)("li",{parentName:"ul"},'Start the array to make Unraid "forget" the pool config')),(0,i.kt)("p",null,"If the docker and/or VMs services were using that pool best to\ndisable those services before start or Unraid will recreate the\nimages somewhere else, assuming they are using /mnt/user paths)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop array (re-enable docker/VM services if disabled above)"),(0,i.kt)("li",{parentName:"ul"},"Re-assign all pool member except the removed device"),(0,i.kt)("li",{parentName:"ul"},"Start array")),(0,i.kt)("p",null,"Done"),(0,i.kt)("p",null,"You can also remove multiple devices with a single command (as long as\nthe above rule is observed):"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0dev\xa0del\xa0/dev/mapper/sdX1\xa0/dev/mapper/sdY1\xa0/mnt/cache")),(0,i.kt)("p",null,"but in practice this does the same as removing one device, then the\nother, as they are still removed one at a time, just one after the other\nwith no further input from you."),(0,i.kt)("h2",{id:"minimum-free-space-for-a-pool"},"Minimum Free Space for a Pool"),(0,i.kt)("p",null,"This setting is used to help avoid the issue of a pool that is being\nused for a User Share running out of free space and this then causing\nerrors to occur. The Minimum Free Space setting for a pool tells Unraid\nwhen to stop putting new files onto the pool for User Shares that have a\n",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Yes")," or ",(0,i.kt)("strong",{parentName:"p"},"Prefer"),". Unraid does ",(0,i.kt)("strong",{parentName:"p"},"not")," take\ninto account file size when selecting a pool and once Unraid has\nselected a pool for a file it will not change its mind, and if the file\ndoes not fit you get an out-of-space error. The purpose of the Minimum\nFree Space value is that when the free space falls below the level you\nset Unraid will start bypassing the pool and writing directly to the\narray for any new files. You should therefore set this setting to be\nlarger than the biggest file you intend to be cached on the pool. In\nmany ways it is analogous to the setting of the same name for User\nShares but it applies to the pool rather than the array disks. It is\nignored for User Shares which have a ",(0,i.kt)("em",{parentName:"p"},"Use Cache")," setting of ",(0,i.kt)("strong",{parentName:"p"},"Only"),",\nand is not relevant if the setting is ",(0,i.kt)("strong",{parentName:"p"},"No"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.8.3")," (and earlier) which only supported a single pool\n(that was always called cache) this setting can be found under\n",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Global Share Settings"),"."),(0,i.kt)("p",null,"For ",(0,i.kt)("strong",{parentName:"p"},"Unraid 6.9.0")," (and later) which supports multiple pools (with the\nnames being user defined) this setting can be found by clicking on the\npool name on the Main tab."),(0,i.kt)("h2",{id:"moving-files-between-a-pool-and-the-array"},"Moving files between a Pool and the array"),(0,i.kt)("p",null,"A topic that seems to come up with some frequency is what is the process\nfor getting files that belong to shares (e.g. ",(0,i.kt)("em",{parentName:"p"},"appdata"),", ",(0,i.kt)("em",{parentName:"p"},"system"),") that\nit is normally recommended are held on a pool device for performance\nreasons moved to or from the array if the need arises."),(0,i.kt)("h3",{id:"moving-files-from-pool-to-array"},"Moving files from pool to array"),(0,i.kt)("p",null,"A typical Use Case for this action is to get files off the pool so that\nyou can safely perform some action that you are worried might end up\nlosing any existing contents. The steps are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings"),". This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe cache to the array ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Yes"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the array. You can\nvalidate there are no files left behind by clicking on the\n'folder' icon at the right side of the cache entry on the Main\ntab.")),(0,i.kt)("h3",{id:"moving-files-from-array-to-pool"},"Moving files from array to pool"),(0,i.kt)("p",null,"The commonest Use Cases for this is when you have either used the above\nsteps to get files off the cache and now want them back there or if you\nhave newly added a cache drive and want the files for selected shares\n(typically ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"system"),") to be moved to the cache. The steps\nare:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable the Docker and VM services under Settings. This is done to\nensure that they will not hold any files open as that would stop\n",(0,i.kt)("em",{parentName:"li"},"mover")," from being able to move them."),(0,i.kt)("li",{parentName:"ul"},"Go to the Shares tab and for each share you want to be moved from\nthe array to the cache ensure that the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting is set to\n",(0,i.kt)("strong",{parentName:"li"},"Prefer"),"."),(0,i.kt)("li",{parentName:"ul"},"Go to the Main tab and manually start the ",(0,i.kt)("strong",{parentName:"li"},"mover")," process so that\nit starts transferring the files from the array to the cache."),(0,i.kt)("li",{parentName:"ul"},"When moves completes the files should now be on the cache."),(0,i.kt)("li",{parentName:"ul"},"Re-enable the Docker and/or VM services under ",(0,i.kt)("em",{parentName:"li"},"Settings")," (if you use\nthem)."),(0,i.kt)("li",{parentName:"ul"},"(optional) Go to the Shares tab and for each share you want all\nfiles always be on the cache set the ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("strong",{parentName:"li"},"Only"),"\nto stop any new files for this share being created on the array in\nthe future.")),(0,i.kt)("h2",{id:"multiple-pools"},"Multiple Pools"),(0,i.kt)("p",null,"As of version 6.9, you can create multiple pools and manage them\nindependently. This feature permits you to define up to 35 named pools,\nof up to 30 storage devices per pool.\xa0 Pools are created and managed via\nthe Main page."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note: A pre-6.9.0 cache disk/pool is now simply a pool named\n"cache".\xa0 When you upgrade a server which has a cache disk/pool\ndefined, a backup of ',(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," will be saved to\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg.bak"),", and then cache device assignment settings are\nmoved out of ",(0,i.kt)("inlineCode",{parentName:"li"},"config/disk.cfg")," and into a new file,\n",(0,i.kt)("inlineCode",{parentName:"li"},"config/pools/cache.cfg"),".\xa0 If later you revert back to a pre-6.9.0\nUnraid OS release you will lose your cache device assignments and\nyou will have to manually re-assign devices to cache.\xa0 As long as\nyou reassign the correct devices, data should remain intact.")),(0,i.kt)("p",null,"When you create a user share or edit an existing user share, you can\nspecify which pool should be associated with that share.\xa0 The assigned\npool functions identically to the current cache pool operation."),(0,i.kt)("p",null,"Something to be aware of: when a directory listing is obtained for a\nshare, the Unraid array disk volumes and all pools which contain that\nshare are merged in this order:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"pool assigned to share"),(0,i.kt)("p",{parentName:"blockquote"},"disk1"),(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("inlineCode",{parentName:"p"},":")),(0,i.kt)("p",{parentName:"blockquote"},"disk28"),(0,i.kt)("p",{parentName:"blockquote"},"all the ",(0,i.kt)("em",{parentName:"p"},"other")," pools in\n",(0,i.kt)("a",{parentName:"p",href:"https://man7.org/linux/man-pages/man3/strverscmp.3.html"},"strverscmp()"),"\norder.")),(0,i.kt)("p",null,"A single-device pool may be formatted with either xfs, btrfs, or\n(deprecated) reiserfs.\xa0 A multiple-device pool may only be formatted\nwith btrfs."),(0,i.kt)("p",null,'Note: Something else to be aware of: Let\'s say you have a 2-device\nbtrfs pool. This will be what btrfs calls "raid1" and what most people\nwould understand to be "mirrored disks". Well, this is mostly true in\nthat the same data exists on both disks but not necessarily at the\nblock-level.\xa0 Now let\'s say you create another pool, and what you do is\nun-assign one of the devices from the existing 2-device btrfs pool and\nassign it to this pool.\xa0 Now you have x2 single-device btrfs pools.\nUpon array Start user might understandably assume there are now x2 pools\nwith exactly the same data.\xa0 However, ',(0,i.kt)("strong",{parentName:"p"},"this is not the case"),". Instead,\nwhen Unraid OS sees that a btrfs device has been removed from an\nexisting multi-device pool, upon array Start it will do a ",(0,i.kt)("inlineCode",{parentName:"p"},"wipefs")," on\nthat device so that upon mount it will not be included in the old pool.\nThis of course effectively deletes all the data on the moved device."),(0,i.kt)("h3",{id:"moving-files-between-pools"},"Moving files between pools"),(0,i.kt)("p",null,"There is no built-in support for moving files between pools. In the\nevent one wants to do this you can do it using the ",(0,i.kt)("strong",{parentName:"p"},"mover")," application\nusing the techniques mentioned during earlier by doing it in two steps"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Move the files from pool1 to the main array"),(0,i.kt)("li",{parentName:"ul"},"move the files from the array to pool2")),(0,i.kt)("p",null,"The alternative is to it manually in which case you can move files\ndirectly between the pools."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Do not forget that if any the files belong to a Docker container\nand/or VM then the services must be disabled for the files to be moved\nsuccessfully"),"."),(0,i.kt)("h1",{id:"file-system-management"},"File System Management"),(0,i.kt)("h2",{id:"selecting-a-file-system-type"},"Selecting a File System type"),(0,i.kt)("p",null,"Each array drive in an Unraid system is set up as a self-contained file\nsystem. Unraid currently supports the following file system types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"XFS"),": This is the default format for array drives on a new\nsystem. It is a well-tried Linux file system and deemed to be the\nmost robust."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"XFS is better at recovering from file system corruption than\nBTRFS or ZFS (which can happen after unclean shutdowns or system\ncrashes)."),(0,i.kt)("li",{parentName:"ul"},"If used on an array drive then each XFS format drive is a single\nself-contained file system."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ZFS"),": This is a newer file system introduced with Unraid 6.12\nthat supports advanced features not available with XFS."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques"),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each ZFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives.\nNormally each drive would be of the same size, but if not then\nonly the amount of space equivalent to that on the smallest\ndrive will be used."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported. The\ndefault in Unraid for a cache pool is RAID1 so that data is\nstored redundantly to protect against drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning multiple\ndrives that need to run as a single logical drive as this needs\nthe multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the usable space is always\na multiple of the smallest drive (if they are not the same\nsize)."),(0,i.kt)("li",{parentName:"ul"},"It is thought to be better at recovering from file system\ncorruption than BTRFS, although not as good as XFS."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"BTRFS"),": This is a newer file system that supports advanced\nfeatures not available with XFS. It is considered not quite as\nstable as XFS but many Unraid users have reported in seems as robust\nas XFS when used on array drives where each drive is a\nself-contained file system. Some of its features are:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It supports detecting file content corruption (often\ncolloquially known as bit-rot) by internally using checksum\ntechniques."),(0,i.kt)("li",{parentName:"ul"},"If used on array drives then each BTRFS format drive is an\nindividual free-standing BTRFS file system."),(0,i.kt)("li",{parentName:"ul"},"It can support a single file system spanning multiple drives,\nand in such a case it is not necessary that the drives all be of\nthe same size. It is better than ZFS at making use of available\nspace in a multi-drive pool where the drives are of different\nsizes."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode various levels of RAID can be supported\n(although these are a BTRFS specific implementation and not\nnecessarily what one expects). The default in Unraid for a cache\npool is RAID1 so that data is stored redundantly to protect\nagainst drive failure."),(0,i.kt)("li",{parentName:"ul"},"It is an option supported when using a cache pool spanning\nmultiple drives that need to run as a single logical drive as\nthis needs the multi-drive support."),(0,i.kt)("li",{parentName:"ul"},"In multi-drive mode in the cache pool the available space is\nalways a multiple of the smallest drive size."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"ReiserFS"),": This is supported for legacy reasons for those\nmigrating from earlier versions of Unraid where it was the only\nsupported file system type."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"There is only minimal involvement from Linux kernel developers\non maintaining the ReiserFS drivers on new Linux kernel versions\nso the chance of a new kernel causing problems with ReiserFS is\nhigher than for other Linux file system types."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It has a hard limit of 16TB on a ReiserFS file system and\ncommercial grade hard drives have now reached this limit.")),(0,i.kt)("li",{parentName:"ul"},"Write performance can degrade significantly as the file system\nstarts getting full."),(0,i.kt)("li",{parentName:"ul"},"It is extremely good at recovering from even extreme levels of\nfile system corruption"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"It is now deprecated for use with Unraid and should not be\nused by new users.")," Support for ReiserFS is due to be removed\nfrom the Linux kernel by 2025 and at that point Unraid will also\nlikely stop supporting ReiserFS so existing users should be looking\nto move off using ReiserFS in their Unraid system.")))),(0,i.kt)("p",null,"These formats are standard Linux formats and as such any array drive can\neasily be removed from the array and read on any Linux system. This can\nbe very useful in any data recovery scenario. Note, however, that the\ninitial format needs to be done on the Unraid system as Unraid has\nspecific requirements around how the disk is partitioned that are\nunlikely to be met if the partitioning is not done on Unraid.\nUnfortunately, these formats cannot be read as easily on Windows or\nmacOS systems as these OS do not recognize the file system formats\nwithout additional software being installed that is not freely\nobtainable."),(0,i.kt)("p",null,"A user can use a mixture of these file system types in their Unraid\nsystem without it causing any specific issues. In particular, the Unraid\nparity system is file system agnostic as it works at the physical sector\nlevel and is not even aware of the file system that is in use on any\nparticular drive."),(0,i.kt)("p",null,"In addition drives can be\n",(0,i.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/security/data-encryption"},"encrypted"),". ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"A point to\nnote about using encryption is that if you get any sort of file system\ncorruption then encryption can make it harder (and sometimes impossible\nto recover data on the corrupted file system."))),(0,i.kt)("p",null,"If using a cache pool (i.e multiple drives) then the supported types are\nBTRFS or ZFS and the pool is formatted as a single entity. By default,\nthis will be a version of RAID1 to give redundancy, but other options\ncan be achieved by running the appropriate ",(0,i.kt)("em",{parentName:"p"},"btrfs")," command."),(0,i.kt)("p",null,"Additional file formats are supported by the ",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices")," and\n",(0,i.kt)("strong",{parentName:"p"},"Unassigned Devices Plus")," plugins. There can be useful when you have\ndrives that are to be used for transfer purposes, particularly to\nsystems that do not support standard Linux formats."),(0,i.kt)("h2",{id:"setting-a-file-system-type"},"Setting a File System type"),(0,i.kt)("p",null,"The File System type for a new drive can be set in 2 ways:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings")," the default type for array drives\nand the cache pool can be set.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"On a new Unraid system this will be XFS for array drives and\nBTRFS for the cache."))),(0,i.kt)("li",{parentName:"ol"},"Explicitly for individual drives by clicking on a drive on the Main\ntab (with the array stopped) and selecting a type from those\noffered.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a drive is first added the file system type will show as\n",(0,i.kt)("strong",{parentName:"li"},"auto")," which means use the setting specified under\n",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Disk Settings"),"."),(0,i.kt)("li",{parentName:"ul"},"Setting an explicit type over-rides the global setting"),(0,i.kt)("li",{parentName:"ul"},"The only supported format for a cache containing more than one\ndrive is BTRFS.")))),(0,i.kt)("h2",{id:"creating-a-file-system-format"},"Creating a File System (Format)"),(0,i.kt)("p",null,'Before a disk can be used in Unraid then an empty file system of the\ndesired type needs to be created on the disk. This is the operation\ncommonly known as "format" and it ',(0,i.kt)("strong",{parentName:"p"},"erases")," any existing content on\nthe disk."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"WARNING:")),(0,i.kt)("p",null,"If a drive has already been formatted by Unraid then if it now shows as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," you probably do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," want to format it again unless\nyou want to ",(0,i.kt)("strong",{parentName:"p"},"erase")," its contents. In such cases, the appropriate\naction is usually instead to use the ",(0,i.kt)("em",{parentName:"p"},"File System check/repair process"),"\ndetailed later."),(0,i.kt)("p",null,"The basic process to format a drive once the file system type has been\nset is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Start the array"),(0,i.kt)("li",{parentName:"ul"},"Any drives where Unraid does not recognize the format will be shown\nas ",(0,i.kt)("strong",{parentName:"li"},"unmountable")," and there will be an option to format unmountable\ndrives"),(0,i.kt)("li",{parentName:"ul"},"Check that ",(0,i.kt)("strong",{parentName:"li"},"ALL")," the drives shown as unmountable are ones you want\nto format. You do not want to accidentally format another drive and\nerase its contents"),(0,i.kt)("li",{parentName:"ul"},"Click the check box to say you really want to format the drive."),(0,i.kt)("li",{parentName:"ul"},"Carefully read the resulting dialog that outlines the consequences"),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Format")," button will now be enabled so if you want to go ahead\nwith the format click on it."),(0,i.kt)("li",{parentName:"ul"},"The format process will start running for the specified disks.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If the disk has not previously been used by Unraid then it will\nstart by rewriting the partition table on the drive to conform\nto the standard Unraid expects."))),(0,i.kt)("li",{parentName:"ul"},"The format should only take a few minutes but if the progress does\nnot automatically update you might need to refresh the Main tab.")),(0,i.kt)("p",null,"Once the format has completed then the drive is ready to start being\nused to store files."),(0,i.kt)("h2",{id:"drive-shows-as-unmountable"},"Drive shows as unmountable"),(0,i.kt)("p",null,"A drive can show as ",(0,i.kt)("strong",{parentName:"p"},"unmountable")," in the Unraid GUI for two reasons:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The disk has never been used in Unraid and you have just added is\nnew a new disk slot in the array. In this case, you want to follow\nthe format procedure shown above to create a new empty file system\non the drive so it is ready to receive files.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"File system corruption has occurred. This means that the file system\ndriver has noticed some inconsistency in the file system control\nstructures. This is not infrequent if a write to a disk fails for\nany reason and Unraid marks the disk as disabled, although it can\noccur at other times as well."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," If a disk is showing as both ",(0,i.kt)("strong",{parentName:"p"},"unmountable and disabled"),"\n(has a red 'x' against in in the GUI) then the check/repair\nprocess can be carried out on the disk that is being 'emulated' by\nUnraid prior to carrying out any rebuild process. It is always worth\ndoing the repair before any rebuild as if a disk is showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," while being emulated then it will also show as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," after the rebuild (as all the rebuild process does\nis make the physical disk match the emulated one). The process for\nrepairing a file system is much faster than the rebuild process so\nthere is not much point in wasting time on a rebuild if the repair\nis not going to work. Also if there are any problems running the\nrepair process on the emulated disk then the physical disk is still\nuntouched giving a fall back data recovery path."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": You do ",(0,i.kt)("strong",{parentName:"p"},"not")," want to format the drive in this case\nas this will write an empty file system to the drive update parity\naccordingly and you would therefore lose the contents of the drive."),(0,i.kt)("p",null,"It is worth noting that an Unmountable disk caused by file system\ncorruption is not something that can be repaired using the parity drive\nas it is basically not a result of a write to a disk failing but of\nincorrect data being written (apparently successfully) to the data drive\nand parity updated accordingly. Such corruption can be due to either a\nsoftware issue, or something like bad RAM corrupting the in-memory data\nbefore it is written."),(0,i.kt)("p",null,"The file system has a level of redundancy in the control structures so\nit is normally possible to repair the damage that has been detected.\nTherefore when you have an unmountable disk caused by file system\ncorruption then you want to use the file system check/repair process\ndocumented below to get the disk back into a state where you can mount\nit again and see all its data."),(0,i.kt)("p",null,"If you are at all unsure on the best way to proceed it is often a good\nidea to make a post in the forums and attach your system's diagnostics\nzip file (obtained via Tools-",">","Diagnostics) so you can get feedback on\nyour issue."),(0,i.kt)("h2",{id:"checking-a-file-system"},"Checking a File System"),(0,i.kt)("p",null,"If a disk that was previously mounting fine suddenly starts showing as\n",(0,i.kt)("strong",{parentName:"p"},"unmountable")," then this normally means that there is some sort of\ncorruption at the file system level. This most commonly occurs after an\nunclean shutdown but could happen any time a write to a drive fails or\nif the drive ends up being marked as ",(0,i.kt)("strong",{parentName:"p"},"disabled")," (i.e. with a\nred ',' in the Unraid GUI). If the drive is marked as disable and\nbeing emulated then the check is run against the emulated drive and not\nthe physical drive."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," At this point, the Unraid GUI will be offering an option\nto format unmountable drives. This will ",(0,i.kt)("strong",{parentName:"p"},"erase")," all content on the\ndrive and ",(0,i.kt)("strong",{parentName:"p"},"update parity")," to reflect this making recovering the data\nimpossible/very difficult so do ",(0,i.kt)("strong",{parentName:"p"},"NOT")," do this unless you are happy to\nlose the contents of the drive."),(0,i.kt)("p",null,"To recover from file system corruption then one needs to run the tool\nthat is appropriate to the file system on the disk. Points to note that\nusers new to Unraid often misunderstand are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Rebuilding a disk does ",(0,i.kt)("strong",{parentName:"li"},"not")," repair file system corruption"),(0,i.kt)("li",{parentName:"ul"},"If a disk is showing as being emulated then the file system check\nand/or repair are run against the emulated drive and not the\nphysical drive.")),(0,i.kt)("h3",{id:"preparing-to-test"},"Preparing to test"),(0,i.kt)("p",null,"The first step is to identify the file system of the drive you wish to\ntest or repair. If you don't know for sure, then go to the Main page of\nthe webGui, and click on the name of the drive (Disk 3, Cache, etc).\nLook for ",(0,i.kt)("strong",{parentName:"p"},"File system type"),", and you will see the file system format\nfor your drive (should be ",(0,i.kt)("strong",{parentName:"p"},"xfs"),", ",(0,i.kt)("strong",{parentName:"p"},"btrfs")," or ",(0,i.kt)("strong",{parentName:"p"},"reiserfs"),")."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," then you must start the\narray in ",(0,i.kt)("em",{parentName:"p"},"Maintenance mode"),", by clicking the Maintenance mode check box\nbefore clicking the Start button. This starts the Unraid driver but does\nnot mount any of the drives."),(0,i.kt)("p",null,"If the file system is ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", then frequently you want to run a\n",(0,i.kt)("strong",{parentName:"p"},"scrub")," rather than a repair as that both checks the BTRFS file system\nand can also fix many BTRFS errors. A scrub operation is run with the\narray started in Normal mode and NOT in ",(0,i.kt)("em",{parentName:"p"},"Maintenance")," mode. If you want\nto run a repair then you will need to start the array in ",(0,i.kt)("em",{parentName:"p"},"Maintenance"),"\nmode."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," Details will need to be added for ",(0,i.kt)("strong",{parentName:"p"},"ZFS")," file systems after\nUnraid 6.12 is release with ZFS support built in."),(0,i.kt)("h3",{id:"running-the-test-using-the-webgui"},"Running the Test using the webGui"),(0,i.kt)("p",null,"The process for checking a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the Unraid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the test, followed by the options box\nwhere you can type in options for the test/repair command."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check mean you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h3",{id:"running-the-test-using-the-command-line"},"Running the Test using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFSxfs as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0-v\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired as an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0-v\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs"},"BTRFS"),(0,i.kt)("p",null,"A BTRFS file systems will automatically check the data as part of\nreading it so often there is no need to explicitly run a check. If you\ndo need to run a check you do it with the array started in ",(0,i.kt)("em",{parentName:"p"},"Normal")," mode\nusing the ",(0,i.kt)("strong",{parentName:"p"},"scrub")," command that is covered in more detail in the\n",(0,i.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management#scrub"},"Scrub")," section."),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using\ncommands of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/mdX1")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device."),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the\narray, if the array is not started, or the disk is part of a pool then\nyou need to run the appropriate command from a console/terminal session.\nAs an example you would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"for pools which are outside the Unraid parity scheme"),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"zfs"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been\nreleased with ZFS support included as a standard feature."),(0,i.kt)("h2",{id:"repairing-a-file-system"},"Repairing a File System"),(0,i.kt)("p",null,"You typically run this just after running a check as outlined above, but\nif skipping that follow steps 1-4 to get to the point of being ready to\nrun the repair. It is a good idea to enable the Help built into the GUI\nto get more information on this process."),(0,i.kt)("p",null,"If the drive is marked as disabled and being emulated then the repair is\nrun against the emulated drive and not the physical drive. It is\nfrequently done before attempting to rebuild a drive as it is the\ncontents of the emulated drive that is used by the rebuild process."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Remove any parameters from the ",(0,i.kt)("em",{parentName:"li"},"Options")," field that would cause the\ntool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode."),(0,i.kt)("li",{parentName:"ol"},"Add any additional parameters to the ",(0,i.kt)("em",{parentName:"li"},"Options")," field required that\nare suggested from the check phase. If not sure then ask in the\nforum.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The Help built into the GUI can provide guidance on what options\nmight be applicable."))),(0,i.kt)("li",{parentName:"ol"},"Press the Check button to start the repair process. You can now\nperiodically use the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to update the progress\ninformation"),(0,i.kt)("li",{parentName:"ol"},"If the repair does not complete for any reason then ask in the forum\nfor advice on how to best proceed if you are not sure.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"If repairing an XFS formatted drive then it is quite normal for\nthe ",(0,i.kt)("em",{parentName:"li"},"xfs_repair")," process to give you a warning saying you need\nto provide the ",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"-L"))," option to proceed. Despite this ominous\nwarning message this is virtually always the right thing to do\nand does not result in data loss."),(0,i.kt)("li",{parentName:"ul"},"When asking a question in the forum and when including the\noutput from the repair attempt as part of your post use\n",(0,i.kt)("img",{alt:"Code",src:a(6997).Z,width:"16",height:"16"})," option to preserve the formatting\nas otherwise it becomes difficult to read"))),(0,i.kt)("li",{parentName:"ol"},"If the repair completes without error then stop the array and\nrestart in normal mode. The drive should now mount correctly.")),(0,i.kt)("p",null,"After running a repair you may well find that a ",(0,i.kt)("strong",{parentName:"p"},"lost+found")," folder is\ncreated on the drive with files/folders with cryptic names (this will\nthen show as a User Share of the same name). These are folders/files for\nwhich the repair process could not determine the name. If you have good\nbackups then it is often nor worth trying to sort out the contents of\nthe lost+found folder but instead restore from the backups. If you\nreally need to sort out the contents then the linux ",(0,i.kt)("strong",{parentName:"p"},"file")," command can\nbe used on a file to help determine what kind of data is in the file so\nyou can open it. If there are a lot of content in lost+found it may not\nbe worth the trouble unless it is important."),(0,i.kt)("p",null,"If at any point you do not understand what is happening then ask in the\nforum."),(0,i.kt)("h3",{id:"preparing-to-repair"},"Preparing to repair"),(0,i.kt)("p",null,"If you are going to repair a ",(0,i.kt)("strong",{parentName:"p"},"BTRFS"),", ",(0,i.kt)("strong",{parentName:"p"},"XFS")," or ",(0,i.kt)("strong",{parentName:"p"},"ReiserFS")," file\nsystem then you always want the array to be started in Maintenace mode"),(0,i.kt)("h3",{id:"running-the-repair-using-the-webgui"},"Running the Repair using the webGui"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-1"},"XFS and ReiserFS"),(0,i.kt)("p",null,"The process for repairing a file system using the Unraid GUI is as\nfollows:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Make sure that you have the array started in the correct mode. If\nnecessary stop the array and restart in the correct mode by\nclicking/unclicking the Maintenance Mode checkbox next to the Start\nbutton."),(0,i.kt)("li",{parentName:"ol"},"From the Main screen of the webGui, click the name of the disk that\nyou want to test or repair. For example, if the drive of concern is\nDisk 5, then click on ",(0,i.kt)("strong",{parentName:"li"},"Disk 5"),". If it's the Cache drive, then\nclick on ",(0,i.kt)("strong",{parentName:"li"},"Cache"),". If in Maintenance mode then The disks will not\nbe mounted but the underlying ",(0,i.kt)("em",{parentName:"li"},"/dev/mdX")," type devices that\ncorrespond to each ",(0,i.kt)("em",{parentName:"li"},"diskX")," in the unRaid GUI will have been created.\nThis is important as any write operation against one of these 'md'\ntype devices will also update parity to reflect that write has\nhappened."),(0,i.kt)("li",{parentName:"ol"},"You should see a page of options for that drive, beginning with\nvarious partition, file system format, and spin down settings."),(0,i.kt)("li",{parentName:"ol"},"The section following that is the one you want, titled ",(0,i.kt)("strong",{parentName:"li"},"Check\nFilesystem Status"),". There is a box with the 2 words ",(0,i.kt)("em",{parentName:"li"},"Not available"),"\nin it. This is the command output box, where the progress and\nresults of the command will be displayed. Below that is the\n",(0,i.kt)("strong",{parentName:"li"},"Check")," button that starts the repair"),(0,i.kt)("li",{parentName:"ol"},"This is followed by the options box where you can type in options.\nTo run a repair you need to remove the ",(0,i.kt)("strong",{parentName:"li"},"-n")," option. If repairing a\nXFS system you often get prompted to also use the ",(0,i.kt)("strong",{parentName:"li"},"-L")," option and\nif that happens you rerun the repair adding that option here."),(0,i.kt)("li",{parentName:"ol"},"The tool that will be run is shown and the status at this point will\nshow as ",(0,i.kt)("em",{parentName:"li"},"Not available"),". The ",(0,i.kt)("em",{parentName:"li"},"Options")," field may include a parameter\nthat causes the selected tool to run in ",(0,i.kt)("em",{parentName:"li"},"check-only")," mode so that\nthe underlying drive is not actually changed. For more help, click\nthe ",(0,i.kt)("strong",{parentName:"li"},"Help")," button in the upper right."),(0,i.kt)("li",{parentName:"ol"},"Click on the Check button to run the file system check"),(0,i.kt)("li",{parentName:"ol"},"Information on the check progress is now displayed. You may need to\nuse the ",(0,i.kt)("em",{parentName:"li"},"Refresh")," button to get it to update."),(0,i.kt)("li",{parentName:"ol"},"If you are not sure what the results of the check means you should\ncopy the progress information so you can ask a question in the\nforum. When including this information as part of a forum post\nmark them as ",(0,i.kt)("em",{parentName:"li"},"code")," (using the ",(0,i.kt)("strong",{parentName:"li"},"\\<?",">")," icon) to preserve the\nformatting as otherwise it becomes difficult to read.")),(0,i.kt)("h4",{id:"btrfs-1"},"BTRFS"),(0,i.kt)("p",null,"A lot of the time running the Scrub operation will be able to detect\n(and correct if you have a redundant pool) many errors."),(0,i.kt)("p",null,"In the event that you need more than this you need the array to be\nstarted in Maintenance mode and then the ",(0,i.kt)("strong",{parentName:"p"},"Check")," option can be used to\nrun the ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," program to check file system integrity on the\ndevice."),(0,i.kt)("p",null,"The ",(0,i.kt)("em",{parentName:"p"},"Options")," field is initialized with ",(0,i.kt)("em",{parentName:"p"},"-","-readonly")," which specifies\ncheck-only. If repair is needed, you should run a second Check pass,\nsetting the ",(0,i.kt)("em",{parentName:"p"},"Options")," to ",(0,i.kt)("em",{parentName:"p"},"-","-repair"),"; this will permit ",(0,i.kt)("em",{parentName:"p"},"btrfs check")," to\nfix the file system."),(0,i.kt)("p",null,"The BTRFS documentation suggests that its ",(0,i.kt)("inlineCode",{parentName:"p"},"--repair"),' option be used only\nif you have been advised by "a developer or an experienced user". As\nof August 2022, the SLE documentation recommends using a Live CD,\nperforming a backup and only using the repair option as a last resort.'),(0,i.kt)("p",null,"After starting a Check, you should Refresh to monitor progress and\nstatus. Depending on how large the file system is, and what errors might\nbe present, the operation can take ",(0,i.kt)("strong",{parentName:"p"},"a long time")," to finish (hours).\nNot much info is printed in the window, but you can verify the operation\nis running by observing the read/write counters increasing for the\ndevice on the Main page"),(0,i.kt)("p",null,"There is another tool, named ",(0,i.kt)("inlineCode",{parentName:"p"},"btrfs-restore"),", that can be used to\nrecover files from an unmountable filesystem, without modifying the\nbroken filesystem itself (i.e., non-destructively) but that is not\nsupported by the Unraid GUI."),(0,i.kt)("h3",{id:"running-the-repair-using-the-command-line"},"Running the Repair using the command line"),(0,i.kt)("h4",{id:"xfs-and-reiserfs-2"},"XFS and ReiserFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for ReiserFS and\nXFS as shown below if the array is started in Maintenance mode by\nusing a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/mdX")),(0,i.kt)("p",null,"or"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"reiserfsck\xa0/dev/mdX")),(0,i.kt)("p",null,"where X corresponds to the diskX number shown in the Unraid GUI. Using\nthe /dev/mdX type device will maintain parity. If the file system to be\nrepaired is an encrypted XFS one then the command needs to be modified\nto use the /dev/mapper/mdX device"),(0,i.kt)("p",null,"If you ever need to run a check on a drive that is not part of the array\nor if the array is not started then you need to run the appropriate\ncommand from a console/terminal session. As an example for an XFS disk\nyou would use a command of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"xfs_repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked."),(0,i.kt)("li",{parentName:"ul"},"The reason for not doing it this way on array drives is that\nalthough the disk would be repaired parity would be invalidated\nwhich can reduce the chances of recovering a failed drive until\nvalid parity has been re-established."),(0,i.kt)("li",{parentName:"ul"},"if you run this form of the command on an array disk you will\ninvalidate parity so it is not recommended except in exceptional\ncircumstances.")),(0,i.kt)("h4",{id:"btrfs-2"},"BTRFS"),(0,i.kt)("p",null,"You can run the file system check from the command line for BTRFS as\nshown below if the array is started in Maintenance mode by using a\ncommand of the form:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--readonly\xa0/dev/sdX1")),(0,i.kt)("p",null,"where X corresponds to the device identifier shown in the Unraid GUI.\nPoints to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The value of X can change when Unraid is rebooted so make sure it is\ncorrect for the current boot"),(0,i.kt)("li",{parentName:"ul"},"Note the presence of the '1' on the end to indicate the partition\nto be checked.")),(0,i.kt)("p",null,"In the event that you want to continue to try and actually repair the\nsystem you can run"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"btrfs\xa0check\xa0--repair\xa0/dev/sdX1")),(0,i.kt)("p",null,"but you are advised to only do this after getting advice in the forum as\nsometimes the ",(0,i.kt)("em",{parentName:"p"},"-","-repair")," option can damage a BTRFS system even further."),(0,i.kt)("h4",{id:"zfs-1"},"ZFS"),(0,i.kt)("p",null,"This section should be completed once Unraid 6.12 has been released with\nZFS support included as a standard feature."),(0,i.kt)("h2",{id:"changing-a-file-system-type"},"Changing a File System type"),(0,i.kt)("p",null,"There may be times when you wish to change the file system type on a\nparticular drive. The steps are outlined below."),(0,i.kt)("p",null,"IMPORTANT: These steps will ",(0,i.kt)("strong",{parentName:"p"},"erase any existing content")," on the drive\nso make sure you have first copied it elsewhere before attempting to\nchange the file system type if you do not want to lose it."),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop the array"),(0,i.kt)("li",{parentName:"ol"},"Click on the drive whose format you want to change"),(0,i.kt)("li",{parentName:"ol"},"Change the format to the new one you want to use. Repeat if\nnecessary for each drive to be changed"),(0,i.kt)("li",{parentName:"ol"},"Start the array"),(0,i.kt)("li",{parentName:"ol"},"There will now be an option on the main tab to format unmountable\ndrives and showing what drives these will be. Check that only the\ndrive(s) you expect show."),(0,i.kt)("li",{parentName:"ol"},"Check the box to confirm the format and then press the Format\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The format will now start. It typically only takes a few minutes.\nThere have been occasions where the status does not update but\nrefreshing the Main tab normally fixes this.")),(0,i.kt)("p",null,"If anything appears to go wrong then ask in the forum to add your system\ndiagnostics zip file (obtained via Tools-",">","Diagnostics) to your post."),(0,i.kt)("p",null,"Notes:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"For SSDs you can erase the current contents using"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"blkdiscard\xa0/dev/sdX")),(0,i.kt)("p",{parentName:"li"},"at the console where 'X' corresponds to what is currently shown in\nthe Unraid GUI for the device. Be careful that you get it right as\nyou do not want to accidentally erase the contents of the wrong\ndrive."))),(0,i.kt)("h2",{id:"converting-to-a-new-file-system-type"},"Converting to a new File System type"),(0,i.kt)("p",null,"There is the special case of changing a file system where you want to\nkeep the contents of the drive. The commonest reason for doing this is\nthose users who ran an older version of Unraid where the only supported\nfile system type was reiserFS (which is now deprecated) and they want to\nswitch the drive to using either XFS or BTRFS file system instead.\nHowever, there may be users who want to convert between file system\ntypes for other reasons."),(0,i.kt)("p",null,"In simplistic terms the process is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Copy the data off the drive in question to another location. This\ncan be elsewhere on the array or anywhere else suitable.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"You do have to have enough free space to temporarily hold this\ndata"),(0,i.kt)("li",{parentName:"ul"},"Many users do such a conversion just after adding a new drive to\nthe array as this gives them the free space required."))),(0,i.kt)("li",{parentName:"ol"},"Follow the procedure above for changing the file system type of the\ndrive. This will leave you with an empty drive that is now in the\ncorrect format but that has no files on it."),(0,i.kt)("li",{parentName:"ol"},"Copy the files you saved in step 1 back to this drive"),(0,i.kt)("li",{parentName:"ol"},"If you have multiple drives that need to be converted then do them\none at a time.")),(0,i.kt)("p",null,"This is a time-consuming process as you are copying large amounts of\ndata. However, most of this is ",(0,i.kt)("em",{parentName:"p"},"computer time")," as the user does not need\nto be continually present closely watching the actual copying steps."),(0,i.kt)("h2",{id:"reformatting-a-drive"},"Reformatting a drive"),(0,i.kt)("p",null,"If by any chance you want to reformat a drive to erase its contents\nkeeping the existing file system type then many users find that it may\nnot be obvious how to do this from the Unraid GUI."),(0,i.kt)("p",null,"The way to do this is to follow the above process for ",(0,i.kt)("a",{parentName:"p",href:"#changing-a-file-system-type"},"changing the file\nsystem type"),"\ntwice. The first time you change it to any other type, and then once it\nhas been formatted to the new type repeat the process this time setting\nthe type back to the one you started with."),(0,i.kt)("p",null,"This process will only take a few minutes, and as you go parity is\nupdated accordingly."),(0,i.kt)("h2",{id:"reformatting-a-cache-drive"},"Reformatting a cache drive"),(0,i.kt)("p",null,"There may be times when you want to change the format used on the cache\ndrive (or some similar operation) and preserve as much of its existing\ncontents as possible. In such cases the recommended way to proceed that\nis least likely to go wrong is:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Disable docker and VM services under Settings"),(0,i.kt)("li",{parentName:"ol"},"Start array. If you have correctly disabled these services there\nwill be NO Docker or VMstab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"Set all shares that have files on the cache and currently don't\nhave a Use Cache:Yes to BE Cache:Yes. Make a note of which shares\nyou changed and what setting they had before the change"),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion (which can take\nsome time to complete if there are a lot of files); check cache\ndrive contents, should be empty. If it's not, STOP, post\ndiagnostics, and ask for help."),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Set cache drive desired format to XFS or BTRFS, if you only have a\nsingle cache disk and are keeping that configuration, then XFS is\nthe recommended format. XFS is only available as a selection if\nthere is only 1 (one) cache slot shown while the array is stopped."),(0,i.kt)("li",{parentName:"ol"},"Start array."),(0,i.kt)("li",{parentName:"ol"},"Verify that the cache drive and ONLY the cache drive shows\nunformatted. Select the checkbox saying you are sure, and format the\ndrive."),(0,i.kt)("li",{parentName:"ol"},"Set any shares that you changed to be Cache: Yes earlier to Cache:\nPrefer if they were originally Cache: Only or Cache: Prefer. If any\nwere Cache: No, set them back that way."),(0,i.kt)("li",{parentName:"ol"},"Run mover from the Main tab; wait for completion; check cache drive\ncontents which should be back the way it was."),(0,i.kt)("li",{parentName:"ol"},"Change any share that was set to Use Cache:Only back to that option"),(0,i.kt)("li",{parentName:"ol"},"Stop array."),(0,i.kt)("li",{parentName:"ol"},"Enable docker and VM services."),(0,i.kt)("li",{parentName:"ol"},"Start array")),(0,i.kt)("p",null,"There are other alternative procedures that might be faster if you are\nLinux aware, but the one shown above is the one that has proved most\nlikely to succeed without error for the average Unraid user."),(0,i.kt)("h2",{id:"btrfs-operations"},"BTRFS Operations"),(0,i.kt)("p",null,"If you want more information BTRFS then the\n","[./<Https://en.wikipedia.org/wiki/Btrfs> Wikipedia BTRFS article]"," is a\ngood place to start"),(0,i.kt)("p",null,"There are a number of operations that are specific to BTRFS formatted\ndrives that do not have a direct equivalent in the other formats."),(0,i.kt)("h3",{id:"balance"},"Balance"),(0,i.kt)("p",null,"Unlike most conventional filesystems, BTRFS uses a two-stage allocator.\nThe first stage allocates large regions of space known as chunks for\nspecific types of data, then the second stage allocates blocks like a\nregular filesystem within these larger regions. There are three\ndifferent types of chunks:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Data Chunks: These store regular file data."),(0,i.kt)("li",{parentName:"ul"},"Metadata Chunks: These store metadata about files, including among\nother things timestamps, checksums, file names, ownership,\npermissions, and extended attributes."),(0,i.kt)("li",{parentName:"ul"},"System Chunks: These are a special type of chunk which stores data\nabout where all the other chunks are located.")),(0,i.kt)("p",null,"Only the type of data that the chunk is allocated for can be stored in\nthat chunk. The most common case these days when you get a -ENOSPC error\non BTRFS is that the filesystem has run out of room for data or metadata\nin existing chunks, and can't allocate a new chunk. You can verify that\nthis is the case by running btrfs fi df on the filesystem that threw the\nerror. If the Data or Metadata line shows a Total value that is\nsignificantly different from the Used value, then this is probably the\ncause."),(0,i.kt)("p",null,"What btrfs balance does is to send things back through the allocator,\nwhich results in space usage in the chunks being compacted. For example,\nif you have two metadata chunks that are both 40% full, a balance will\nresult in them becoming one metadata chunk that's 80% full. By\ncompacting space usage like this, the balance operation is then able to\ndelete the now-empty chunks and thus frees up room for the allocation of\nnew chunks. If you again run btrfs fi df after you run the balance, you\nshould see that the Total and Used values are much closer to each other,\nsince balance deleted chunks that weren't needed anymore."),(0,i.kt)("p",null,"The BTRFS balance operation can be run from the Unraid GUI by clicking\non the drive on the Main tab and running scrub from the resulting\ndialog. The current status information for the volume is displayed. You\ncan optionally add parameters to be passed to the balance operation and\nthen start the scrub by pressing the Balance button."),(0,i.kt)("h3",{id:"scrub"},"Scrub"),(0,i.kt)("p",null,"Scrubbing involves reading all the data from all the disks and verifying\nchecksums. If any values are not correct and you have a redundant BTRFS\npool then the data can be corrected by reading a good copy of the block\nfrom another drive. The scrubbing code also scans on read automatically.\nIt is recommended that you scrub high-usage file systems ",(0,i.kt)("strong",{parentName:"p"},"once a week"),"\nand all other file systems ",(0,i.kt)("strong",{parentName:"p"},"once a month"),"."),(0,i.kt)("p",null,"You can initiate a check of the entire file system by triggering a file\nsystem scrub job. The scrub job scans the entire file system for\nintegrity. It automatically attempts to report and repair any bad blocks\nthat it finds along the way. Instead of going through the entire disk\ndrive, the scrub job deals only with data that is actually allocated.\nDepending on the allocated disk space, this is much faster than\nperforming an entire surface scan of the disk."),(0,i.kt)("p",null,"The BTRFS scrub operation can be run from the Unraid GUI by clicking on\nthe drive on the Main tab and running scrub from the resulting dialog."),(0,i.kt)("h1",{id:"unassigned-drives"},"Unassigned Drives"),(0,i.kt)("p",null,"Unassigned drives are drives that are present in the server running\nUnraid that have not been added to the array or to a cache pool."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is important to note that all such drives that are plugged into the\nserver at the point you start the array count towards the Unraid\nAttached Devices license limits.")),(0,i.kt)("p",null,"Typical uses for such drives are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugging in removable drives for the purposes of transferring files\nor backing up drives."),(0,i.kt)("li",{parentName:"ul"},"Having drives dedicated to specific use (such as running VMs) where\nyou want higher performance than can be achieved by using array\ndrives.")),(0,i.kt)("p",null,"It is strongly recommended that you install the Unassigned Devices (UD)\nplugins via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab if you want to use Unassigned Drives on\nyour system. There are 2 plugins available:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"The basic ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices")," plugin provides support for file\nsystem types supported as standard in Unraid."),(0,i.kt)("li",{parentName:"ol"},"The ",(0,i.kt)("strong",{parentName:"li"},"Unassigned Devices Plus")," plugin extends the file system\nsupport to include options such as ExFat ant HFS+.")),(0,i.kt)("p",null,"You should look at the Unassigned Devices support\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/92462-unassigned-devices-managing-disk-drives-and-remote-shares-outside-of-the-unraid-array/"},"thread"),"\nfor these plugins to get more information about the very\nextensive facilities offered and guidance on how to use them."),(0,i.kt)("h1",{id:"performance"},"Performance"),(0,i.kt)("h2",{id:"array-write-modes"},"Array Write Modes"),(0,i.kt)("p",null,"Unraid maintains real-time parity and the performance of writing to the\nparity protected array in Unraid is strongly affected by the method that\nis used to update parity."),(0,i.kt)("p",null,"There are fundamentally 2 methods supported:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Read/Modify/Write"),(0,i.kt)("li",{parentName:"ul"},"Turbo Mode (also known as ",(0,i.kt)("em",{parentName:"li"},"reconstruct write"),")")),(0,i.kt)("p",null,"These are discussed in more detail below to help users decide which\nmodes are appropriate to how they currently want their array to operate."),(0,i.kt)("h3",{id:"setting-the-write-mode"},"Setting the Write mode"),(0,i.kt)("p",null,"The write mode is set by going ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Disk Settings"),", and look for\nthe ",(0,i.kt)("strong",{parentName:"p"},"Tunable (md_write_method"),") setting. The 3 options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Auto"),": Currently this operates just like setting the\nread/modify/write option but is reserved for future enhancement"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"read/modify/write")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"reconstruct write")," (a.k.a.Turbo write)")),(0,i.kt)("p",null,"To change it, click on the option you want, then the Apply button. The\neffect should be immediate so you can change it at any time"),(0,i.kt)("p",null,"The different modes and their implications are discussed in more detail\nbelow"),(0,i.kt)("h3",{id:"readmodifywrite-mode"},"Read/Modify/Write mode"),(0,i.kt)("p",null,'Historically, Unraid has used the "read/modify/write" method to update\nparity and to keep parity correct for all data drives.'),(0,i.kt)("p",null,"Say you have a block of data to write to a drive in your array, and\nnaturally you want parity to be updated too. In order to know how to\nupdate parity for that block, you have to know what is the difference\nbetween this new block of data and the existing block of data currently\non the drive. So you start by reading in the existing block and\ncomparing it with the new block. That allows you to figure out what is\ndifferent, so now you know what changes you need to make to the parity\nblock, but first, you need to read in the existing parity block. So you\napply the changes you figured out to the parity block, resulting in a\nnew parity block to be written out. Now you want to write out the new\ndata block, and the parity block, but the drive head is just past the\nend of the blocks because you just read them. So you have to wait a long\ntime (in computer time) for the disk platters to rotate all the way back\naround until they are positioned to write to that same block. That\nplatter rotation time is the part that makes this method take so long.\nIt's the main reason why parity writes are so much slower than regular\nwrites."),(0,i.kt)("p",null,'To summarize, for the "read/modify/write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"read in the parity block and read in the existing data block (can be\ndone simultaneously)"),(0,i.kt)("li",{parentName:"ul"},"compare the data blocks, then use the difference to change the\nparity block to produce a new parity block (very short)"),(0,i.kt)("li",{parentName:"ul"},"wait for platter rotation (very long!)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block and write out the data block (can be done\nsimultaneously)")),(0,i.kt)("p",null,"That's 2 reads, a calc, a long wait, and 2 writes."),(0,i.kt)("p",null,"The advantages of this approach are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only the parity drive(s) and the drive being updated need to be spun\nup."),(0,i.kt)("li",{parentName:"ul"},"Minimises power usage as array drives can be kept spun down when not\nbeing accessed"),(0,i.kt)("li",{parentName:"ul"},"Does not require all the other array drives to be working perfectly")),(0,i.kt)("h3",{id:"turbo-write-mode"},"Turbo write mode"),(0,i.kt)("p",null,'More recently Unraid introduced the Turbo write mode (often called\n"reconstruct write")'),(0,i.kt)("p",null,"We start with that same block of new data to be saved, but this time we\ndon't care about the existing data or the existing parity block. So we\ncan immediately write out the data block, but how do we know what the\nparity block should be? We issue a read of the same block on all of the\n",(0,i.kt)("em",{parentName:"p"},"other")," data drives, and once we have them, we combine all of them\nplus our new data block to give us the new parity block, which we then\nwrite out! Done!"),(0,i.kt)("p",null,'To summarize, for the "reconstruct write" method, you need to:'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"write out the data block while simultaneously reading in the data\nblocks of all other data drives"),(0,i.kt)("li",{parentName:"ul"},"calculate the new parity block from all of the data blocks,\nincluding the new one (very short)"),(0,i.kt)("li",{parentName:"ul"},"write out the parity block")),(0,i.kt)("p",null,"That's a write and a bunch of simultaneous reads, a calc, and a write,\nbut no platter rotation wait! The upside is it can be much faster."),(0,i.kt)("p",null,"The downside is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"ALL of the array drives must be spinning, because they ALL are\ninvolved in EVERY write."),(0,i.kt)("li",{parentName:"ul"},"Increased power draw due to the need to keep all drives spinning"),(0,i.kt)("li",{parentName:"ul"},"All drives must be reading without error.")),(0,i.kt)("h3",{id:"ramifications"},"Ramifications"),(0,i.kt)("p",null,"So what are the ramifications of this?"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"For some operations, like parity checks and parity builds and drive\nrebuilds, it doesn't matter, because all of the drives are spinning\nanyway."),(0,i.kt)("li",{parentName:"ul"},"For large write operations, like large transfers to the array, it\ncan make a big difference in speed!"),(0,i.kt)("li",{parentName:"ul"},"For a small write, especially at an odd time when the drives are\nnormally sleeping, all of the drives have to be spun up before the\nsmall write can proceed."),(0,i.kt)("li",{parentName:"ul"},"And what about those little writes that go on in the background,\nlike file system housekeeping operations? EVERY write at any time\nforces EVERY array drive to spin up. So you are likely to be\nsurprised at odd times when checking on your array, and expecting\nall of your drives to be spun down, and finding every one of them\nspun up, for no discernible reason."),(0,i.kt)("li",{parentName:"ul"},"So one of the questions to be faced is, how do you want your various\nwrite operations to be handled. Take a small scheduled backup of\nyour phone at 4 in the morning. The backup tool determines there's\na new picture to back up, so tries to write it to your Unraid\nserver. If you are using the old method, the data drive and the\nparity drive have to spin up, then this small amount of data is\nwritten, possibly taking a couple more seconds than Turbo write\nwould take. It's 4am, do you care? If you were using Turbo write,\nthen all of the drives will spin up, which probably takes somewhat\nlonger spinning them up than any time saved by using Turbo write to\nsave that picture (but a couple of seconds faster in the save).\nPlus, all of the drives are now spinning, uselessly."),(0,i.kt)("li",{parentName:"ul"},"Another possible problem if you were in Turbo mode, and you are\nwatching a movie streaming to your player, then a write kicks into\nthe server and starts spinning up ALL of the drives, causing that\nwell-known pause and stuttering in your movie. Who wants to deal\nwith the whining that starts then?")),(0,i.kt)("p",null,"Currently, you only have the option to use the old method or the new\n(currently the Auto option means the old method). The plan is to add the\ntrue Auto option that will use the old method by default, ","*","unless","*"," all\nof the drives are currently spinning. If the drives are all spinning,\nthen it slips into Turbo. This should be enough for many users. It would\nnormally use the old method, but if you planned a large transfer or a\nbunch of writes, then you would spin up all of the drives - and enjoy\nfaster writing."),(0,i.kt)("p",null,"The auto method has the potential of the system automatically\nswitching modes depending on current array activity but this has not\nhappened so far. The problem is knowing when a drive is spinning, and\nbeing able to detect it without noticeably affecting write performance,\nruining the very benefits we were trying to achieve. If on every write\nyou have to query each drive for its status, then you will noticeably\nimpact I/O performance. So to maintain good performance, you need\nanother function working in the background keeping near-instantaneous\ntrack of spin status, and providing a single flag for the writer to\ncheck, whether they are all spun up or not, to know which method to use."),(0,i.kt)("p",null,'Many users would like tighter and smarter control of which write mode is\nin use. There is currently no official way of doing this but you could\ntry searching for "Turbo Write" on the Apps tab for unofficial ways to\nget better control.'),(0,i.kt)("h3",{id:"using-a-cache-drive"},"Using a Cache Drive"),(0,i.kt)("p",null,"It is possible to use a Cache Drive/Pool to improve the ",(0,i.kt)("strong",{parentName:"p"},"perceived"),"\nspeed of writing to the array. This can be done on a share-by-share\nbasis using the Use Cache setting available for each share by clicking\non the share name on the Shares tab in the GUI. It is important to\nrealize that using the cache has not really sped up writing files to the\narray - it is just that such writes now occur when the user is not\nwatching them"),(0,i.kt)("p",null,"Points to note are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("strong",{parentName:"li"},"Yes")," setting for ",(0,i.kt)("em",{parentName:"li"},"Use Cache")," causes new files for the share\nto initially be written to the cache and later moved to the parity\nprotected array when ",(0,i.kt)("em",{parentName:"li"},"mover")," runs."),(0,i.kt)("li",{parentName:"ul"},"Writes to the cache run at the full speed the cache is capable of."),(0,i.kt)("li",{parentName:"ul"},"It is not uncommon to use SSDs in the cache to get maximum\nperformance."),(0,i.kt)("li",{parentName:"ul"},"Moves from cache to array are still comparatively slow but since\nmover is normally scheduled to run when the system is otherwise idle\nthis is not visible to the end-user."),(0,i.kt)("li",{parentName:"ul"},"There is a ",(0,i.kt)("strong",{parentName:"li"},"Minimum Free Space")," setting under ",(0,i.kt)("em",{parentName:"li"},"Settings-",">","Global\nShare settings")," and if the free space on the cache falls below this\nvalue Unraid will stop trying to write new files to the cache. Since\nwhen Unraid first creates a file it does not know the final size it\nis recommended that the value for this setting should be as large\n(or larger) as the biggest file you expect to write to the share as\nyou want to stop Unraid selecting the cache for a file that will not\nfit in the space available. This will stop the write failing with an\n'out of space' error when the free space gets exhausted."),(0,i.kt)("li",{parentName:"ul"},"If there is not sufficient free space on the cache then writes will\nstart by-passing the cache and revert to the speeds that would be\nobtained when not using the cache.")),(0,i.kt)("h2",{id:"read-modes"},"Read Modes"),(0,i.kt)("p",null,"Normally read performance is determined by the maximum speed that a file\ncan be read off a drive. Unlike some other forms of RAID an Unraid\nsystem does not utilize striping techniques to improve performance as\nevery file is constrained to a single drive."),(0,i.kt)("p",null,"If a disk is marked as disabled and being emulated then Unraid needs to\nreconstruct its contents on the fly by reading the appropriate sectors\nof all the good drives and the parity drive(s). In such a case the read\nperformance is going to be determined primarily by the slowest drives in\nthe system."),(0,i.kt)("p",null,"It is also worth emphasizing that if there is any array operation going\non such as a parity check or a disk rebuild then read performance will\nbe degraded significantly due to drive head movements caused by disk\ncontention between the two operations."),(0,i.kt)("h2",{id:"cache-pools"},"(Cache) Pools"),(0,i.kt)("p",null,"Unraid supports the use of (cache pools) that are separate from the main\narray and work differently from a performance perspective and these\nshould be considered when performance is a prime criteria. If a pool\nconsists of multiple drives then Unraid mandates that is is formatted\nusing the BTRFS file system."),(0,i.kt)("p",null,"BTRFS supports a variety of RAID profiles and these will perform more\nlike a traditional RAID system giving much higher throughput than the\nmain Unraid array."),(0,i.kt)("p",null,"Recovery after drive failure tends to be harder and more prone to lead\nto data loss which is one disadvantage of using pools for everything."))}u.isMDXComponent=!0},9253:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Btrfs-raid1-0f8821a1511642aa3fe12e6e60be1ae3.jpg"},6712:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},6997:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAQABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9evgP+2t/w0h8UfGF74Z0e0PwN8E29xZS/EK8v/Jt/EOrwShbmLTYtm2awtFjmSa+Z1jaceXEJBFM6+O/s+f8FEvHPgX4L/B7x78bdFt7f4a/GqyOrR+NbeVEj8DXWqahPcaPpeq26RqsFobC5sLSO/3sPtUTJcbDNHI7v2hv+CePjjwT8FvjF4D+CetW9t8OfjVZDSZfBdxEkcfgm61S/httY1TSrhpFWC1Nhc393JY7GH2mFXt9jTSRyew/Hb9ipf2jfif4NsfE2s2v/Cj/AAPb295D8PbOw8m38QavBLutpdSl3kT2NoscLw2SxrG048yUyiKFEAP/2Q=="},4557:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},7021:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Confirmrebuild-6cad3baf0748331ceb97a74344ace87f.png"},3941:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailureindicator-b9a07c9faf62f81c27e878b8f9028ae1.png"},3565:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskfailurenotification-fed01ecb6aed8a37b551176530abc4bd.png"},6213:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Diskrebuildnotification-430933c6d14fcdd5e280ac3612657786.png"},9299:(e,t,a)=>{a.d(t,{Z:()=>n});const n="data:image/png;base64,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"},3119:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Invalidormissingkey-dc584cc53dbbe567f6327956e0d2fa48.png"},7539:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Newconfig-e2b06a7cf5cec628f544d2b1982ca621.png"},362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Timeremaining-b5cabc06bc085ed1e797f7a4c554906d.png"},3741:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanydevices-aa282a55da5b4cdb1c106c1971e3bc3a.png"},1306:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Toomanywrong-323c00f4a6565922be138b305fe75893.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/5f60a020.c559cc54.js b/zh/assets/js/5f60a020.c559cc54.js new file mode 100644 index 000000000..4c9b8dd95 --- /dev/null +++ b/zh/assets/js/5f60a020.c559cc54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4863],{4137:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},s=Object.keys(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)r=s[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),h=d(r),c=n,m=h["".concat(l,".").concat(c)]||h[c]||u[c]||s;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,i=new Array(s);i[0]=c;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[h]="string"==typeof e?e:n,i[1]=o;for(var d=2;d<s;d++)i[d]=r[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}c.displayName="MDXCreateElement"},6260:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var a=r(7462),n=(r(7294),r(4137));const s={sidebar_position:2},i="Disk shares",o={unversionedId:"unraid-os/manual/shares/disk-shares",id:"unraid-os/manual/shares/disk-shares",title:"Disk shares",description:"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.",source:"@site/docs/unraid-os/manual/shares/disk-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/disk-shares",permalink:"/zh/unraid-os/manual/shares/disk-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/disk-shares.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"unraidSidebar",previous:{title:"User shares",permalink:"/zh/unraid-os/manual/shares/user-shares"},next:{title:"Network access",permalink:"/zh/unraid-os/manual/shares/network-access"}},l={},d=[{value:"Overview",id:"overview",level:2},{value:"Disk share constraints",id:"disk-share-constraints",level:2}],p={toc:d},h="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(h,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"disk-shares"},"Disk shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable disk shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". Disk shares are disabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a ",(0,n.kt)("strong",{parentName:"p"},"Disk Shares")," section on the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. If you create a disk share, you should modify the user ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/shares/network-access#access-permissions-at-share-level"},"access permissions")," to restrict network user access."),(0,n.kt)("p",null,"When viewed at the Linux level, the physical devices or pools will appear directly under ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled."),(0,n.kt)("p",null,"Examples of such names are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/diskX:")," - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be ",(0,n.kt)("em",{parentName:"li"},"diskX"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"/mnt/pool-name:")," - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be ",(0,n.kt)("inlineCode",{parentName:"li"},"pool-name"),".")),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the ",(0,n.kt)("strong",{parentName:"p"},"Main")," tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at ",(0,n.kt)("inlineCode",{parentName:"p"},"/boot"),"."),(0,n.kt)("p",{parentName:"admonition"},"Due to the nature of the Unraid boot device, we recommend you maintain your shares in ",(0,n.kt)("em",{parentName:"p"},"Private")," mode, with read/write access given to trusted users.")),(0,n.kt)("h2",{id:"disk-share-constraints"},"Disk share constraints"),(0,n.kt)("p",null,"If you have both disk shares and user shares enabled in ",(0,n.kt)("strong",{parentName:"p"},"Global Share Settings"),", then there is an important restriction that you must observe to avoid potential data loss."),(0,n.kt)("p",null,"You must ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"never"))," copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, ",(0,n.kt)("inlineCode",{parentName:"p"},"cp /mnt/user/share/file /mnt/disk1/share/file"),"."),(0,n.kt)("p",null,"At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost."),(0,n.kt)("p",null,"There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management#unassigned-drives"},"Unassigned Disk"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/6b42df2b.3f0e98f5.js b/zh/assets/js/6b42df2b.3f0e98f5.js deleted file mode 100644 index 4d8c5c738..000000000 --- a/zh/assets/js/6b42df2b.3f0e98f5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/zh/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"Community Applications",permalink:"/zh/unraid-os/manual/applications"},next:{title:"Troubleshooting",permalink:"/zh/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/zh/assets/js/6b42df2b.84bfb8dd.js b/zh/assets/js/6b42df2b.84bfb8dd.js new file mode 100644 index 000000000..cd163bab6 --- /dev/null +++ b/zh/assets/js/6b42df2b.84bfb8dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7044],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>m});var A=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(e);t&&(A=A.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,A)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,A,n=function(e,t){if(null==e)return{};var a,A,n={},r=Object.keys(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(A=0;A<r.length;A++)a=r[A],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=A.createContext({}),g=function(e){var t=A.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=g(e.components);return A.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return A.createElement(A.Fragment,{},t)}},c=A.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=g(a),c=n,m=s["".concat(o,".").concat(c)]||s[c]||p[c]||r;return a?A.createElement(m,i(i({ref:t},u),{},{components:a})):A.createElement(m,i({ref:t},u))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[s]="string"==typeof e?e:n,i[1]=l;for(var g=2;g<r;g++)i[g]=a[g];return A.createElement.apply(null,i)}return A.createElement.apply(null,a)}c.displayName="MDXCreateElement"},3966:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>g});var A=a(7462),n=(a(7294),a(4137));const r={sidebar_position:8},i="Multi-Language Support",l={unversionedId:"unraid-os/manual/multi-language",id:"unraid-os/manual/multi-language",title:"Multi-Language Support",description:"Introduction",source:"@site/docs/unraid-os/manual/multi-language.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/multi-language",permalink:"/zh/unraid-os/manual/multi-language",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"unraidSidebar",previous:{title:"VPN",permalink:"/zh/unraid-os/manual/security/vpn"},next:{title:"Troubleshooting",permalink:"/zh/unraid-os/manual/troubleshooting"}},o={},g=[{value:"Introduction",id:"introduction",level:2},{value:"A note about all translations",id:"a-note-about-all-translations",level:3},{value:"How to Load a Language pack",id:"how-to-load-a-language-pack",level:2},{value:"How to Activate a Language",id:"how-to-activate-a-language",level:2},{value:"How to Switch Back to English?",id:"how-to-switch-back-to-english",level:2},{value:"Developer Requirements for Multi-Language Support",id:"developer-requirements-for-multi-language-support",level:2},{value:"Multi-Language Forums",id:"multi-language-forums",level:2}],u={toc:g},s="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,A.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"multi-language-support"},"Multi-Language Support"),(0,n.kt)("h2",{id:"introduction"},"Introduction"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"Unraid 6.9"),"\nintroduced the mechanism to ",(0,n.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-6-9-multi-language-support"},"support multiple\nlanguages")," in\nthe Unraid webGUI."),(0,n.kt)("p",null,"You can now download, install, and use the Unraid OS in the following\nlanguages:"),(0,n.kt)("p",null," ",(0,n.kt)("strong",{parentName:"p"},"Arabic, Chinese, Dutch, French, German, Portuguese, Polish and Spanish.")),(0,n.kt)("p",null,"There are also multiple other languages that are in the process of being translated. To check if your language is available, ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid?q=lang&type=all&language=&sort="},"see here.")),(0,n.kt)("h3",{id:"a-note-about-all-translations"},"A note about all translations"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are believed to be accurate to the best of Limetech's\nknowledge but the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid/lang-en_US"},"English\ntext")," is always the go to\nreference point.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"Translations are maintained in public\n",(0,n.kt)("a",{parentName:"p",href:"https://github.com/unraid"},"Github")," repositories. If you would like\nto inform us of errors and/or participate in translation\ncorrections, please write a post in the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"respective language forum\nsections"),"\nand tag ",(0,n.kt)("inlineCode",{parentName:"p"},"@SpencerJ"),". You can also submit Pull Requests in the respective public language repos.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},"If you would like to see a new language added, please write a post\nin ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/77-general/"},"this forum thread"),"."))),(0,n.kt)("h2",{id:"how-to-load-a-language-pack"},"How to Load a Language pack"),(0,n.kt)("p",null,"Language packs are downloaded and installed via the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"Community\nApplications\nplugin"),".\nAs long as you are on Unraid 6.9.0 or later and ",(0,n.kt)("em",{parentName:"p"},"CA version 2020.05.12\nor later,")," look for a new category along the left hand side titled\n",(0,n.kt)("strong",{parentName:"p"},"Language"),". This will allow you to load the current language pack selected."),(0,n.kt)("p",null,"You can also search for languages via the Search bar in CA.\n",(0,n.kt)("img",{src:a(2034).Z,width:"2530",height:"1352"})),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note:")," There is currently no automated mechanism for updating\nlanguage packs as users enhance or add to the translations held on\ngitHub. Unraid users who will need to periodically download the latest\nlanguage pack manually for new and improved translations."),(0,n.kt)("h2",{id:"how-to-activate-a-language"},"How to Activate a Language"),(0,n.kt)("p",null,"Via Community Applications -",">"," Language, click the download button on the\nlanguage pack you would like to download and use."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(2851).Z,width:"88",height:"92"})),(0,n.kt)("h2",{id:"how-to-switch-back-to-english"},"How to Switch Back to English?"),(0,n.kt)("p",null,"To switch back to English, you can always click the Switch back toggle button located in the top right of the webGui."),(0,n.kt)("p",null,(0,n.kt)("img",{src:a(9858).Z,width:"90",height:"88"})),(0,n.kt)("h2",{id:"developer-requirements-for-multi-language-support"},"Developer Requirements for Multi-Language Support"),(0,n.kt)("p",null,"It is necessary for plugin developers to take appropriate action within\ntheir plugins to enable them to utilize the multi-language support. The\ndetails on what is required are covered in the design guide ",(0,n.kt)("a",{parentName:"p",href:"https://wiki.unraid.net/images/5/5e/Multi-language_Support_Design_Guide.pdf"},"here"),"."),(0,n.kt)("p",null,"Once plugin developers have made the necessary changes within their\nplugin to add the multi-language support mechanisms provided by Unraid\nthen they will typically produce the English translations master file\nfor their plugin and rely on Unraid community members to provide\nappropriate translation text for languages which they know how to speak."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": There is no requirement for any given plugin to support\nMulti-language. However it is a good idea for every plugin author to at\nleast consider supporting Multi-Language. Even if such support is not\nadded a plugin will still work as-is on 6.9+ with no changes required\nalbeit only with text in English (or whatever language the developer has\nembedded into the plugin)."),(0,n.kt)("h2",{id:"multi-language-forums"},"Multi-Language Forums"),(0,n.kt)("p",null,"In the Unraid forum, there are also many active ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"language-specific\nforums")," to\nget help or help others in your mother tongue."),(0,n.kt)("p",null,"Please see the ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/75-multi-language-section/"},"Multi-Language\nSection")," to\ntake part in these growing communities!"))}p.isMDXComponent=!0},2851:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"},2034:(e,t,a)=>{a.d(t,{Z:()=>A});const A=a.p+"assets/images/Screen_Shot_2021-06-24_at_12.38.44_PM-049ee9061061bfaacfedb1cba4629e2a.png"},9858:(e,t,a)=>{a.d(t,{Z:()=>A});const A="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/zh/assets/js/79722de7.310dcd27.js b/zh/assets/js/79722de7.a9e77c89.js similarity index 72% rename from zh/assets/js/79722de7.310dcd27.js rename to zh/assets/js/79722de7.a9e77c89.js index 9b64e8dc3..82800ec83 100644 --- a/zh/assets/js/79722de7.310dcd27.js +++ b/zh/assets/js/79722de7.a9e77c89.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=p(n),m=r,c=h["".concat(s,".").concat(m)]||h[m]||u[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/zh/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/zh/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/zh/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},h="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(h,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9725],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=p(n),m=r,c=h["".concat(s,".").concat(m)]||h[m]||u[m]||o;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[h]="string"==typeof e?e:r,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(4137));const o={},i="USB Flash Drive Preparation",l={unversionedId:"legacy/FAQ/usb-flash-drive-preparation",id:"legacy/FAQ/usb-flash-drive-preparation",title:"USB Flash Drive Preparation",description:"USB Flash Drives",source:"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",sourceDirName:"legacy/FAQ",slug:"/legacy/FAQ/usb-flash-drive-preparation",permalink:"/zh/legacy/FAQ/usb-flash-drive-preparation",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Understanding SMART Reports",permalink:"/zh/legacy/FAQ/understanding-smart-reports"},next:{title:"Contribute",permalink:"/zh/category/contribute"}},s={},p=[{value:"USB Flash Drives",id:"usb-flash-drives",level:2},{value:"Instructions",id:"instructions",level:2},{value:"Windows XP",id:"windows-xp",level:3},{value:"Windows Vista and Windows 7",id:"windows-vista-and-windows-7",level:3},{value:"MacOS X",id:"macos-x",level:3},{value:"Booting Unraid Server",id:"booting-unraid-server",level:2},{value:"If the Flash will not boot, read over the following tips",id:"if-the-flash-will-not-boot-read-over-the-following-tips",level:2}],d={toc:p},h="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(h,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"usb-flash-drive-preparation"},"USB Flash Drive Preparation"),(0,r.kt)("h2",{id:"usb-flash-drives"},"USB Flash Drives"),(0,r.kt)("p",null,"-","-","-","-","- There is now an USB Creator tool\nfrom Limetech, for both Windows and macOS that users are encouraged to\nuse. The tool can be found ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"here.")),(0,r.kt)("hr",null),(0,r.kt)("p",null,"-","-","-","-","- Important version note: This document is no longer for\n",(0,r.kt)("strong",{parentName:"p"},"WINDOWS")," users. In general, you should use ",(0,r.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"Unraid Server\nInstallation")," instead. With the advent of\nthe all-in-one releases (as of v4.6 Final), a ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat"),"\nbatch installation file is included, that replaces the use of the\n",(0,r.kt)("strong",{parentName:"p"},"syslinux")," utility in preparing the flash drives for booting Unraid.\nThe instructions below do still work, and are necessary for installing\nversions of Unraid earlier than v4.6 Final, and for preparing a flash\ndrive on a Mac. And there is still value in the advanced troubleshooting\ntips below.",">"),(0,r.kt)("hr",null),(0,r.kt)("p",null,"The Unraid Server OS is designed to be installed on, and boot from a USB\nFlash storage device, 512MB or larger. Use a high quality Flash drive\nfrom reputable manufacturers such as:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lexar"),(0,r.kt)("li",{parentName:"ul"},"PNY"),(0,r.kt)("li",{parentName:"ul"},"Samsung"),(0,r.kt)("li",{parentName:"ul"},"Kingston"),(0,r.kt)("li",{parentName:"ul"},"And many more")),(0,r.kt)("h2",{id:"instructions"},"Instructions"),(0,r.kt)("h3",{id:"windows-xp"},"Windows XP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(right-click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"My Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", select ",(0,r.kt)("strong",{parentName:"li"},"FAT32")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Select ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," and click ",(0,r.kt)("strong",{parentName:"li"},"Start")),(0,r.kt)("li",{parentName:"ul"},"For many, the above steps were all that was necessary to format the\ndrive. For others, selecting a file system of ",(0,r.kt)("strong",{parentName:"li"},"FAT")," or ",(0,r.kt)("strong",{parentName:"li"},"FAT16"),"\nwas necessary, and others found that formatting it with the ",(0,r.kt)("strong",{parentName:"li"},"HP\nFlash Formatter Tool")," was required, or even other steps. If you\ndetermine that the Windows formatting did not succeed in creating a\nbootable USB drive, then see the Advanced tips at the bottom.")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool from the ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download/"},"Lime Tech\ndownload")," page, and extract\n",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," to a simple directory, for example, ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\")),", and then\nrun it by clicking on ",(0,r.kt)("strong",{parentName:"p"},"Start")," / ",(0,r.kt)("strong",{parentName:"p"},"Run"),". In the dialog box, enter:"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"c:\\syslinux.exe\xa0-ma\xa0f:")),(0,r.kt)("p",null,"If necessary, change the directory from ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"c:\\"))," to whatever directory\nyou downloaded ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," to, and change the ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"f:"))," to use whatever\ndrive letter that Windows mounted your Flash on."),(0,r.kt)("p",null,"The ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," tool will create a hidden system file named\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("inlineCode",{parentName:"strong"},"ldlinux.sys"))," on the Flash and make the drive bootable. The latest\nversion and a complete distribution of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is available\n",(0,r.kt)("a",{parentName:"p",href:"http://syslinux.zytor.com/"},"here"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash. When extracting the files, make sure that\nthe option to preserve the folder structure is selected. There is a\n",(0,r.kt)("strong",{parentName:"p"},"config")," folder with initial configuration files, that needs to be\ncorrectly extracted. If done correctly, you should see ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," and\n",(0,r.kt)("strong",{parentName:"p"},"bzimage")," on the flash drive, plus a ",(0,r.kt)("strong",{parentName:"p"},"config")," folder containing\nfiles such as ",(0,r.kt)("strong",{parentName:"p"},"network.cfg")," and ",(0,r.kt)("strong",{parentName:"p"},"ident.cfg"),"."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," Click on the ",(0,r.kt)("strong",{parentName:"p"},"Safely Remove Hardware")," tool tray icon and\nselect your Flash drive to be safely removed."),(0,r.kt)("h3",{id:"windows-vista-and-windows-7"},"Windows Vista and Windows 7"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 1")," Plug the Flash into your PC and re-format it using Windows\n(Right-Click the Flash under ",(0,r.kt)("strong",{parentName:"p"},"Computer")," and select ",(0,r.kt)("strong",{parentName:"p"},"Format"),"):"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"File system"),", leave it as ",(0,r.kt)("strong",{parentName:"li"},"Default")),(0,r.kt)("li",{parentName:"ul"},"For ",(0,r.kt)("strong",{parentName:"li"},"Volume label"),", enter ",(0,r.kt)("strong",{parentName:"li"},"UNRAID")," (exactly 6 capital letters)"),(0,r.kt)("li",{parentName:"ul"},"Check the ",(0,r.kt)("strong",{parentName:"li"},"Quick Format")," box and click ",(0,r.kt)("strong",{parentName:"li"},"Start"))),(0,r.kt)("p",null,"If you determine that the Windows formatting did not succeed in creating\na bootable USB drive, then see the Advanced tips at the bottom."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 2")," Download the latest ",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/download"},"Unraid\nServer"),", and extract the files from\nthe zip archive to your Flash."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 3")," On the Flash drive, Right-Click on ",(0,r.kt)("strong",{parentName:"p"},"make_bootable.bat")," and\nselect ",(0,r.kt)("strong",{parentName:"p"},"Run as administrator"),". Press any key to continue."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Step 4")," The process takes only a moment to complete. You can then\nclose any open windows and eject the Flash drive."),(0,r.kt)("h3",{id:"macos-x"},"MacOS X"),(0,r.kt)("p",null,"You'll need to download the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://unetbootin.sourceforge.net"},"unetbootin")," - installs Unraid on\nyour flash drive for you"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"http://www.kernel.org/pub/linux/utils/boot/syslinux/"},"syslinux")," - a\ncollection of linux tools that will allow you to make the drive\nbootable"),(0,r.kt)("li",{parentName:"ul"},"Unraid - don't unzip it",".","..")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"1. Plug in your USB Flash drive and format it using Disk Utility.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Disk Utility (Applications -",">"," Utilities-",">"," Disk Utility) and\nchoose your device from the list on the left - note: In recent\nversions of macOS you will need to select View ",">",' Show All Devices.\nPlease make sure to read carefully to know when to select "Device"\nor "Partition"'),(0,r.kt)("li",{parentName:"ul"},"Select Partition"),(0,r.kt)("li",{parentName:"ul"},"Choose Partition Layout: 1 Partition"),(0,r.kt)("li",{parentName:"ul"},"Call it 'UNRAID' (no spaces, all caps)"),(0,r.kt)("li",{parentName:"ul"},"Click Options and make sure Master Boot Record is selected"),(0,r.kt)("li",{parentName:"ul"},"Click Apply and your disk will format")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"2. Verify the new partition")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Choose the UNRAID partition from the list on the left"),(0,r.kt)("li",{parentName:"ul"},"Select First Aid and Verify Disk"),(0,r.kt)("li",{parentName:"ul"},'Check the "Show Details" box and get the device path for your\ndisk, ex: /dev/disk2s1'),(0,r.kt)("li",{parentName:"ul"},"Unmount the ",(0,r.kt)("strong",{parentName:"li"},"partition"),' by clicking "Unmount" in the top menu'),(0,r.kt)("li",{parentName:"ul"},"leave Disk Utility open, you'll need it again")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"3. Make the partition Bootable")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Open Terminal (Applications -",">"," Utilities -",">"," Terminal)"),(0,r.kt)("li",{parentName:"ul"},"Now you'll need the raw disk device name.. so if your partition\ndevice path was /dev/disk2s1, the raw device name is /dev/rdisk2,\nbasically you drop the s1 off the end (that's the partition number)\nand add in a r before disk"),(0,r.kt)("li",{parentName:"ul"},"Type the following command, substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your\nraw deivce name ex: /dev/rdisk2 and press enter")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fdisk\xa0-e\xa0``<device>"),"{=html}"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At the ",">"," prompt type the following and press enter between each")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"f\xa01"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"write"),"\\\n",(0,r.kt)("inlineCode",{parentName:"p"},"exit")),(0,r.kt)("p",null,"Note: if you get an error about the device not being available for\nwriting, ensure you have Unmounted the partition in Disk Utility"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Unmount the partition again in Disk Utility (the above command will\ncause it to be remounted)"),(0,r.kt)("li",{parentName:"ul"},"Unzip/tar your syslinux download (you can leave it in the Downloads\nfolder"),(0,r.kt)("li",{parentName:"ul"},"cd to that folder in terminal by typing the following (you may need\nto change the version number to match your download)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"cd\xa0~/Downloads/syslinux-4.05/mbr")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Install the bootable MBR on your flash drive with the following\ncommand (again substituting ",(0,r.kt)("inlineCode",{parentName:"li"},"<device>"),"{=html} for your raw device\nname)")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"dd\xa0conv=notrunc\xa0bs=440\xa0count=1\xa0if=mbr.bin\xa0of=``<device>"),"{=html}"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"4. Install Unraid on your prepared Flash Drive")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Change the extension of your Unraid download from zip to iso"),(0,r.kt)("li",{parentName:"ul"},"Open unetbootin (it will need your password)"),(0,r.kt)("li",{parentName:"ul"},"Choose Disk Image at the bottom and browse for your Unraid iso"),(0,r.kt)("li",{parentName:"ul"},"Choose the device path for your partition (it's probably already\nselected)"),(0,r.kt)("li",{parentName:"ul"},"Click OK")),(0,r.kt)("p",null,"Note: if you get an error about overwriting menu.c32, click Yes To All"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When it finishes, you can eject your USB Flash Drive and put it in\nyour Unraid server and power it up")),(0,r.kt)("p",null,"I Think this would work with Windows, Linux versions also. So if any one\nhas Windows or Linux can you try this and write here if it works there\nalso."),(0,r.kt)("h2",{id:"booting-unraid-server"},"Booting Unraid Server"),(0,r.kt)("p",null,"Safely remove/eject the Flash from your PC and plug it into your server.\nPower up your server and see if it immediately boots (with some\nmotherboards it will). If it does not boot to the Unraid boot screen\nthat displays a choice of starting Unraid or Memtest, reboot your server\nand enter the BIOS setup. Navigate to the appropriate screen(s) and\nselect your USB Flash device as the boot device. In some BIOS, the flash\ndrive may show up in the list of hard disks, and you may have to select\nit there. Save your BIOS settings and try to boot the Flash. Be aware\nthat some motherboards will change the boot order when you add hard\ndrives, and you will have to return to these same BIOS screens to\nre-select your flash drive."),(0,r.kt)("p",null,"Note: You may need to check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.lime-technology.com/joomla/unraid-os"},"here")," for more ",(0,r.kt)("em",{parentName:"p"},"BIOS\nSetup Tips")," and ",(0,r.kt)("em",{parentName:"p"},"Other BIOS Suggestions"),". For machines with an AMI BIOS,\ncheck\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2302.msg17664#msg17664"},"here"),".\nFor more general BIOS suggestions on getting a machine to boot the USB\nflash drive, check\n",(0,r.kt)("a",{parentName:"p",href:"http://www.weethet.nl/english/hardware_bootfromusbstick.php"},"here"),",\nnear the bottom of the page. Also see\n",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/getting-started/#advanced-bios-configuration-guide"},"here")),(0,r.kt)("h2",{id:"if-the-flash-will-not-boot-read-over-the-following-tips"},"If the Flash will not boot, read over the following tips"),(0,r.kt)("p",null,"Unfortunately, some motherboards and BIOS versions are very picky about\nthe geometry or configuration of the USB flash drive. Some combinations\nof motherboard, BIOS, and flash drive do not work, or only work after\nmore advanced 'modifications'. The following tips are what users have\nfound to work, in different situations. If one does not work for you,\ntry another."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},'If your flash drive had pre-installed "U3" software, it will need\nto be removed before you format and install Unraid on it. U3\nUn-Install software is available\n',(0,r.kt)("a",{parentName:"p",href:"http://www.u3.com/uninstall/"},"here"),". A U3 removal tool specific to\nSanDisk drives can be found\n",(0,r.kt)("a",{parentName:"p",href:"http://u3.sandisk.com/launchpadremoval.htm"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Some instructions for loading ",(0,r.kt)("strong",{parentName:"p"},"syslinux"),' on your flash drive leave\noff the "',(0,r.kt)("strong",{parentName:"p"},"-ma"),'" options of the command. If your flash drive does\nnot have a preloaded master boot record and a partition marked as\n"active", then it is unlikely to boot unless you use the ',(0,r.kt)("strong",{parentName:"p"},"-ma"),"\noptions.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Try formatting the USB drive as FAT instead of FAT32")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"You may need to use the ",(0,r.kt)("strong",{parentName:"p"},"HP formatting tool")," to make your flash\ndrive bootable on your BIOS. It sets the Cylinders/Heads/Sector\ngeometry of a flash drive to an alternate set of geometry values.\nThe alternate geometry will often will make it possible to use your\nflash drive as a boot disk when your BIOS does not work with the\nexisting geometry. For more info, see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=359.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=366.0"},"here")," and\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2703.0"},"here"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Apparently, there is more than one version of the ",(0,r.kt)("strong",{parentName:"p"},"HP format\ntool"),". The version of the ",(0,r.kt)("strong",{parentName:"p"},"HP USB Format Tool")," that works best\nhas a file name of ",(0,r.kt)("strong",{parentName:"p"},"SP27213.exe"),". Some have had problems with the\nversion named ",(0,r.kt)("strong",{parentName:"p"},"SP27608.exe"),". (eg. Sandisk 16GB Cruzer Contour &\nAmicroe 32GB). HP seems to have removed both from their downloads\nsection of their website, but Google ",(0,r.kt)("strong",{parentName:"p"},"HP SP27213.exe")," and you\nshould be able to find it easily.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but hangs while\ndecompressing the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," files on the flash, it\nis possible that either the ",(0,r.kt)("strong",{parentName:"p"},"bzroot")," or ",(0,r.kt)("strong",{parentName:"p"},"bzimage")," file is\ncorrupt or incomplete. This could happen if you did not safely eject\nthe flash drive, after copying the files to it when it was plugged\ninto your PC. The file would only have been partially written to the\nflash drive.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive tries to boot, but only gets\npart way before hanging, you may need to add additional options to\nyour ",(0,r.kt)("strong",{parentName:"p"},"syslinux.cfg")," file on your flash drive to boot your\nmotherboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but stops when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", you may need to use the\nlatest version of ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," in the\n",(0,r.kt)("a",{parentName:"p",href:"http://lime-technology.com/dnlds"},"downloads")," folder at\nLime-Technology. Use of ",(0,r.kt)("strong",{parentName:"p"},"syslinux version 3.63")," in combination\nwith the ",(0,r.kt)("strong",{parentName:"p"},"-ma")," option was the solution in ",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=1176.msg15666#msg15666"},"this\nthread"),".\n(After downloading ",(0,r.kt)("a",{parentName:"p",href:"http://download.lime-technology.com/syslinux%203.63.zip"},"syslinux\n3.63.zip"),",\nextract ",(0,r.kt)("strong",{parentName:"p"},"syslinux.exe")," from the zip file.) A number of users\nupgrading from a v4.2 version to a v4.3 version have found that the\nnew ",(0,r.kt)("strong",{parentName:"p"},"syslinux")," is necessary, even though their flash drive had\nworked fine with v4.2.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"If it appears as if the flash drive gets part way through the boot\nprocess but reboots when loading ",(0,r.kt)("strong",{parentName:"p"},"bzroot"),", one user found that he\nfixed it be replacing his graphics card with an older (possibly more\nbasic) graphics card.\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=4769"},"1"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"A user has created another procedure based on the ",(0,r.kt)("strong",{parentName:"p"},"makebootfat"),"\ntool. This procedure seems especially useful for newer Intel boards,\nsuch as boards based on the P965, P35, and P45 chipsets and their G\nvariants. See\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=2407.0"},"this"),"\npost. It worked when nothing else would, on his Intel P965-based\nboard.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Also see\n",(0,r.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?topic=922.0"},"this"),"\nthread (uses a Knoppix installation or Live CD), if you have a board\nthat will only boot from a flash drive as a USB-ZIP drive. Similar\ninstructions, using Ubuntu or similar, can be found here:\n",(0,r.kt)("a",{parentName:"p",href:"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"},"http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/"),".")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"And last of all, try upgrading the BIOS of your motherboard. A later\nBIOS may have better support for booting from USB."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/798531cc.2b2bda34.js b/zh/assets/js/798531cc.0ebb9bf0.js similarity index 99% rename from zh/assets/js/798531cc.2b2bda34.js rename to zh/assets/js/798531cc.0ebb9bf0.js index 08deefd76..a745840bf 100644 --- a/zh/assets/js/798531cc.2b2bda34.js +++ b/zh/assets/js/798531cc.0ebb9bf0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/zh/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/zh/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/zh/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/security#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/zh/unraid-os/manual/shares#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{4137:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>c});var i=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,i)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,i,n=function(e,t){if(null==e)return{};var a,i,n={},r=Object.keys(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)a=r[i],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=i.createContext({}),u=function(e){var t=i.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},k=i.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,c=m["".concat(s,".").concat(k)]||m[k]||d[k]||r;return a?i.createElement(c,l(l({ref:t},p),{},{components:a})):i.createElement(c,l({ref:t},p))}));function c(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[m]="string"==typeof e?e:n,l[1]=o;for(var u=2;u<r;u++)l[u]=a[u];return i.createElement.apply(null,l)}return i.createElement.apply(null,a)}k.displayName="MDXCreateElement"},6238:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var i=a(7462),n=(a(7294),a(4137));const r={},l=void 0,o={unversionedId:"unraid-os/release-notes/6.10.0",id:"unraid-os/release-notes/6.10.0",title:"6.10.0",description:"Version 6.10.0 2022-05-07",source:"@site/docs/unraid-os/release-notes/6.10.0.md",sourceDirName:"unraid-os/release-notes",slug:"/unraid-os/release-notes/6.10.0",permalink:"/zh/unraid-os/release-notes/6.10.0",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/release-notes/6.10.0.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"6.11.5",permalink:"/zh/unraid-os/release-notes/6.11.5"},next:{title:"6.10.1",permalink:"/zh/unraid-os/release-notes/6.10.1"}},s={},u=[{value:"Version 6.10.0 2022-05-07",id:"version-6100-2022-05-07",level:2},{value:"UPC and My Servers Plugin",id:"upc-and-my-servers-plugin",level:3},{value:"Security Changes",id:"security-changes",level:3},{value:"Moving to Let's Encrypt wildcard SSL certificates",id:"moving-to-lets-encrypt-wildcard-ssl-certificates",level:4},{value:"Virtualization",id:"virtualization",level:3},{value:"Windows 11 Support",id:"windows-11-support",level:4},{value:"Docker",id:"docker",level:3},{value:"Docker labels",id:"docker-labels",level:4},{value:"Docker custom networks",id:"docker-custom-networks",level:4},{value:"Docker bridge network (docker0)",id:"docker-bridge-network-docker0",level:4},{value:"WireGuard",id:"wireguard",level:3},{value:"Linux Kernel",id:"linux-kernel",level:3},{value:"Base Packages",id:"base-packages",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Other Bug Fixes",id:"other-bug-fixes",level:3},{value:"Change Log vs. Unraid OS 6.9.2",id:"change-log-vs-unraid-os-692",level:2},{value:"Base distro",id:"base-distro",level:4},{value:"Included with GUI-mode",id:"included-with-gui-mode",level:4},{value:"Linux kernel",id:"linux-kernel-1",level:4},{value:"Management",id:"management",level:4}],p={toc:u},m="wrapper";function d(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"version-6100-2022-05-07"},"Version 6.10.0 2022-05-07"),(0,n.kt)("p",null,"Summary of Changes and New Features"),(0,n.kt)("h3",{id:"upc-and-my-servers-plugin"},"UPC and My Servers Plugin"),(0,n.kt)("p",null,"The most visible new feature is located in the upper right corner of the\nwebGUI header.\xa0 We call this the ",(0,n.kt)("em",{parentName:"p"},"User Profile Component"),", or UPC.\xa0 The\nUPC allows a user to better manage their registration keys and install\nthe optional ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin."),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"My Servers")," is what we call our set of\ncloud-based services and features that integrate with your Unraid\nserver(s).\xa0 After installing the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, you will be\nprompted to sign-in to your server with an existing Unraid.net account\nor create a new Unraid.net account.\xa0 Once installed here are some of the\nfeatures of ",(0,n.kt)("em",{parentName:"p"},"My Servers"),":"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Real-time Status")," - with the plugin installed each server tile on\nthe ",(0,n.kt)("em",{parentName:"li"},"My Servers Dashboard")," will display real-time status such as\nwhether the server is online or offline, storage utilization, and\nother information."),(0,n.kt)("li",{parentName:"ul"},"Local Access link - this is a direct link to the server webGUI on\nyour LAN."),(0,n.kt)("li",{parentName:"ul"},"Remote Access link - ",(0,n.kt)("strong",{parentName:"li"},"if enabled"),", a link is displayed on the ",(0,n.kt)("em",{parentName:"li"},"My\nServers Dashboard")," to bring up a server webGUI remotely and over the\nInternet."),(0,n.kt)("li",{parentName:"ul"},"Automatic Flash Backup - every registered server is provided with a\nprivate git repo initially populated with the contents of your USB\nflash boot device (except for certain files which contain private\ninformation such as passwords).\xa0 Thereafter, configuration changes\nare automatically committed.\xa0 A link is provided to download a\ncustom zip file that can be fed as input to the USB Flash Creator\ntool to move your configuration to a new USB flash device."),(0,n.kt)("li",{parentName:"ul"},"Notification of critical security-related updates.\xa0 In the event a\nserious security vulnerability has been discovered and patched, we\nwill send out a notification to all email addresses associated with\nregistered servers."),(0,n.kt)("li",{parentName:"ul"},"Posting privilege in a new set of My Servers forum boards.")),(0,n.kt)("p",null,"Signed-in servers maintain a websocket connection to a cloud-based Lime\nTechnology proxy server for the purpose of relaying real-time status.\nRefer to the My Servers Privacy section for more\ninformation."),(0,n.kt)("h3",{id:"security-changes"},"Security Changes"),(0,n.kt)("p",null,"It is now ",(0,n.kt)("strong",{parentName:"p"},"mandatory")," to define a ",(0,n.kt)("em",{parentName:"p"},"root")," password and changing the\n",(0,n.kt)("em",{parentName:"p"},"root")," user password will log out all webGUI browser sessions."),(0,n.kt)("p",null,"We also created a division in the Users page to distinguish ",(0,n.kt)("em",{parentName:"p"},"root")," from\nother user names.\xa0 The ",(0,n.kt)("em",{parentName:"p"},"root")," UserEdit page includes a text box for\npasting SSH authorized keys."),(0,n.kt)("p",null,"For new configurations, the ",(0,n.kt)("em",{parentName:"p"},"flash")," share default export setting is No."),(0,n.kt)("p",null,"For new configurations, SMBv1 is disabled by default."),(0,n.kt)("p",null,"For new configurations, telnet and ssh are disabled by default."),(0,n.kt)("p",null,"For all new user shares, the default export setting is No."),(0,n.kt)("p",null,"We removed certain strings from\n",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/troubleshooting#capturing-diagnostic-information"},"Diagnostics"),"\nsuch as passwords found in the 'go' file."),(0,n.kt)("h4",{id:"moving-to-lets-encrypt-wildcard-ssl-certificates"},"Moving to Let's Encrypt wildcard SSL certificates"),(0,n.kt)("p",null,"Starting with this release, ",(0,n.kt)("strong",{parentName:"p"},"we no longer issue new single-host SSL\ncertificates")," (which we're calling legacy certificates).\xa0 Instead, all\nnew Unraid.net SSL certificates are ",(0,n.kt)("strong",{parentName:"p"},"wildcard certificates")," (still\nprovided by Let's Encrypt)."),(0,n.kt)("p",null,"The URL used to access your server making use of a wildcard certificate\nhas this form:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"))),(0,n.kt)("p",null,"where,"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[lan-ip]")," is your servers LAN IP address with dots changed to\ndashes"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," is a 40-character hex string (160 bits) unique to this\nserver (and different from similar ",(0,n.kt)("inlineCode",{parentName:"li"},"[hash]")," in legacy certificates)")),(0,n.kt)("p",null,"example:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net"))),(0,n.kt)("p",null,'We added a new DDNS server that listens at "myunraid.net".\xa0 This\nserver extracts ',(0,n.kt)("inlineCode",{parentName:"p"},"[lan-ip]")," from the domain name and returns the IP\naddress where the dashes are changed back into dots.\xa0 There are several\nbenefits to this approach for both our users and us:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Eliminates DNS propagation delays when you first ",(0,n.kt)("em",{parentName:"li"},"provision")," a\ncertificate or when a server LAN IP address (or WAN IP address)\nchanges.\xa0 Since the domain name includes the IP address, any IP\naddress change also changes the domain name, hence will not be\ncontained in any intermediate DNS cache.\xa0 We also changed the TTL\nfrom 1 hour to 7 days further reducing overhead and alleviating\nissues where someone's internet goes down for brief periods."),(0,n.kt)("li",{parentName:"ul"},"There is no longer a requirement for the server to actively update a\nDDNS server."),(0,n.kt)("li",{parentName:"ul"},'Improves privacy because your remote access WAN IP address can\'t be\ndetermined by simply prepending "www" to your local access URL.'),(0,n.kt)("li",{parentName:"ul"},"Moves DNS functionality off the 'unraid.net' domain and isolates\nit on the 'myunraid.net' domain.")),(0,n.kt)("p",null,"In previous releases code that ",(0,n.kt)("em",{parentName:"p"},"provisions")," (allocates and downloads) an\nUnraid.net SSL certificate would first test if ",(0,n.kt)("em",{parentName:"p"},"DNS Rebinding\nProtection")," was enforced on the user's LAN; and, if so, would not\nprovision the certificate.\xa0 Since there are other uses for a LE\ncertificate we changed the code so that ",(0,n.kt)("em",{parentName:"p"},"provision")," would always\nproceed.\xa0 Next, we changed the logic behind the ",(0,n.kt)("em",{parentName:"p"},"Auto"),' selection of\n"Use SSL/TLS" setting on the Management Access page.\xa0 Now it is only\npossible to select Auto if both a LE certificate has been provisioned\nand DNS Rebinding Protection is not enforced.\xa0 This is a subtle change\nbut permits certain ',(0,n.kt)("em",{parentName:"p"},"My Servers")," features such as Remote Access."),(0,n.kt)("p",null,"Upon upgrading, you will need to modify any server bookmarks with the\nnew URL.\xa0 Alternately, if you have installed the ",(0,n.kt)("em",{parentName:"p"},"My Servers")," plugin, a\nlocal access link is included for each server on your Dashboard.\xa0 If you\nhave not installed the My Servers plugin, since there is no DDNS update\ndaemon, we recommend setting up either a static DHCP lease, or assigning\na static IP address for your server.\xa0 Finally, we have set up nginx such\nthat the URL's:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"http://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"or"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"https://<server-name>.<local-tld>/"))),(0,n.kt)("p",null,"will redirect to ",(0,n.kt)("inlineCode",{parentName:"p"},"https://[lan-ip].[hash].myunraid.net")),(0,n.kt)("p",null,"More information including use cases may be found in Documentation\n",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#securing-webgui-connections-ssl"},"here"),"."),(0,n.kt)("h3",{id:"virtualization"},"Virtualization"),(0,n.kt)("p",null,"Both libvirt and qemu have been updated.\xa0 In addition, qemu has been\ncompiled with OpenGL support, and ARM emulation (experimental)."),(0,n.kt)("h4",{id:"windows-11-support"},"Windows 11 Support"),(0,n.kt)("p",null,'To support Windows 11 which requires TPM and Secure boot, we have added\nTPM emulation; and, added a "Windows 11" VM template which\nautomatically selects TPM-aware OVMF bios.\xa0 Also, ',(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-support#upgrading-a-vm-to-windows-11"},"here are\ninstructions"),"\nfor upgrading a Windows 10 VM to Windows 11.\xa0 Special thanks to ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"\nwho researched and determined what changes and components were necessary\nto provide this functionality."),(0,n.kt)("h3",{id:"docker"},"Docker"),(0,n.kt)("h4",{id:"docker-labels"},"Docker labels"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Docker labels are added to allow people using Docker compose to make\nuse of icons and GUI access"),(0,n.kt)("li",{parentName:"ul"},"Look at a Docker 'run' command output to see exactly what labels\nare used")),(0,n.kt)("h4",{id:"docker-custom-networks"},"Docker custom networks"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"A new setting for custom networks is available. Originally custom\nnetworks are created using the macvlan mode, and this mode is kept\nwhen upgrading to version 6.10"),(0,n.kt)("li",{parentName:"ul"},"The new ipvlan mode is introduced to battle the crashes some people\nexperience when using macvlan mode. If that is your case, change to\nipvlan mode and test. Changing of mode does not require\nreconfiguring anything on the Docker level, internally everything is\nbeing taken care of.")),(0,n.kt)("h4",{id:"docker-bridge-network-docker0"},"Docker bridge network (docker0)"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"docker0 now supports IPv6. This is implemented by assigning docker0\na private IPv6 subnet (fd17::/64), similar to what is done for IPv4\nand using network translation to communicate with the outside world"),(0,n.kt)("li",{parentName:"ul"},"Containers connected to the bridge network now have both IPv4 and\nIPv6 connectivity (of course the system must have IPv6 configured in\nthe network configuration)"),(0,n.kt)("li",{parentName:"ul"},"In addition, several enhancements are made in the IPv6\nimplementation to better deal with the use (or non-use) of IPv6")),(0,n.kt)("h3",{id:"wireguard"},"WireGuard"),(0,n.kt)("p",null,'The WireGuard plugin has been integrated into webGUI, that is, no need\nfor the plugin.\xa0 If you had the plugin installed previously, it will be\nuninstalled and moved to the "Plugins/Plugin File Install Errors"\npage. No action is needed unless you want to press the Delete button to\nremove it from that page. Your WireGuard tunnels and settings will be\npreserved. ',(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"See this post to get started with\nWireGuard"),"."),(0,n.kt)("p",null,"Resident network guru ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/2736-bonienl/"},"@bonienl")," has added the capability to bind a\nWireGuard virtual network interface to a docker container.\xa0 One use of\nthis feature is to configure a WireGuard-enabled VPN which may then be\nexclusively used by that container, while your main server makes use of\nthe normal LAN network interface.\xa0 ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381"},"Please refer to this post for\nadditional\ndetails.")),(0,n.kt)("h3",{id:"linux-kernel"},"Linux Kernel"),(0,n.kt)("p",null,"Upgraded to Linux 5.15.x LTS kernel which includes so-called ",(0,n.kt)("em",{parentName:"p"},"Sequoia"),"\nand ",(0,n.kt)("em",{parentName:"p"},"Dirty Pipe")," vulnerability mitigations."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"In-tree GPU drivers")," are now loaded by default if corresponding\nhardware is detected:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"amdgpu"),(0,n.kt)("li",{parentName:"ul"},"ast"),(0,n.kt)("li",{parentName:"ul"},"i915"),(0,n.kt)("li",{parentName:"ul"},"radeon")),(0,n.kt)("p",null,"These drivers are required mostly for motherboard on-board graphics used\nin ",(0,n.kt)("em",{parentName:"p"},"GUI boot")," mode.\xa0 Loading of a driver can be prohibited by creating\nthe appropriate file named after the driver:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},'echo\xa0"blacklist\xa0i915"\xa0>\xa0/boot/config/modprobe.d/i915.conf')),(0,n.kt)("p",null,'Alternately, the device can be isolated from Linux entirely via the\nSystem Devices page.\xa0 Note that in Unraid OS 6.9 releases the in-tree\nGPU drivers are blacklisted by default and to enable loading a driver\nyou need to create an empty "conf" file.\xa0 After upgrading to Unraid OS\n6.10 you may delete those files, or leave them as-is.\xa0 This change was\nmade to greatly improve the ',(0,n.kt)("em",{parentName:"p"},"Desktop GUI")," experience for new users."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Other kernel changes:")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Added support for Intel GVT-g, which lets you split your Intel i915\niGPU into multiple virtual GPUs and pass them through to multiple\nVMs, using ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s ",(0,n.kt)("em",{parentName:"li"},"Intel-GVT-g")," plugin."),(0,n.kt)("li",{parentName:"ul"},"Added support for gnif/vendor-reset.\xa0 This simplifies ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),"'s\n",(0,n.kt)("em",{parentName:"li"},"AMD Vendor Reset")," plugin which permits users to get their AMD video\ncards to reset properly."),(0,n.kt)("li",{parentName:"ul"},'Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for\nour kernel:\n',(0,n.kt)("a",{parentName:"li",href:"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"},"https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch"),"\nThanks to ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777")," for pointing this out."),(0,n.kt)("li",{parentName:"ul"},"Enabled additional ACPI kernel options"),(0,n.kt)("li",{parentName:"ul"},"Enabled TPM kernel modules (not utilized yet) - note this is for\nUnraid host utilizing physical TPM, not emulated TPM support for\nvirtual machines."),(0,n.kt)("li",{parentName:"ul"},"Support Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"),(0,n.kt)("li",{parentName:"ul"},"Enabled NFSv4 support.")),(0,n.kt)("h3",{id:"base-packages"},"Base Packages"),(0,n.kt)("p",null,"Virtually the entire base package set has been updated."),(0,n.kt)("p",null,'For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked\n"experimental", however, is ',(0,n.kt)("strong",{parentName:"p"},"disabled")," by default.\xa0 This may be\nenabled on the Settings/SMB Settings page.\xa0 Some users have reported\nissues with SMB3 multi-channel in conjunction with certain network bond\nconfigurations."),(0,n.kt)("p",null,"Per request, we added the mcelog package.\xa0 With the inclusion of this\npackage, if you have an AMD processor you may see this error message in\nthe system log:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"mcelog:\xa0ERROR:\xa0AMD\xa0Processor\xa0family\xa023:\xa0mcelog\xa0does\xa0not\xa0support\xa0this\xa0processor.\xa0Please\xa0use\xa0the\xa0edac_mce_amd\xa0module\xa0instead.")),(0,n.kt)("p",null,"We're not sure what to make of this.\xa0 It appears mcelog is being\ndeprecated in favor of rasdaemon.\xa0 This is something we need to research\nfurther."),(0,n.kt)("h3",{id:"other-improvements"},"Other Improvements"),(0,n.kt)("p",null,"Other improvements which are maybe not so obvious to spot from the\nrelease notes and some of these improvements are internal and not really\nvisible:"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Event-driven model")," to obtain server information and update the\nwebGUI in real-time"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The advantage of this model is its scalability. Multiple browsers\ncan be opened simultaneously to the webGUI without much impact"),(0,n.kt)("li",{parentName:"ul"},"In addition, stale browser sessions won't create any CSRF errors\nanymore"),(0,n.kt)("li",{parentName:"ul"},"People who keep their browser open 24/7 will find the webGUI stays\nresponsive at all times"),(0,n.kt)("li",{parentName:"ul"},"Consistent state information is maintained across all browser\ninstances open to a particular server")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Plugins page")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The plugins page now loads information in two steps. First, the list\nof plugins is created and next the more time-consuming plugin status\nfield is retrieved in the background. The result is a faster loading\nplugins page, especially when you have a lot of plugins installed")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Dashboard graphs")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"The dashboard has now two graphs available. The CPU graph is\ndisplayed by default, while the NETWORK graph is a new option under\nInterface (see the 'General Info' selection)"),(0,n.kt)("li",{parentName:"ul"},"The CPU graph may be hidden as well in case it is not desired"),(0,n.kt)("li",{parentName:"ul"},"Both graphs have a configurable timeline, which is by default 30\nseconds and can be changed independently for each graph to see a\nlonger or shorter history."),(0,n.kt)("li",{parentName:"ul"},"Graphs are updated in real-time and are useful to observe the\nbehavior of the server under different circumstances")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Scheduler Improvements")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"You can now split a parity check into smaller pieces and let it run\nover multiple days or weeks.\xa0 For example, a check can be performed\nin a time frame of 01:00am to 06:00am for several days in a row\nuntil it is completed.\xa0 This way a long parity check won't interfere\nwith the normal daily activities, like watching a movie."),(0,n.kt)("li",{parentName:"ul"},"Added ability to schedule pool 'balance' and 'scrub' operations\nand calculate whether a full balance is recommended.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"The built-in Firefox browser")," available in ",(0,n.kt)("em",{parentName:"p"},"GUI-mode")," boot is built\nas an AppImage and located in the ",(0,n.kt)("em",{parentName:"p"},"bzfirmware")," compressed file system\nimage.\xa0 This saves approximately 60MB of RAM."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Simplified installation of the Community Apps plugin.")," The webGUI\nautomatically includes the Apps menu item, and if CA is not already\ninstalled, the page offers an Install button.\xa0 No need to hunt for the\nplugin link."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"We increased the font size in Terminal")," and fixed the issue with\nmacOS ",(0,n.kt)("em",{parentName:"p"},"Monterey"),".\xa0 Terminal font size is configurable via the\nSettings/Display Settings page."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Mover")," will create '.partial' file and then rename it upon\ncompletion."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"System start-up")," will check bz file sha256sums at boot time to verify\nno corruption."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"For cookies managed by webGUI"),", changed sameSite cookie attribute\nfrom 'strict' to 'lax'.\xa0 This change was made to solve an issue with\nthe Terminal window not opening in Safari."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Added ServerChan and Pushplus")," notification agents, thanks to\n",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/profile/168579-ludoux/"},"@ludoux")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Template Repositories")," were removed, see ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on their\nreplacements")),(0,n.kt)("h3",{id:"other-bug-fixes"},"Other Bug Fixes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"We switched to a better-maintained version of the WSD server\ncomponent called wsdd2 in an effort to eliminate instances where the\nwsd daemon would start consuming 100% of a CPU core."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where you couldn't create a docker image on a share\nname that contains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue where 'mover' would not move to a pool name that\ncontains a space."),(0,n.kt)("li",{parentName:"ul"},"Fixed issue in ",(0,n.kt)("a",{parentName:"li",href:"/unraid-os/manual/shares.md#user-shares"},"User Share"),"\nfile system where permissions were not being honored."),(0,n.kt)("li",{parentName:"ul"},"Fixed jumbo frames not working."),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072) - hattip to Community Member ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/77686-diefalse/"},"@DieFalse")),(0,n.kt)("li",{parentName:"ul"},"Fixed bug found by ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/12113-thohell/"},"@thohell")," where md_sync_limit was not being\nhonored to limit stripe_head cache usage when other I/O is active.\nThe effect of this fix is to drastically slow down parity operations\nif other I/O is happening (such as streaming a video).\xa0 Throttling\nof parity sync operations can be adjusted by changing the\n'Settings/Disk Settings/Tunable (md_sync_limit)' value."),(0,n.kt)("li",{parentName:"ul"},"Fixed btrfs pool device replace corner cases. Important note: if you\n'unassign' a device from a btrfs multiple-device pool, and that\ndevice is still physically present, upon array Start we will\n",(0,n.kt)("strong",{parentName:"li"},"erase")," the LUKS header on the device if present, and ",(0,n.kt)("strong",{parentName:"li"},"delete"),"\nthe partition structure, thereby effectively erasing all the data\ncontained on the device.\xa0 This is necessary in order to convince\nbtrfs to no longer use the device and to free it for assignment to\nanother pool."),(0,n.kt)("li",{parentName:"ul"},"Fixed a bug where replacing a device in a multiple-device btrfs pool\nwould still tag the old device as missing."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where hot-plugging a device in a server with\nspun-down SAS drive(s) could cause the SAS drive(s) to appear\nunassigned."),(0,n.kt)("li",{parentName:"ul"},"Fixed an issue where the server would disappear from Windows Network\nafter docker and/or VM startup."),(0,n.kt)("li",{parentName:"ul"},"Fixed md/unraid driver regression which would confuse XFS, making it\nthink an online shrink had occurred."),(0,n.kt)("li",{parentName:"ul"},"Fixed: Prevent Unraid from hanging when the array is stopped, while\nVMs are in paused or suspended state."),(0,n.kt)("li",{parentName:"ul"},"Numerous other small bug fixes and improvements.")),(0,n.kt)("h2",{id:"change-log-vs-unraid-os-692"},"Change Log vs. Unraid OS 6.9.2"),(0,n.kt)("h4",{id:"base-distro"},"Base distro"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"aaa_base: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"aaa_glibc-solibs: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"aaa_libraries: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"acl: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"acpid: version 2.0.33"),(0,n.kt)("li",{parentName:"ul"},"apcupsd: version 3.14.14"),(0,n.kt)("li",{parentName:"ul"},"at: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"attr: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"avahi: version 0.8"),(0,n.kt)("li",{parentName:"ul"},"bash: version 5.1.016"),(0,n.kt)("li",{parentName:"ul"},"beep: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"bin: version 11.1"),(0,n.kt)("li",{parentName:"ul"},"bind: version 9.16.27"),(0,n.kt)("li",{parentName:"ul"},"bluez-firmware: version 1.2"),(0,n.kt)("li",{parentName:"ul"},"bridge-utils: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"brotli: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"btrfs-progs: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"bzip2: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"ca-certificates: version 20220403"),(0,n.kt)("li",{parentName:"ul"},"celt051: version 0.5.1.3"),(0,n.kt)("li",{parentName:"ul"},"cifs-utils: version 6.14"),(0,n.kt)("li",{parentName:"ul"},"coreutils: version 9.0"),(0,n.kt)("li",{parentName:"ul"},"cpio: version 2.13"),(0,n.kt)("li",{parentName:"ul"},"cpufrequtils: version 008"),(0,n.kt)("li",{parentName:"ul"},"cracklib: version 2.9.7"),(0,n.kt)("li",{parentName:"ul"},"cryptsetup: version 2.4.3"),(0,n.kt)("li",{parentName:"ul"},"curl: version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775\nCVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780\nCVE-2022-27781 CVE-2022-27782 CVE-2022-30115)"),(0,n.kt)("li",{parentName:"ul"},"cyrus-sasl: version 2.1.27"),(0,n.kt)("li",{parentName:"ul"},"db48: version 4.8.30"),(0,n.kt)("li",{parentName:"ul"},"dbus: version 1.12.20"),(0,n.kt)("li",{parentName:"ul"},"dcron: version 4.5"),(0,n.kt)("li",{parentName:"ul"},"devs: version 2.3.1"),(0,n.kt)("li",{parentName:"ul"},"dhcpcd: version 9.4.1"),(0,n.kt)("li",{parentName:"ul"},"diffutils: version 3.8"),(0,n.kt)("li",{parentName:"ul"},"dmidecode: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"dnsmasq: version 2.86"),(0,n.kt)("li",{parentName:"ul"},"docker: version 20.10.14 (CVE-2022-24769)"),(0,n.kt)("li",{parentName:"ul"},"dosfstools: version 4.2"),(0,n.kt)("li",{parentName:"ul"},"e2fsprogs: version 1.46.5"),(0,n.kt)("li",{parentName:"ul"},"ebtables: version 2.0.11"),(0,n.kt)("li",{parentName:"ul"},"eject: version 2.1.5"),(0,n.kt)("li",{parentName:"ul"},"elogind: version 246.10"),(0,n.kt)("li",{parentName:"ul"},"elvis: version 2.2_0"),(0,n.kt)("li",{parentName:"ul"},"etc: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"ethtool: version 5.16"),(0,n.kt)("li",{parentName:"ul"},"eudev: version 3.2.11"),(0,n.kt)("li",{parentName:"ul"},"file: version 5.41"),(0,n.kt)("li",{parentName:"ul"},"findutils: version 4.8.0"),(0,n.kt)("li",{parentName:"ul"},"flex: version 2.6.4"),(0,n.kt)("li",{parentName:"ul"},"floppy: version 5.5"),(0,n.kt)("li",{parentName:"ul"},"fuse3: version 3.10.5"),(0,n.kt)("li",{parentName:"ul"},"gawk: version 5.1.1"),(0,n.kt)("li",{parentName:"ul"},"gdbm: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"genpower: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"getty-ps: version 2.1.0b"),(0,n.kt)("li",{parentName:"ul"},"git: version 2.35.3 (CVE-2022-24765)"),(0,n.kt)("li",{parentName:"ul"},"glib2: version 2.70.3"),(0,n.kt)("li",{parentName:"ul"},"glibc: version 2.33"),(0,n.kt)("li",{parentName:"ul"},"glibc-zoneinfo: version 2022a"),(0,n.kt)("li",{parentName:"ul"},"gmp: version 6.2.1"),(0,n.kt)("li",{parentName:"ul"},"gnutls: version 3.7.2"),(0,n.kt)("li",{parentName:"ul"},"gptfdisk: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"grep: version 3.7"),(0,n.kt)("li",{parentName:"ul"},"gzip: version 1.12 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"hdparm: version 9.63"),(0,n.kt)("li",{parentName:"ul"},"hostname: version 3.23"),(0,n.kt)("li",{parentName:"ul"},"htop: version 3.1.2"),(0,n.kt)("li",{parentName:"ul"},"icu4c: version 69.1"),(0,n.kt)("li",{parentName:"ul"},"inetd: version 1.79s"),(0,n.kt)("li",{parentName:"ul"},"infozip: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"inih: version 53"),(0,n.kt)("li",{parentName:"ul"},"inotify-tools: version 3.20.11.0"),(0,n.kt)("li",{parentName:"ul"},"iproute2: version 5.16.0"),(0,n.kt)("li",{parentName:"ul"},"iptables: version 1.8.7"),(0,n.kt)("li",{parentName:"ul"},"iputils: version 20211215"),(0,n.kt)("li",{parentName:"ul"},"irqbalance: version 1.7.0"),(0,n.kt)("li",{parentName:"ul"},"jansson: version 2.14"),(0,n.kt)("li",{parentName:"ul"},"jemalloc: version 5.2.1"),(0,n.kt)("li",{parentName:"ul"},"jq: version 1.6"),(0,n.kt)("li",{parentName:"ul"},"json-c: version 0.15_20200726"),(0,n.kt)("li",{parentName:"ul"},"json-glib: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"kbd: version 1.15.3"),(0,n.kt)("li",{parentName:"ul"},"keyutils: version 1.6.3"),(0,n.kt)("li",{parentName:"ul"},"kmod: version 29"),(0,n.kt)("li",{parentName:"ul"},"krb5: version 1.19.2"),(0,n.kt)("li",{parentName:"ul"},"lbzip2: version 2.5"),(0,n.kt)("li",{parentName:"ul"},"less: version 590"),(0,n.kt)("li",{parentName:"ul"},"libaio: version 0.3.112"),(0,n.kt)("li",{parentName:"ul"},"libarchive: version 3.6.1"),(0,n.kt)("li",{parentName:"ul"},"libcap-ng: version 0.8.2"),(0,n.kt)("li",{parentName:"ul"},"libcgroup: version 0.41"),(0,n.kt)("li",{parentName:"ul"},"libdaemon: version 0.14"),(0,n.kt)("li",{parentName:"ul"},"libdrm: version 2.4.109"),(0,n.kt)("li",{parentName:"ul"},"libedit: version 20210910_3.1"),(0,n.kt)("li",{parentName:"ul"},"libepoxy: version 1.5.9"),(0,n.kt)("li",{parentName:"ul"},"libestr: version 0.1.9"),(0,n.kt)("li",{parentName:"ul"},"libevent: version 2.1.12"),(0,n.kt)("li",{parentName:"ul"},"libfastjson: version 0.99.9"),(0,n.kt)("li",{parentName:"ul"},"libffi: version 3.3"),(0,n.kt)("li",{parentName:"ul"},"libgcrypt: version 1.9.4"),(0,n.kt)("li",{parentName:"ul"},"libgpg-error: version 1.44"),(0,n.kt)("li",{parentName:"ul"},"libgudev: version 237"),(0,n.kt)("li",{parentName:"ul"},"libidn: version 1.38"),(0,n.kt)("li",{parentName:"ul"},"libjpeg-turbo: version 2.1.2"),(0,n.kt)("li",{parentName:"ul"},"liblogging: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"libmnl: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libnetfilter_conntrack: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"libnfnetlink: version 1.0.1"),(0,n.kt)("li",{parentName:"ul"},"libnftnl: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libnl3: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"libpcap: version 1.10.1"),(0,n.kt)("li",{parentName:"ul"},"libpciaccess: version 0.16"),(0,n.kt)("li",{parentName:"ul"},"libpng: version 1.6.37"),(0,n.kt)("li",{parentName:"ul"},"libpsl: version 0.21.1"),(0,n.kt)("li",{parentName:"ul"},"libseccomp: version 2.5.1"),(0,n.kt)("li",{parentName:"ul"},"libssh: version 0.9.6"),(0,n.kt)("li",{parentName:"ul"},"libssh2: version 1.10.0"),(0,n.kt)("li",{parentName:"ul"},"libtasn1: version 4.18.0"),(0,n.kt)("li",{parentName:"ul"},"libtirpc: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"libtpms: version 0.9.0"),(0,n.kt)("li",{parentName:"ul"},"libunistring: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libunwind: version 1.6.2"),(0,n.kt)("li",{parentName:"ul"},"libusb: version 1.0.24"),(0,n.kt)("li",{parentName:"ul"},"libusb-compat: version 0.1.7"),(0,n.kt)("li",{parentName:"ul"},"libuv: version 1.41.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt: version 8.2.0"),(0,n.kt)("li",{parentName:"ul"},"libvirt-php: version 0.5.6a"),(0,n.kt)("li",{parentName:"ul"},"libwebp: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"libwebsockets: version 4.2.0"),(0,n.kt)("li",{parentName:"ul"},"libx86: version 1.1"),(0,n.kt)("li",{parentName:"ul"},"libxml2: version 2.9.14 (CVE-2022-29824)"),(0,n.kt)("li",{parentName:"ul"},"libxslt: version 1.1.35"),(0,n.kt)("li",{parentName:"ul"},"libzip: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"lm_sensors: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"lmdb: version 0.9.29"),(0,n.kt)("li",{parentName:"ul"},"logrotate: version 3.18.1"),(0,n.kt)("li",{parentName:"ul"},"lshw: version B.02.19.2"),(0,n.kt)("li",{parentName:"ul"},"lsof: version 4.94.0"),(0,n.kt)("li",{parentName:"ul"},"lsscsi: version 0.32"),(0,n.kt)("li",{parentName:"ul"},"lvm2: version 2.03.13"),(0,n.kt)("li",{parentName:"ul"},"lz4: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"lzip: version 1.22"),(0,n.kt)("li",{parentName:"ul"},"lzo: version 2.10"),(0,n.kt)("li",{parentName:"ul"},"mc: version 4.8.27"),(0,n.kt)("li",{parentName:"ul"},"mcelog: version 180"),(0,n.kt)("li",{parentName:"ul"},"miniupnpc: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"mpfr: version 4.1.0"),(0,n.kt)("li",{parentName:"ul"},"nano: version 6.0"),(0,n.kt)("li",{parentName:"ul"},"ncompress: version 5.0"),(0,n.kt)("li",{parentName:"ul"},"ncurses: version 6.3"),(0,n.kt)("li",{parentName:"ul"},"net-tools: version 20181103_0eebece"),(0,n.kt)("li",{parentName:"ul"},"nettle: version 3.7.3"),(0,n.kt)("li",{parentName:"ul"},"network-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"nfs-utils: version 2.5.4"),(0,n.kt)("li",{parentName:"ul"},"nghttp2: version 1.46.0"),(0,n.kt)("li",{parentName:"ul"},"nginx: version 1.21.6"),(0,n.kt)("li",{parentName:"ul"},"nss-mdns: version 0.14.1"),(0,n.kt)("li",{parentName:"ul"},"ntfs-3g: version 2021.8.22"),(0,n.kt)("li",{parentName:"ul"},"ntp: version 4.2.8p15"),(0,n.kt)("li",{parentName:"ul"},"numactl: version 2.0.13"),(0,n.kt)("li",{parentName:"ul"},"oniguruma: version 6.9.7.1"),(0,n.kt)("li",{parentName:"ul"},"openssh: version 8.8p1"),(0,n.kt)("li",{parentName:"ul"},"openssl: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"openssl-solibs: version 1.1.1o (CVE-2022-1292)"),(0,n.kt)("li",{parentName:"ul"},"p11-kit: version 0.24.1"),(0,n.kt)("li",{parentName:"ul"},"pam: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"patch: version 2.7.6"),(0,n.kt)("li",{parentName:"ul"},"pciutils: version 3.7.0"),(0,n.kt)("li",{parentName:"ul"},"pcre: version 8.45"),(0,n.kt)("li",{parentName:"ul"},"pcre2: version 10.39"),(0,n.kt)("li",{parentName:"ul"},"php: version 7.4.29 (CVE-2021-21708)"),(0,n.kt)("li",{parentName:"ul"},"pixman: version 0.40.0"),(0,n.kt)("li",{parentName:"ul"},"pkgtools: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"procps-ng: version 3.3.17"),(0,n.kt)("li",{parentName:"ul"},"pv: version 1.6.6"),(0,n.kt)("li",{parentName:"ul"},"qemu: version 6.2.0"),(0,n.kt)("li",{parentName:"ul"},"qrencode: version 4.1.1"),(0,n.kt)("li",{parentName:"ul"},"reiserfsprogs: version 3.6.27"),(0,n.kt)("li",{parentName:"ul"},"rpcbind: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"rsync: version 3.2.3"),(0,n.kt)("li",{parentName:"ul"},"rsyslog: version 8.2102.0"),(0,n.kt)("li",{parentName:"ul"},"samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336\nCVE-2021-44141 CVE-2021-441412 CVE-2022-0336)"),(0,n.kt)("li",{parentName:"ul"},"sdparm: version 1.12"),(0,n.kt)("li",{parentName:"ul"},"sed: version 4.8"),(0,n.kt)("li",{parentName:"ul"},"sg3_utils: version 1.47"),(0,n.kt)("li",{parentName:"ul"},"shadow: version 4.8.1"),(0,n.kt)("li",{parentName:"ul"},"smartmontools: version 7.3"),(0,n.kt)("li",{parentName:"ul"},"spice: version 0.15.0"),(0,n.kt)("li",{parentName:"ul"},"sqlite: version 3.37.2"),(0,n.kt)("li",{parentName:"ul"},"ssmtp: version 2.64"),(0,n.kt)("li",{parentName:"ul"},"sudo: version 1.9.9"),(0,n.kt)("li",{parentName:"ul"},"swtpm: version 0.7.3 (CVE-2022-23645)"),(0,n.kt)("li",{parentName:"ul"},"sysfsutils: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"sysvinit: version 2.99"),(0,n.kt)("li",{parentName:"ul"},"sysvinit-scripts: version 15.0"),(0,n.kt)("li",{parentName:"ul"},"talloc: version 2.3.2"),(0,n.kt)("li",{parentName:"ul"},"tar: version 1.34"),(0,n.kt)("li",{parentName:"ul"},"tcp_wrappers: version 7.6"),(0,n.kt)("li",{parentName:"ul"},"tdb: version 1.4.6"),(0,n.kt)("li",{parentName:"ul"},"telnet: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"tevent: version 0.11.0"),(0,n.kt)("li",{parentName:"ul"},"traceroute: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"tree: version 1.8.0"),(0,n.kt)("li",{parentName:"ul"},"ttyd: version 20211023"),(0,n.kt)("li",{parentName:"ul"},"usbredir: version 0.8.0"),(0,n.kt)("li",{parentName:"ul"},"usbutils: version 014"),(0,n.kt)("li",{parentName:"ul"},"utempter: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"util-linux: version 2.37.4"),(0,n.kt)("li",{parentName:"ul"},"vbetool: version 1.2.2"),(0,n.kt)("li",{parentName:"ul"},"vsftpd: version 3.0.5"),(0,n.kt)("li",{parentName:"ul"},"wayland: version 1.20.0"),(0,n.kt)("li",{parentName:"ul"},"wget: version 1.21.2"),(0,n.kt)("li",{parentName:"ul"},"which: version 2.21"),(0,n.kt)("li",{parentName:"ul"},"wireguard-tools: version 1.0.20210914"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: version 20111022"),(0,n.kt)("li",{parentName:"ul"},"xfsprogs: version 5.13.0"),(0,n.kt)("li",{parentName:"ul"},"xxHash: version 0.8.1"),(0,n.kt)("li",{parentName:"ul"},"xz: version 5.2.5 (CVE-2022-1271)"),(0,n.kt)("li",{parentName:"ul"},"yajl: version 2.1.0"),(0,n.kt)("li",{parentName:"ul"},"zlib: version 1.2.12"),(0,n.kt)("li",{parentName:"ul"},"zstd: version 1.5.2")),(0,n.kt)("h4",{id:"included-with-gui-mode"},"Included with GUI-mode"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"adwaita-icon-theme: version 40.1.1"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-atk: version 2.38.0"),(0,n.kt)("li",{parentName:"ul"},"at-spi2-core: version 2.42.0"),(0,n.kt)("li",{parentName:"ul"},"atk: version 2.36.0"),(0,n.kt)("li",{parentName:"ul"},"cairo: version 1.16.0"),(0,n.kt)("li",{parentName:"ul"},"dbus-glib: version 0.112"),(0,n.kt)("li",{parentName:"ul"},"freetype: version 2.11.1"),(0,n.kt)("li",{parentName:"ul"},"fribidi: version 1.0.11"),(0,n.kt)("li",{parentName:"ul"},"gd: version 2.3.3"),(0,n.kt)("li",{parentName:"ul"},"gdk-pixbuf2: version 2.42.6"),(0,n.kt)("li",{parentName:"ul"},"graphite2: version 1.3.14"),(0,n.kt)("li",{parentName:"ul"},"gtk+3: version 3.24.31"),(0,n.kt)("li",{parentName:"ul"},"harfbuzz: version 3.2.0"),(0,n.kt)("li",{parentName:"ul"},"hicolor-icon-theme: version 0.17"),(0,n.kt)("li",{parentName:"ul"},"libtiff: version 4.3.0"),(0,n.kt)("li",{parentName:"ul"},"libxkbcommon: version 1.3.1"),(0,n.kt)("li",{parentName:"ul"},"pango: version 1.48.11"),(0,n.kt)("li",{parentName:"ul"},"shared-mime-info: version 2.1"),(0,n.kt)("li",{parentName:"ul"},"startup-notification: version 0.12"),(0,n.kt)("li",{parentName:"ul"},"appres: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"dejavu-fonts-ttf: version 2.37"),(0,n.kt)("li",{parentName:"ul"},"editres: version 1.0.7"),(0,n.kt)("li",{parentName:"ul"},"encodings: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"fontconfig: version 2.13.92"),(0,n.kt)("li",{parentName:"ul"},"freeglut: version 3.2.1"),(0,n.kt)("li",{parentName:"ul"},"glew: version 2.2.0"),(0,n.kt)("li",{parentName:"ul"},"glu: version 9.0.2"),(0,n.kt)("li",{parentName:"ul"},"libICE: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"libSM: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libX11: version 1.7.3.1"),(0,n.kt)("li",{parentName:"ul"},"libXau: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"libXaw: version 1.0.14"),(0,n.kt)("li",{parentName:"ul"},"libXcomposite: version 0.4.5"),(0,n.kt)("li",{parentName:"ul"},"libXcursor: version 1.2.0"),(0,n.kt)("li",{parentName:"ul"},"libXdamage: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXdmcp: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXevie: version 1.0.3"),(0,n.kt)("li",{parentName:"ul"},"libXext: version 1.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXfixes: version 6.0.0"),(0,n.kt)("li",{parentName:"ul"},"libXfont: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXfont2: version 2.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXfontcache: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"libXft: version 2.3.4"),(0,n.kt)("li",{parentName:"ul"},"libXi: version 1.8"),(0,n.kt)("li",{parentName:"ul"},"libXinerama: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libXmu: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"libXpm: version 3.5.13"),(0,n.kt)("li",{parentName:"ul"},"libXrandr: version 1.5.2"),(0,n.kt)("li",{parentName:"ul"},"libXrender: version 0.9.10"),(0,n.kt)("li",{parentName:"ul"},"libXres: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXt: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"libXtst: version 1.2.3"),(0,n.kt)("li",{parentName:"ul"},"libXxf86dga: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"libXxf86misc: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"libXxf86vm: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libdmx: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libevdev: version 1.12.0"),(0,n.kt)("li",{parentName:"ul"},"libfontenc: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"libglvnd: version 1.3.3"),(0,n.kt)("li",{parentName:"ul"},"libpthread-stubs: version 0.4"),(0,n.kt)("li",{parentName:"ul"},"libxcb: version 1.14"),(0,n.kt)("li",{parentName:"ul"},"libxkbfile: version 1.1.0"),(0,n.kt)("li",{parentName:"ul"},"libxshmfence: version 1.3"),(0,n.kt)("li",{parentName:"ul"},"listres: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"mkfontscale: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"mtdev: version 1.1.6"),(0,n.kt)("li",{parentName:"ul"},"sessreg: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"setxkbmap: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"transset: version 1.0.2"),(0,n.kt)("li",{parentName:"ul"},"xauth: version 1.1.1"),(0,n.kt)("li",{parentName:"ul"},"xcb-util: version 0.4.0"),(0,n.kt)("li",{parentName:"ul"},"xdpyinfo: version 1.3.2"),(0,n.kt)("li",{parentName:"ul"},"xdriinfo: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xev: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-evdev: version 2.10.6"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-keyboard: version 1.9.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-mouse: version 1.9.3"),(0,n.kt)("li",{parentName:"ul"},"xf86-input-synaptics: version 1.9.1"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-ast: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-mga: version 2.0.0"),(0,n.kt)("li",{parentName:"ul"},"xf86-video-vesa: version 2.5.0"),(0,n.kt)("li",{parentName:"ul"},"xhost: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xinit: version 1.4.1"),(0,n.kt)("li",{parentName:"ul"},"xkbcomp: version 1.4.5"),(0,n.kt)("li",{parentName:"ul"},"xkbevd: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xkbutils: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xkeyboard-config: version 2.34"),(0,n.kt)("li",{parentName:"ul"},"xkill: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xload: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsatoms: version 1.1.3"),(0,n.kt)("li",{parentName:"ul"},"xlsclients: version 1.1.4"),(0,n.kt)("li",{parentName:"ul"},"xmessage: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"xmodmap: version 1.0.10"),(0,n.kt)("li",{parentName:"ul"},"xorg-server: version 1.20.14"),(0,n.kt)("li",{parentName:"ul"},"xprop: version 1.2.5"),(0,n.kt)("li",{parentName:"ul"},"xrandr: version 1.5.1"),(0,n.kt)("li",{parentName:"ul"},"xrdb: version 1.2.1"),(0,n.kt)("li",{parentName:"ul"},"xrefresh: version 1.0.6"),(0,n.kt)("li",{parentName:"ul"},"xset: version 1.2.4"),(0,n.kt)("li",{parentName:"ul"},"xsetroot: version 1.1.2"),(0,n.kt)("li",{parentName:"ul"},"xsm: version 1.0.4"),(0,n.kt)("li",{parentName:"ul"},"xtrans: version 1.4.0"),(0,n.kt)("li",{parentName:"ul"},"xwd: version 1.0.8"),(0,n.kt)("li",{parentName:"ul"},"xwininfo: version 1.1.5"),(0,n.kt)("li",{parentName:"ul"},"xwud: version 1.0.5"),(0,n.kt)("li",{parentName:"ul"},"imlib2: version 1.7.1"),(0,n.kt)("li",{parentName:"ul"},"fluxbox: version 1.3.7"),(0,n.kt)("li",{parentName:"ul"},"slim: version 1.3.6"),(0,n.kt)("li",{parentName:"ul"},"vte3: version 0.50.2"),(0,n.kt)("li",{parentName:"ul"},"sakura: version 3.5.0"),(0,n.kt)("li",{parentName:"ul"},"xclock: version 1.0.9"),(0,n.kt)("li",{parentName:"ul"},"xterm: version 370"),(0,n.kt)("li",{parentName:"ul"},"hwloc: version 2.2.0")),(0,n.kt)("h4",{id:"linux-kernel-1"},"Linux kernel"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910\nCVE-2022-0847)"),(0,n.kt)("li",{parentName:"ul"},'patch: "drm/i915/gen11: Moving WAs to icl_gt_workarounds_init()"'),(0,n.kt)("li",{parentName:"ul"},'patch: "add-relaxable-rmrr-5_8_and_up.patch" modified for this\nkernel'),(0,n.kt)("li",{parentName:"ul"},"added features:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"several ACPI-related CONFIG settings"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_TCG_TPM and associated TPM chip drivers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFS_V4: NFS client support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NFSD_V4: NFS server support for NFS version 4"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_RTL8152: Realtek RTL8152/RTL8153 Based USB Ethernet\nAdapters"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB_NET_AQC111: Aquantia AQtion USB to 5/2.5GbE\nControllers support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4: Unified support for USB4 and Thunderbolt"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_USB4_NET: Networking over USB4 and Thunderbolt cables"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT: Enable Intel GVT-g graphics virtualization\nhost support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DRM_I915_GVT_KVMGT: Enable KVM/VFIO support for Intel\nGVT-g"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV: Mediated device driver framework"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_VFIO_MDEV_DEVICE: VFIO driver for Mediated devices"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FTRACE: Tracers"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_FUNCTION_TRACER: Kernel Function Tracer"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KPROBES: Kprobes"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_DEBUG_KERNEL: Kernel debugging"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_KALLSYMS_ALL: Include all symbols in kallsyms"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community\nMember ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/profile/72388-ich777/"},"@ich777"),")"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GIGABYTE_WMI: Gigabyte WMI temperature driver"))),(0,n.kt)("li",{parentName:"ul"},"BPF kernel options (user request):",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_SYSCALL: Enable bpf() system call"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT: Enable BPF Just In Time compiler"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_BPF_JIT_ALWAYS_ON: Permanently enable BPF JIT and remove\nBPF interpreter"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_BPF: BPF-based classifier"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_CLS_ACT: Actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_BPF: BPF based action"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_IKHEADERS: Enable kernel headers through\n/sys/kernel/kheaders.tar.xz"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_SFQ: Stochastic Fairness Queueing (SFQ)"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_POLICE: Traffic Policing"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_ACT_GACT: Generic actions"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_GACT_PROB: Probability support"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_NET_SCH_INGRESS: Ingress/classifier-action Qdisc"),(0,n.kt)("li",{parentName:"ul"},"CONFIG_CGROUP_BPF: Support for eBPF programs attached to cgroups"))),(0,n.kt)("li",{parentName:"ul"},"md/unriad: version 2.9.22",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"fix: md_sync_limit was being ignored")))),(0,n.kt)("h4",{id:"management"},"Management"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"better IPv6 support"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: add bz","*",".sha256 values"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Improved anonymization"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: Anonymize mover"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: better package listings in folders.txt"),(0,n.kt)("li",{parentName:"ul"},"diagnostics: do not anonymize 169.254.x.x addresses"),(0,n.kt)("li",{parentName:"ul"},"emhttp new defaults:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"root password required"),(0,n.kt)("li",{parentName:"ul"},"newly created shares not exported by default"),(0,n.kt)("li",{parentName:"ul"},"predefined 'flash' share not exported by default"),(0,n.kt)("li",{parentName:"ul"},"ssh, telnet: disabled by default"),(0,n.kt)("li",{parentName:"ul"},"NetBIOS disabled by default"),(0,n.kt)("li",{parentName:"ul"},"WSD enabled by default (and using newer 'wsdd2' package)"),(0,n.kt)("li",{parentName:"ul"},"Enhanced macOS interoperability enabled by default"),(0,n.kt)("li",{parentName:"ul"},"for 'domains' and 'system' shares, change 'Enable\nCopy-on-write' default setting from 'No' to 'Auto'"),(0,n.kt)("li",{parentName:"ul"},"change poll_attributes tunable default value from 30 min to 30\nsec."))),(0,n.kt)("li",{parentName:"ul"},"emhttpd: add 'rootshare' reserved name"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix regression: user shares should be enabled by default"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: minimize information transmitted by UpdateDNS function"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: use shfs ioctl to invalidate shfs cached share info when\nshare cfg changes"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix incorrect handling of unassigned device read/write\ncounters"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix sometimes wrong device name assigned to hotplugged\nunassigned devices"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs-replace case"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: fix btrfs pool device replace still showing 'missing'"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: delete all PHP sessions when root password is changed (logs\neveryone out)"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: correct device status handling for single-slot pools"),(0,n.kt)("li",{parentName:"ul"},"emhttpd: collapse multiple underscores within nvme /dev/disk/by-id\nsymlinks to single underscore"),(0,n.kt)("li",{parentName:"ul"},"firefox: version 91.0.r20210823123856 (AppImage)"),(0,n.kt)("li",{parentName:"ul"},"mover: fix bug not moving shares with embedded spaces"),(0,n.kt)("li",{parentName:"ul"},"mover: append '.partial' suffix to filename when move in-progress"),(0,n.kt)("li",{parentName:"ul"},"rc.docker: fix startup network race condition"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: Prevent Unraid from hanging when the array is stopped,\nwhile VMs are in paused or suspended state"),(0,n.kt)("li",{parentName:"ul"},"rc.libvirt: test the existence of a VM before adding it to the NAMES\nlist"),(0,n.kt)("li",{parentName:"ul"},"rc.mcelog: mcelog added to base distro"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: change fastcgi_read_timeout from 120s to 640s"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove ttyd side-loading"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support Lets Encrypt wildcard certs"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: support custom wildcard self-signed certs"),(0,n.kt)("li",{parentName:"ul"},'rc.nginx: self-signed cert subject OU change from "unRAID" to\n"Unraid"'),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: ignore case in processing Subject field for custom\ncertificates"),(0,n.kt)("li",{parentName:"ul"},"rc.nginx: remove default server block returning 404 for https if\nUSE_SSL==no and no CA-signed cert"),(0,n.kt)("li",{parentName:"ul"},"rc.samba: disable SMB Multi Channel by default; add control to\nSettings/SMB Settings page"),(0,n.kt)("li",{parentName:"ul"},"rc.S: check bz file sha256 during initial boot"),(0,n.kt)("li",{parentName:"ul"},"shfs: fix bug where permissions being ignored\n('default_permissions' was missing in mount command)"),(0,n.kt)("li",{parentName:"ul"},"sysctl: handle net.netfilter.nf_conntrack_count max exceeded\n(increase setting to 131072)"),(0,n.kt)("li",{parentName:"ul"},"ttyd: fix garbled text in local Firefox Terminal windows"),(0,n.kt)("li",{parentName:"ul"},"upgradepkg: do not upgrade if existing package is newer"),(0,n.kt)("li",{parentName:"ul"},"wsdd2: listen only on active interface by default (br0, bond0, or\neth0)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Integrate header UPC"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add Apps link to install CA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add internal container reference"),(0,n.kt)("li",{parentName:"ul"},'webgui: Add new setting "Terminal font size"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for Pushplus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add notification agent for ServerChan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add 'root' folder protection to filetree"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add tracking after system shutdown"),(0,n.kt)("li",{parentName:"ul"},"webgui: Add vmxnet3 and e1000 into available NICs for VMs"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added \"User 'root'\" reference on Management Access page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added notify when plugin fails to install"),(0,n.kt)("li",{parentName:"ul"},"webgui: Added: Cumulative parity check. This allows a parity check\nto be divided over multiple time windows."),(0,n.kt)("li",{parentName:"ul"},"webgui: Adjusted row highlighting on main and shares page to better\nsuit people with color impairment"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow CA to get all docker info without having to download\nicons if not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow all notification agents to send links"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow ruleset for local rules in rsyslog.conf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Allow simultaneous log and console windows for containers"),(0,n.kt)("li",{parentName:"ul"},'webgui: Always show "WebUI" for user specified URLs'),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance and scrub scheduler"),(0,n.kt)("li",{parentName:"ul"},"webgui: BTRFS balance: fix recommendation message when volume is\nempty"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better array sync when multiple sessions are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Better translation of docker container variables"),(0,n.kt)("li",{parentName:"ul"},"webgui: CSS minor corrections"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change Dashboard Parity status to be invalid and not\nemulated."),(0,n.kt)("li",{parentName:"ul"},"webgui: Change page switching to better suit Safari on mobile\ndevices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Change parity sync notification from error to notice level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Changed header selection for better support of Android"),(0,n.kt)("li",{parentName:"ul"},"webgui: Check for flash offline / quick check on if it is corrupted"),(0,n.kt)("li",{parentName:"ul"},"webgui: Cleanup styles folder"),(0,n.kt)("li",{parentName:"ul"},"webgui: Compress too long share names in dropdown menus"),(0,n.kt)("li",{parentName:"ul"},'webgui: ContextMenu: added option "button": defaults to "left"\n(current behavior), other options are "right" and "both"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Convert notify polling to Nchan"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create favicon.ico"),(0,n.kt)("li",{parentName:"ul"},"webgui: Create syslog entry when user logs out"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: add CPU and NETWORK chart"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: fix bar color when disk thresholds are disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Dashboard: separate cpu details and graph view"),(0,n.kt)("li",{parentName:"ul"},"webgui: Delete DockerRepositories.page see ",(0,n.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265"},"this post for info on\ntheir\nreplacements")),(0,n.kt)("li",{parentName:"ul"},"webgui: Device_list replace .png icon with font icon"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics fix plugin deprecated max version error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Add share summary"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Include current plugin versions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Remove lines from go containing passwords etc"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: Revamp anonymization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add DHCP log"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add check for DNS Rebinding Protection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: add url details"),(0,n.kt)("li",{parentName:"ul"},"webgui: Diagnostics: privatize routable IPs"),(0,n.kt)("li",{parentName:"ul"},'webgui: DisplaySettings: add "showBannerGradient"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Do not highlight false positive ERST error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker settings: suppress browser presets"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker utilization warning only when image file"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add Network / Privacy Category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Add crypto as a category"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Do not update installed user templates"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Fix incorrect caching when deleting / recreating\nimage"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Handle edge case involving browser back button when\nwithin CA in certain unlikely circumstances"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Ignore icon references to default question mark"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Only save templates as v2"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Silence PHP errors when editing a template if\ncorruption exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support CA tag"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: Support ReadMe in context menus"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add description to all custom networks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add route for remote WireGuard access:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},'"Host access to custom networks" must be enabled to allow\naccess'),(0,n.kt)("li",{parentName:"ul"},"Containers with network 'br0' can be remotely accessed by\nWireGuard without the need to configure static routes on the\nhome router (gateway)"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add time unit in settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: add WireGuard description in network selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: compress too long author names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix GUI may hang when multiple screens are opened"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix overlapping container ID display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fix spinner will not disappear after attempting to\nuninstall a non-existent container"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed filetree sometimes not visible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed header display causes gap"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed list display in fixed view mode"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: fixed template removal when no containers exist"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: make popup window fit in browser window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: process bash ANSI colors in web log display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: remove close button in popup window"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: translation optimization"),(0,n.kt)("li",{parentName:"ul"},"webgui: Docker: update window uses color of selected theme"),(0,n.kt)("li",{parentName:"ul"},"webgui: Edit/Add Container: Fix browser console error"),(0,n.kt)("li",{parentName:"ul"},"webgui: Enable/Disable SMART extended test depending on spin down\ndelay setting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Error checking etc on ports for syslog server"),(0,n.kt)("li",{parentName:"ul"},"webgui: Escape double quotes in text input submit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand file type icon selection"),(0,n.kt)("li",{parentName:"ul"},"webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in\ncase of ipv4 + ipv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix CPU model sometimes not present"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix PHP error when calculating balance level"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix corruption check after a New Config is issued"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix missing csrf-token in Notify"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix monitor false positives"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix network bonding display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix pools display on Main page when empty pool exists"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix regression error for themes auzre & gray"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix side bar of themes azure/gray in Firefox"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fix: Improved DNS Rebinding checks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed PHP errors for share and disk calculations"),(0,n.kt)("li",{parentName:"ul"},'webgui: Fixed balance/scrub schedule not saved when device name has\n"-" in it'),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed comments field only for selected disks"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed parity duration + speed when paused/resumed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed smart temperature settings sometimes not possible"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: VM 9p add share issue"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: buttons not working in device info when no device is\npresent"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: missing samesite attribute in cookies"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: parity history sometimes wrongly processed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: race condition when array is stopped and device\nassignments are changed"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: specific disk settings for pool devices only"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: speed calculation of parity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixed: spinner stays visible after docker command"),(0,n.kt)("li",{parentName:"ul"},"webgui: Fixes and enhancements in Browse function"),(0,n.kt)("li",{parentName:"ul"},"webgui: Font files update:"),(0,n.kt)("li",{parentName:"ul"},"Adjust css settings",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Cleanup font files, use only woff format"),(0,n.kt)("li",{parentName:"ul"},"Restore clear-sans font"))),(0,n.kt)("li",{parentName:"ul"},"Update bitstream font",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"bitstream ","-","-",">"," source code pro"),(0,n.kt)("li",{parentName:"ul"},"clear-sans ","-","-",">"," source sans pro"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Force creation of root password"),(0,n.kt)("li",{parentName:"ul"},"webgui: Highlight selected row when hovering over array or shares"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved background process detection and handling"),(0,n.kt)("li",{parentName:"ul"},"webgui: Improved format of stale and error plugin pages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Include links in email and Discord agent notifications"),(0,n.kt)("li",{parentName:"ul"},'webgui: Let setting "showBannerGradient" default to "yes"'),(0,n.kt)("li",{parentName:"ul"},"webgui: Limit popup window width on ultrawide monitors"),(0,n.kt)("li",{parentName:"ul"},"webgui: Log docker icon download failures"),(0,n.kt)("li",{parentName:"ul"},"webgui: Lower update frequency of monitor function to better suit\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Main page - lower table update frequency for better\nresponsiveness of links"),(0,n.kt)("li",{parentName:"ul"},'webgui: Make WireGuard trademark visible on "full" page'),(0,n.kt)("li",{parentName:"ul"},"webgui: Make links in help text standout (red)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Management: fix ports in use check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Miscellaneous updates and fixes"),(0,n.kt)("li",{parentName:"ul"},"webgui: Move Start button below encryption field"),(0,n.kt)("li",{parentName:"ul"},"webgui: NFS: fix copying of hostList after READ operation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Nchan: Use multiplexed channels and add error reporting"),(0,n.kt)("li",{parentName:"ul"},"webgui: Only allow png files to be uploaded as user image"),(0,n.kt)("li",{parentName:"ul"},"webgui: Open terminal window with dynamic size"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: allow spinup/spindown when operation is paused"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity check: re-introduce Done button when finished"),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity operation enhancements:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add disk clear action"),(0,n.kt)("li",{parentName:"ul"},"Add parity operation action to history view"),(0,n.kt)("li",{parentName:"ul"},'Added "size" column to parity history'),(0,n.kt)("li",{parentName:"ul"},"CSS adjustment in SMART attributes"),(0,n.kt)("li",{parentName:"ul"},"Correct calculations for data-rebuild smaller than parity"),(0,n.kt)("li",{parentName:"ul"},"Separate Parity-Sync and Data-Rebuild as individual actions"),(0,n.kt)("li",{parentName:"ul"},"Show additional buttons in Array Stopped state"),(0,n.kt)("li",{parentName:"ul"},"Textual enhancements"),(0,n.kt)("li",{parentName:"ul"},"Use Nchan updates for copying/clearing progress"))),(0,n.kt)("li",{parentName:"ul"},"webgui: Parity: shown duration time excluding idle time"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugin manager: fix branch select gets unnecessary disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Plugins page loading improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: Proactive script security hardening"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax SMART detection logic"),(0,n.kt)("li",{parentName:"ul"},"webgui: Relax update frequency a bit"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove Nchan error detection (Rely on the automatic\nreconnect of Nchan to re-establish connections when communication is\nslow)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Remove deprecated font extensions: eot, svg, ttf"),(0,n.kt)("li",{parentName:"ul"},"webgui: Replace polling scripts with event driven Nchan interface"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revert back to default capitalization of device names"),(0,n.kt)("li",{parentName:"ul"},"webgui: Revised filedrop.js"),(0,n.kt)("li",{parentName:"ul"},"webgui: Right-clicking or long-clicking a menu item should open the\nselected menu"),(0,n.kt)("li",{parentName:"ul"},"webgui: SSH authorized keys UI"),(0,n.kt)("li",{parentName:"ul"},"webgui: Set Main page update frequency to 1s for better support of\nmobile devices"),(0,n.kt)("li",{parentName:"ul"},"webgui: Shares: fix wrong size computation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show IP on VM Manager VM Page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show management access and shares access groups for users"),(0,n.kt)("li",{parentName:"ul"},"webgui: Show warning when javascript is disabled"),(0,n.kt)("li",{parentName:"ul"},"webgui: Sign-in required to provision/renew Unraid LE SSL\ncertificate"),(0,n.kt)("li",{parentName:"ul"},"webgui: Silence PHP error on syslinux page if flash drive is missing"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support future T2FA"),(0,n.kt)("li",{parentName:"ul"},"webgui: Support multi-language in filetree display"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress IPv6 anycast addresses in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: Suppress non-relevant IPv6 routes in routing table"),(0,n.kt)("li",{parentName:"ul"},"webgui: System devices additions"),(0,n.kt)("li",{parentName:"ul"},"webgui: System info: fix translation"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translation support (Unraid.net)"),(0,n.kt)("li",{parentName:"ul"},"webgui: Translations: fix creation of empty sessions"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Credits.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update DashStats.page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update FileTree.php"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update GUI with latest helptext"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update Outlook/Hotmail smtp settings"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update alert text"),(0,n.kt)("li",{parentName:"ul"},"webgui: Update css files to use woff and woff2 formats only"),(0,n.kt)("li",{parentName:"ul"},"webgui: UpdateDNS to prefer IPv4 first and then IPv6"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated bitstream font to support more languages"),(0,n.kt)("li",{parentName:"ul"},"webgui: Updated help text for Display settings and Docker"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use background checking for flash corruption"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use https for internet connectivity check"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use tabbed view for device information page"),(0,n.kt)("li",{parentName:"ul"},"webgui: Use ttyd for logging windows"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: add virtio-win-0.1.208.iso download link"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM Manager: added Windows 11 template and OVMF TPM"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM editor style update"),(0,n.kt)("li",{parentName:"ul"},"webgui: VM: fix missing path selection (for GPU firmware file)"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: automatically update virtio-win iso list"),(0,n.kt)("li",{parentName:"ul"},"webgui: VMs: optimized contextmenu"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate WebGUI ports before applying"),(0,n.kt)("li",{parentName:"ul"},"webgui: Validate destination of VirtIO ISO downloads"),(0,n.kt)("li",{parentName:"ul"},"webgui: When viewing source, identify which .page file is\nresponsible"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard integrated"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard updates:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Add tunnel routing for docker containers"),(0,n.kt)("li",{parentName:"ul"},"Automatically make the WG tunnel available to containers (custom\nnetwork)"),(0,n.kt)("li",{parentName:"ul"},"Make import config file of VPN providers more robust."),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for docker"),(0,n.kt)("li",{parentName:"ul"},"VPN tunneled access for system"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Add warning when tunnel deletion fails"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: Introduce new network modes:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: add logic to recreate networks after reboot"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fixed proper handling of ipv4 + ipv6 tunnels"),(0,n.kt)("li",{parentName:"ul"},'webgui: WireGuard: preset peer DNS server with "Remote tunneled\naccess"'),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: use kill switch when tunnel inactive"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: user nginx settings and unraid.net api"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: warn when directly connected with public IP"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: fix import function to accept all keys"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:"),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: make management interface selectable:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Defaults to eth0 - future expansion"))),(0,n.kt)("li",{parentName:"ul"},"webgui: WireGuard: strip ListenPort from file input:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"ListenPort must be unique, let WG generate a random local port\ninstead"))),(0,n.kt)("li",{parentName:"ul"},"webgui: css scrollbar enhancements"),(0,n.kt)("li",{parentName:"ul"},"webgui: diagnostics: fix: anonymize myunraid.net urls"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan Security: Remove HTML tags from Config elements"),(0,n.kt)("li",{parentName:"ul"},"webgui: dockerMan: remove HTML from descriptions"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: password lockouts not being cleared properly"),(0,n.kt)("li",{parentName:"ul"},"webgui: fix: remove reauthentication msg from email notifications"),(0,n.kt)("li",{parentName:"ul"},"webgui: improve: Highlight selected row when hovering over array or\nshares"),(0,n.kt)("li",{parentName:"ul"},"webgui: jQuery: version 3.6.0"),(0,n.kt)("li",{parentName:"ul"},"webgui: present CA-signed certificate subject as a link"),(0,n.kt)("li",{parentName:"ul"},"webgui: privatize host in diagnostics"),(0,n.kt)("li",{parentName:"ul"},"webgui: refactor UpdateDNS.php: anonymize verbose output by default,\nother improvements"),(0,n.kt)("li",{parentName:"ul"},"webgui: remove 'My Servers' skeleton page"),(0,n.kt)("li",{parentName:"ul"},"webgui: require sign in to provision cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: support simultaneous LAN SSL with self-signed cert and\nDNS-based SSL with Lets Encrypt cert"),(0,n.kt)("li",{parentName:"ul"},"webgui: various Multi-language corrections")),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/7b378cd1.40233086.js b/zh/assets/js/7b378cd1.40233086.js new file mode 100644 index 000000000..75ed2f96b --- /dev/null +++ b/zh/assets/js/7b378cd1.40233086.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/zh/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/zh/unraid-os/manual/vm-management"},next:{title:"Security",permalink:"/zh/unraid-os/manual/security/"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/7b378cd1.ba2d30da.js b/zh/assets/js/7b378cd1.ba2d30da.js deleted file mode 100644 index eaf9817a4..000000000 --- a/zh/assets/js/7b378cd1.ba2d30da.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1367],{4137:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>c});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=p(a),d=i,c=h["".concat(l,".").concat(d)]||h[d]||m[d]||r;return a?n.createElement(c,o(o({ref:t},u),{},{components:a})):n.createElement(c,o({ref:t},u))}));function c(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var p=2;p<r;p++)o[p]=a[p];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},6582:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:7},o="Community Applications",s={unversionedId:"unraid-os/manual/applications",id:"unraid-os/manual/applications",title:"Community Applications",description:"This section discusses running applications on an Unraid server or",source:"@site/docs/unraid-os/manual/applications.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/applications",permalink:"/zh/unraid-os/manual/applications",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"unraidSidebar",previous:{title:"Managing VMs",permalink:"/zh/unraid-os/manual/vm-management"},next:{title:"Multi-Language Support",permalink:"/zh/unraid-os/manual/multi-language"}},l={},p=[{value:"Overview",id:"overview",level:2},{value:"Community Applications (CA)",id:"community-applications-ca",level:2},{value:"Finding applications",id:"finding-applications",level:3},{value:"Installing Applications",id:"installing-applications",level:3},{value:"Removing Applications / Showing Installed Applications",id:"removing-applications--showing-installed-applications",level:3},{value:"Re-Installing Applications",id:"re-installing-applications",level:3},{value:"Support for applications",id:"support-for-applications",level:3},{value:"Plugins",id:"plugins",level:2},{value:"Docker Containers",id:"docker-containers",level:2},{value:"Virtual Machines",id:"virtual-machines",level:2},{value:"Technology Stack",id:"technology-stack",level:3}],u={toc:p},h="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"community-applications"},"Community Applications"),(0,i.kt)("p",null,"This section discusses running applications on an Unraid server or\nextending the base capabilities. One of the great strengths of Unraid is\nthe ability for it to easily be made to function as more than a basic\nNAS system."),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"A number of mechanisms are provided by which the capability of an Unraid\nserver can be extended."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Plugins"),(0,i.kt)("li",{parentName:"ul"},"Docker containers"),(0,i.kt)("li",{parentName:"ul"},"Virtual Machines")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("h2",{id:"community-applications-ca"},"Community Applications (CA)"),(0,i.kt)("p",null,"Although it is not part of the standard Unraid distribution the\nCommunity Applications (CA) plugin has become the recommended way for\ninstalling applications on an Unraid server whenever the application is\nimplemented via a plugin or as a docker container. This does not stop\nusers from installing applications that are not handled by CA, but using\nCA provides a useful level of curation that is of particular value to\nnew Unraid users."),(0,i.kt)("p",null,"Install Community Applications by visiting this page on the forum:\n",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/38582-plug-in-community-applications/"},"https://forums.unraid.net/topic/38582-plug-in-community-applications/")),(0,i.kt)("h3",{id:"finding-applications"},"Finding applications"),(0,i.kt)("p",null,"NOTE: CA only provides a way of installing applications that are\navailable as plugins or Docker containers - it does not provide any\nsupport for installing VMs."),(0,i.kt)("h3",{id:"installing-applications"},"Installing Applications"),(0,i.kt)("p",null,"From any given app's tile, click the download icon\n",(0,i.kt)("img",{src:a(3629).Z,width:"446",height:"321"})),(0,i.kt)("h3",{id:"removing-applications--showing-installed-applications"},"Removing Applications / Showing Installed Applications"),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Installed Applications"),' Category, you will see all of your\ninstalled applications. Click the "x" to uninstall them.'),(0,i.kt)("h3",{id:"re-installing-applications"},"Re-Installing Applications"),(0,i.kt)("p",null,"If you ever need to re-install any plugins or docker container then this\ncan be easily achieved via Community applications."),(0,i.kt)("p",null,"A common reason for wanting to re-install applications is the case where\nthe docker.img file has been corrupted for some reason. In such a case\nthe docker containers can be re-installed with all their settings intact\nin just a few minutes."),(0,i.kt)("p",null,"CA stores an XML template for each application that it installs at\n/boot/config/plugins/dockerMan/templates-user If you go to the ",(0,i.kt)("strong",{parentName:"p"},"Apps"),"\ntab in the Unraid GUI then there is a ",(0,i.kt)("strong",{parentName:"p"},"Previous Apps")," section and this\ncan be used to reinstall applications using their saved settings. These\nare retrieved automatically from the saved XML templates so it is a\nrelatively painless process."),(0,i.kt)("h3",{id:"support-for-applications"},"Support for applications"),(0,i.kt)("p",null,"It is normal for each Plugin or docker container to have a forum thread\nthat is dedicated to proving support and answering questions from\nend-users. It is normal for the developer responsible for each of these\ntypes of applications to create a forum thread that they will monitor.\nThere are a number of easy ways to get to the appropriate support thread\nfrom the Unraid GUI:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Apps tab"),(0,i.kt)("li",{parentName:"ul"},"Dashboard tab"),(0,i.kt)("li",{parentName:"ul"},"Plugins tab"),(0,i.kt)("li",{parentName:"ul"},"Docker tab")),(0,i.kt)("p",null,"Virtual Machines do not have the same level of targeted support as they\ncan be running almost any OS, and then within that OS any application\nsupported by the OS. Having said that there are several areas within the\nforums that are dedicated places for asking questions about VMs and it\nis likely that you will find appropriate threads for the most common OSes."),(0,i.kt)("h2",{id:"plugins"},"Plugins"),(0,i.kt)("p",null,"This mechanism allows code to be loaded into the core Unraid OS and run\nat that level. It was the only way to extend Unraid functionality prior\nto Unraid v6."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"Limetech does not supply the applications or\nfunctionality that can be implemented using these Mechanisms. it is up\nto the end-user to satisfy themselves to the suitability of any\nparticular application.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pros"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The plugin developer can access any part of the Unraid system\nwithout restriction."),(0,i.kt)("li",{parentName:"ul"},"The plugin can load new code modules into the core Unraid OS"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add/amend the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"The plugin can add functionality that many deem important to\nallowing Unraid to function as a NAS."),(0,i.kt)("li",{parentName:"ul"},"Plugins are normally published as Open Source so end-users can check\nthat they do not attempt to do anything malicious. However, the\nplugin mechanism does not enforce this.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Cons"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Plugins can make an Unraid system unstable"),".",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Plugins can load code modules that overwrite the versions\nsupplied as part of a standard Unraid release. Any new Unraid\nrelease can include many upgraded/added modules. This means that\nit is important that if the plugin installs new code modules\nthat the plugin author keeps the plugin up-to-date and aware of\nthe release of Unraid on which it is being installed."),(0,i.kt)("li",{parentName:"ul"},"Unraid has the ability to boot a system in Safe Mode that\nsuppresses plugins loading to help with diagnosing problems\ncaused by plugins. This should be one of the first things to\ntry if a system becomes unstable after installing a new Unraid\nrelease."),(0,i.kt)("li",{parentName:"ul"},"If there is a choice between a plugin and a docker\ncontainer-based solution to add a feature to an Unraid system\nthe docker container approach is always the recommended way to\ngo as it does not introduce the same risk of causing\ninstability."))),(0,i.kt)("li",{parentName:"ul"},"Plugins will have full access to all the data on the Unraid system"),(0,i.kt)("li",{parentName:"ul"},"If a plugin is not maintained by the developer or the Unraid user\ndoes not keep the plugin up-to-date then when a new Unraid release\nis installed the plugin may make that release misbehave in\nunexpected ways.")),(0,i.kt)("p",null,"Plugins are installed as part of the Unraid boot process after loading\nLinux completes and before the GUI and/or array is started."),(0,i.kt)("p",null,"The current recommendation is that plugins should only be used for\nfunctionality that cannot be added using a Docker container. This helps\nmaintain system stability across Unraid releases. Plugins should\ntherefore be adding system-level services and not end-user applications."),(0,i.kt)("p",null,"Thu Unraid GUI has a Plugins tab that can show what plugins are\ninstalled and provides capabilities for upgrading the installed plugins\nto new releases. It also provides the ability to install plugins from\nthis tab, but it is recommended that if the plugin is known to Community\nApplications that plugins are instead installed from the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab."),(0,i.kt)("p",null,"As part of improving core sometimes a plugin's functionality gets\nincorporated into a new Unraid release making the plugin superfluous\n(and possibly even harmful to system stability). If you are using\nCommunity Applications to install plugins (recommended) then CA will\nonly offer to install plugins that are believed to be compatible with\nthat release. It will not, however, remove plugins that are already\ninstalled but are no longer known to be compatible with the current\nrelease."),(0,i.kt)("h2",{id:"docker-containers"},"Docker Containers"),(0,i.kt)("p",null,"Unraid includes support for the technology known as\n",(0,i.kt)("a",{parentName:"p",href:"https://www.docker.com/"},"Docker")," for allowing Linux-based applications."),(0,i.kt)("p",null,"Docker provides a mechanism for running Linux applications in a manner\nthat allows them to be isolated both from the host system (Unraid) and\nalso from each other. This means that docker application are independent\nof the release of Unraid that is hosting them. The user can also\nconfigure which resources on the host system any particular Docker\ncontainer can access."),(0,i.kt)("p",null,"Key points of the Unraid implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The files that make up a Docker container are stored within a\nvirtual disk image (i.e. a single file at the Unraid level).",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The average user does not need to understand this type of\ndetail but it can help with troubleshooting and making sense of\nlog messages."),(0,i.kt)("li",{parentName:"ul"},"The default name of the virtual disk images is ",(0,i.kt)("strong",{parentName:"li"},"docker.img"),".\nUsers can over-ride this but it is rarely done as no advantage\nis gained by doing this."),(0,i.kt)("li",{parentName:"ul"},"Internally the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is formatted using the\n",(0,i.kt)("strong",{parentName:"li"},"BTRFS")," filing system and is mounted at the Unraid level as\n",(0,i.kt)("strong",{parentName:"li"},"/dev/loop2")),(0,i.kt)("li",{parentName:"ul"},"The ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file will internally contain the binaries\nassociated with each installed docker container."))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides a GUI-based method for easily installing and\nconfiguring Docker containers. This acts as a front-end to the\n",(0,i.kt)("strong",{parentName:"li"},"docker run")," command-line tool.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When a docker container is installed the parameters provided by\nthe user (which are then used to build up the docker run command\nfor a container) are stored on the flash drive as an XML file so\nit is easy to re-install a container without having to re-create\nits settings from scratch."),(0,i.kt)("li",{parentName:"ul"},"Unraid users can provide prepopulated templates for common\napplications that minimize (or even completely eliminate) the\namount of configuration the average user will have to do to get\nany particular container running."))),(0,i.kt)("li",{parentName:"ul"},"The default location for the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file is within the\n",(0,i.kt)("em",{parentName:"li"},"system")," share. The ",(0,i.kt)("em",{parentName:"li"},"system")," share is set up with the ",(0,i.kt)("em",{parentName:"li"},"Use\nCache=Prefer")," setting as having the ",(0,i.kt)("em",{parentName:"li"},"docker.img")," file on the cache\n((f the user has one) helps with maximizing the performance of\nDocker containers."),(0,i.kt)("li",{parentName:"ul"},"Unraid does ",(0,i.kt)("strong",{parentName:"li"},"not")," have built in support for the ",(0,i.kt)("strong",{parentName:"li"},"docker compose"),"\ncommand line utility.")),(0,i.kt)("h2",{id:"virtual-machines"},"Virtual Machines"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL BEING WORKED ON AND MORE DETAIL NEEDS ADDING")),(0,i.kt)("p",null,"Virtual Machine (VM) support allows you to run other Operating Systems\nas guests on an Unraid server."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Pro:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You can use applications that are not available natively under\nUnraid."),(0,i.kt)("li",{parentName:"ul"},"You can experiment with other OS without needing separate hardware.\nThis can be done purely as a learning exercise or because you need\naccess to features of the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Multiple guest OS can be run in parallel on the same hardware.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Con:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You need to know how to use the ",(0,i.kt)("em",{parentName:"li"},"guest")," OS."),(0,i.kt)("li",{parentName:"ul"},"The VM will need dedicated resources to run that are in addition to\nthose required by Unraid itself."),(0,i.kt)("li",{parentName:"ul"},"VMs are far more resource-heavy than a docker container as they\nrequire much more in the way of dedicated resources to run.")),(0,i.kt)("h3",{id:"technology-stack"},"Technology Stack"),(0,i.kt)("p",null,"Unraid 6 features a number of key technologies to simplify the creation\nand management of localized VMs running on an Unraid host:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"KVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/page/Main_Page"},"KVM")," is a hypervisor\nresponsible for monitoring and managing the resources allocated\nto virtual machines."),(0,i.kt)("p",{parentName:"li"},": KVM is a component in the Linux kernel that allows it to act as\na hypervisor. Simply put, hypervisors are responsible for\nmonitoring and managing the resources allocated to virtual\nmachines. Virtual machines are emulated computers that run on\ntop of a physical computer. Ever wanted to run three operating\nsystems on one computer all at the same time? Hypervisors make\nthis possible. Examples of other hypervisors include Xen, VMWare\n(ESX/ESXi), VirtualBox, and Microsoft Hyper-V")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unlike other hypervisors, KVM is the only one that is built\ndirectly into and supported by the Linux kernel itself."),(0,i.kt)("p",{parentName:"li"},": All other type-1 hypervisors out there will load before Linux\ndoes, and then Linux runs in an underprivileged state to that\nhypervisor.\n: By leveraging a hypervisor that is part of the Linux kernel\nitself, it means better support, less complexity, and more room\nfor optimization improvements.")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"QEMU")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.qemu.org/"},"QEMU")," is the component in the kernel\nthat manages / monitors resources allocated to virtual machines."),(0,i.kt)("li",{parentName:"ul"},"QEMU is responsible for the emulation of hardware components\nsuch as a motherboard, CPU, and various controllers that make up\na virtual machine."),(0,i.kt)("li",{parentName:"ul"},"KVM can't work without QEMU, so you'll often times see KVM\nreferred to as KVM/QEMU."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"HVM")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"When virtual machine technology was first starting to grow in\nadoption, it wasn't directly supported by the chipset\nmanufacturers directly. As such, there was a significant amount\nof overhead associated with virtual machines due to software\nemulation. Later, Intel and AMD built support for virtualization\ndirectly into their hardware (Intel VT-x and AMD-v), reducing\noverhead for emulation, monitoring, and security. These\ntechnologies allow for the creation of hardware-assisted virtual\nmachines (referred to as HVMs)."),(0,i.kt)("li",{parentName:"ul"},"While Xen offers a way to eliminate the overhead associated with\ntraditional emulation without the need for VT-x, this\nparavirtualization method only works with Linux-based guests,\nand for that, Docker Containers are a better solution anyway. As\nsuch, HVMs are best suited for virtual machines where more than\njust basic Linux applications are needed."),(0,i.kt)("li",{parentName:"ul"},"HVM is required to be able to run a VM on Unraid. Most modern\nsystems will have HVM support. You can see if your Unraid server\nhas HVM support by clicking on the ",(0,i.kt)("em",{parentName:"li"},"info")," button at the top\nright of the Unraid GUI. If it shows as disabled then you might\nwant to check your motherboard's BIOS to see if it needs to be\nenabled there."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VFIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://www.linux-kvm.org/images/b/b4/2012-forum-VFIO.pdf"},"VFIO"),"\n(",(0,i.kt)("strong",{parentName:"p"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"p"},"F"),"unction ",(0,i.kt)("strong",{parentName:"p"},"IO"),") allows us to assign a physical\ndevice, such as a graphics card, directly to a virtual machine\nthat in turn will provide driver support for the device\ndirectly."),(0,i.kt)("p",{parentName:"li"},": We can also prevent the device from accessing spaces in memory\nthat are outside of that VM. This means that if something goes\nwrong with the device or its driver, the impact of such an event\nis limited to the virtual machine and not the host.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO prevents assigned devices from accessing spaces in memory\nthat are outside of the VM to which they are assigned. This\nlimits the impact of issues pertaining to device drivers and\nmemory space, shielding Unraid OS from being exposed to\nunnecessary risk.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"VFIO usage requires ",(0,i.kt)("strong",{parentName:"p"},"IOMMU")," capable hardware (your CPU must\nhave Intel VT-d or AMD-Vi\nsupport)",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/Documentation/vfio.txt"},"1"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"IOMMU is required to be able to pass through hardware to a VM on\nUnraid. You can see if your Unraid server has IOMMU support by\nclicking on the ",(0,i.kt)("em",{parentName:"p"},"info")," button at the top right of the Unraid\nGUI. If it shows as disabled then you might want to check your\nmotherboard's BIOS to see if it needs to be enabled there."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"IOMMU support requires support in the CPU, motherboard, and\nBIOS to all be present."),(0,i.kt)("li",{parentName:"ul"},"IOMMU is often referred to as ",(0,i.kt)("em",{parentName:"li"},"hardware pass-through")," in the\ncontext of a VM."),(0,i.kt)("li",{parentName:"ul"},"IOMMU allows a VM to get direct access to hardware and thus\ntends to give better performance in using that hardware and\nalso may allow capabilities of the hardware to be accessed\nby the VM that is not possible in the host OS."))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtIO")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linux-kvm.org/page/Virtio"},"VirtIO"),' is a\nvirtualization standard for network and disk device drivers\nwhere just the guest\'s device driver "knows" it is running in\na virtual environment and cooperates with the hypervisor.'),(0,i.kt)("li",{parentName:"ul"},"This enables guests to get high-performance network and disk\noperations, and gives most of the performance benefits of\nparavirtualization",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/Virtio"},"2"),"."),(0,i.kt)("li",{parentName:"ul"},"Using VirtIO in a guest OS requires that guest OS have virtIO\ndrivers installed for the devices specified to use VirtIO in the\nVM definition."),(0,i.kt)("li",{parentName:"ul"},"If the guest does not haveVirtIO drivers then the VM will have\nto be specified to emulate a device for which the guest OS\n",(0,i.kt)("strong",{parentName:"li"},"does")," have drivers. This will be less efficient but does\nallow OS that are not VirtIO aware to be run in a VM. Examples\nmight be to emulate SCSI or SATA for disk drives and e1000 for\nnetwork adapters."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VirtFS")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Also referred to as the 9p filesystem,\n",(0,i.kt)("a",{parentName:"li",href:"https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf"},"VirtFS"),"\nallows us to easily pass through file system access from a\nvirtualization host to a guest."),(0,i.kt)("li",{parentName:"ul"},"VirtFS is the equivalent of Docker Volumes for KVM, but requires\na mount command to be issued from within the\nguest",(0,i.kt)("a",{parentName:"li",href:"http://wiki.qemu.org/Documentation/9psetup"},"3"),". VirtFS\nworks with Linux-based virtual machines ",(0,i.kt)("em",{parentName:"li"},"only"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Libvirt")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://libvirt.org/"},"Libvirt")," is a collection of software that\nprovides a convenient way to manage virtual machines and other\nvirtualization functionality, such as storage and network\ninterface management."),(0,i.kt)("li",{parentName:"ul"},"These software pieces include an API library, a daemon\n(libvirtd), and a command-line utility\n(virsh)",(0,i.kt)("a",{parentName:"li",href:"http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F"},"4"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VNC")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Virtual_Network_Computing"},"VNC"),"\nis a method that allows the screen/mouse/keyboard of a VM to be\nvisible across the network from another device."),(0,i.kt)("li",{parentName:"ul"},"VNC clients are available for most OS"),(0,i.kt)("li",{parentName:"ul"},"VNC can be used to view ",(0,i.kt)("em",{parentName:"li"},"emulated")," GPUs."),(0,i.kt)("li",{parentName:"ul"},"VNC does ",(0,i.kt)("strong",{parentName:"li"},"not")," support sound emulation."),(0,i.kt)("li",{parentName:"ul"},"One can get better performance emulating a GPU by having\nappropriate software installed directly into a guest OS. Such\nsoftware also often provides sound emulation as well.")))),(0,i.kt)("p",null,"It is worth understanding what technologies are being used for\nvirtualization by Unraid as documentation on these technologies will not\nbe Unraid specific. Also, many issues relating to these technology\ncomponents can be common across all Linux systems using a particular\ntechnology component so often answers can be found in places other than\nthe Unraid forums."),(0,i.kt)("p",null,"Particulars of the Unraid implementation of VM support are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"KVM"),": Unraid makes use of the Linux\n",(0,i.kt)("a",{parentName:"li",href:"https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine"},"KVM"),"\n(",(0,i.kt)("strong",{parentName:"li"},"K"),"ernel ",(0,i.kt)("strong",{parentName:"li"},"V"),"irtual ",(0,i.kt)("strong",{parentName:"li"},"M"),"achine) facility to allow other\noperating system to run as guests on an Unraid system.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"QEMU"))),(0,i.kt)("li",{parentName:"ul"},"Unraid provides GUI support for managing VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Libvirt:")," The XML definitions needed by libvirt are stored as a\ndisk image file (typically called ",(0,i.kt)("em",{parentName:"li"},"libvirt.img")," although the user\ncan change this name)"),(0,i.kt)("li",{parentName:"ul"},"Unraid sets up some standard shares to provide a level of\nconsistency to users:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": This the default location for storing VM vdisk\nimages associated with a VM"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": This is the default location for storing iso images\nfor use with VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": This is the default location for storing the\nlibvirt.img file (that contains the XML definitions for VMs."),(0,i.kt)("li",{parentName:"ul"},"The users can over-ride any of these settings if so desired when\ncreating individual VMs but for most users, the defaults are a good\noption."),(0,i.kt)("li",{parentName:"ul"},"All these shares have a default ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting of ",(0,i.kt)("em",{parentName:"li"},"prefer"),".\nHaving VM files (particularly disk images) on the cache will give\nmuch better performance than having them on an array drive."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"VNC"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid has the NoVNC web-based client built into its GUI and it\ncan be used to access all VMs without the need to install\nspecialist software into the guest OS."),(0,i.kt)("li",{parentName:"ul"},"Alternative VNC clients can be used to access the VMs hosted by\nUnraid. The port to be used for such clients is displayed in the\nUnraid GUI on the VM tab when a VM is running. Using such an\nalternative client can work in cases where the NoVNC client does\nnot work correctly for some reason.")))))}m.isMDXComponent=!0},3629:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/CA_Tile1-a97ac1274c35f1c175b82daa23095ff9.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/7c081f1b.0e8babec.js b/zh/assets/js/7c081f1b.0e8babec.js deleted file mode 100644 index 7e9f0f7cd..000000000 --- a/zh/assets/js/7c081f1b.0e8babec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(n),p=i,m=c["".concat(l,".").concat(p)]||c[p]||h[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/zh/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Security",permalink:"/zh/unraid-os/manual/security"},next:{title:"Upgrading Unraid",permalink:"/zh/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},c="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/7c081f1b.53e7e977.js b/zh/assets/js/7c081f1b.53e7e977.js new file mode 100644 index 000000000..fe2a131c2 --- /dev/null +++ b/zh/assets/js/7c081f1b.53e7e977.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5069],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),d=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),h=d(n),p=i,m=h["".concat(l,".").concat(p)]||h[p]||c[p]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,r[1]=s;for(var d=2;d<o;d++)r[d]=n[d];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var a=n(7462),i=(n(7294),n(4137));const o={},r="Tools",s={unversionedId:"unraid-os/manual/tools",id:"unraid-os/manual/tools",title:"Tools",description:"THIS SECTION IS STILL UNDER CONSTRUCTION",source:"@site/docs/unraid-os/manual/tools.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/tools",permalink:"/zh/unraid-os/manual/tools",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/tools.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/zh/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Upgrading Unraid",permalink:"/zh/unraid-os/manual/upgrade-instructions"}},l={},d=[{value:"Unraid Standard Tools",id:"unraid-standard-tools",level:2},{value:"Unraid OS",id:"unraid-os",level:3},{value:"Diagnostics",id:"diagnostics",level:4},{value:"Hardware Profile",id:"hardware-profile",level:4},{value:"New Config",id:"new-config",level:4},{value:"New Permissions",id:"new-permissions",level:4},{value:"Archived Notifications",id:"archived-notifications",level:4},{value:"Processes",id:"processes",level:4},{value:"System Devices",id:"system-devices",level:4},{value:"System Log",id:"system-log",level:4},{value:"webGUI",id:"webgui",level:3},{value:"Language",id:"language",level:4},{value:"Page Map",id:"page-map",level:4},{value:"Vars",id:"vars",level:4},{value:"About",id:"about",level:3},{value:"Credits",id:"credits",level:4},{value:"EULA",id:"eula",level:4},{value:"Registration",id:"registration",level:4},{value:"Update OS",id:"update-os",level:4},{value:"3rd Party Tools",id:"3rd-party-tools",level:2},{value:"Unraid OS",id:"unraid-os-1",level:3},{value:"Config File Editor",id:"config-file-editor",level:4},{value:"Docker Safe New Perms",id:"docker-safe-new-perms",level:4},{value:"About",id:"about-1",level:3},{value:"Update Assistant",id:"update-assistant",level:4}],u={toc:d},h="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(h,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"tools"},"Tools"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"THIS SECTION IS STILL UNDER CONSTRUCTION")),(0,i.kt)("p",null,"The Tools section of the Unraid GUI is used to access a number of Tools\nto help with managing an Unraid server on a day-to-day basis. The list\nof tools available is often extended by 3rd party supplied plugins."),(0,i.kt)("h2",{id:"unraid-standard-tools"},"Unraid Standard Tools"),(0,i.kt)("p",null,"This section covers tools that are supplied as standard with an Unraid\ninstallation. They are grouped into a number of sections for ease of\nselection."),(0,i.kt)("h3",{id:"unraid-os"},"Unraid OS"),(0,i.kt)("h4",{id:"diagnostics"},"Diagnostics"),(0,i.kt)("h4",{id:"hardware-profile"},"Hardware Profile"),(0,i.kt)("h4",{id:"new-config"},"New Config"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT:")," ",(0,i.kt)("em",{parentName:"p"},"This tool is not part of the standard process for\nrecovering from a disk failure. In most cases since the procedure\nnormally invalidates parity it will have the opposite effect and stop\nyou being able to recover the contents of a failed disk intact.")),(0,i.kt)("p",null,"This option is used to put the array back into a state where disk drives\ncan be assigned as wanted and then parity rebuilt to match the new\nassignments. It exploits the fact that Unraid can recognise drives that\nhave previously been used by Unraid and will leave their contents\nuntouched (as long as the drive is not assigned as a parity drive)."),(0,i.kt)("p",null,"When using this option you are given the option to preserve previous\nassignments at various levels. It is not important which you use but\nusing one can minimise the amount of re-selecting drives to specific\nslots (and thus reduce the chance of you making an error) by selecting\none of them. After you have run this option you can then return to the\nMain tab and make any further adjustments you want. The assignments then\nget committed when you start the array."),(0,i.kt)("p",null,"The basic process is therefore:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Select the New Config tool from the Tools tab in the Unraid GUI"),(0,i.kt)("li",{parentName:"ul"},"Click the Check box that says you want to proceed to use this tool."),(0,i.kt)("li",{parentName:"ul"},"Set the level of assignments you initially want to keep. In most\ncases selecting the option to keep all assignments is the best\nchoice as it puts you in a state where you just need make any\ndesired changes from your current assignments.")),(0,i.kt)("p",null,"Press the ",(0,i.kt)("strong",{parentName:"p"},"Apply")," button to run the tool. After doing this there is no\nobvious feedback that anything has been done."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Return to the Main tab and change the drive assignments to how you\nnow want them to be set. This can involve adding new drives,\nremoving drives or changing the slots to which drives are assigned."),(0,i.kt)("li",{parentName:"ul"},"Make sure you have not accidentally assigned a drive containing data\nto a parity slot as if you do so when you start the array the\ncontents will be destroyed."),(0,i.kt)("li",{parentName:"ul"},"There is a checkbox next to the Start button to allow you to say\nthat parity is already valid. You should ",(0,i.kt)("strong",{parentName:"li"},"not")," check this box\nunless advised to do so by a knowledgeable Unraid user as in most\ncases making changes to the drive assignments will invalidate\nparity. There are special cases where using this option can be\nsensible after something has gone wrong with the array but only the\nmore experienced Unraid users will know what these are."),(0,i.kt)("li",{parentName:"ul"},"There is also a checkbox option to start the array in Maintenance\nmode. You probably only need this if you have been advised to use it\nas part of a non-standard data recovery action."),(0,i.kt)("li",{parentName:"ul"},"Press the Start button to commit the new drive assignments."),(0,i.kt)("li",{parentName:"ul"},"If you have encrypted file systems the array will not start at this\npoint, but instead change to allow you to enter your encryption\ndetails. Enter these and press Start again to start the array."),(0,i.kt)("li",{parentName:"ul"},"If you were starting in normal mode (i.e. not Maintenance mode) then\nthe drives will now be mounted."),(0,i.kt)("li",{parentName:"ul"},"Unraid will now start building new parity based on this current set\nof assignments.")),(0,i.kt)("h4",{id:"new-permissions"},"New Permissions"),(0,i.kt)("h4",{id:"archived-notifications"},"Archived Notifications"),(0,i.kt)("h4",{id:"processes"},"Processes"),(0,i.kt)("h4",{id:"system-devices"},"System Devices"),(0,i.kt)("h4",{id:"system-log"},"System Log"),(0,i.kt)("h3",{id:"webgui"},"webGUI"),(0,i.kt)("h4",{id:"language"},"Language"),(0,i.kt)("h4",{id:"page-map"},"Page Map"),(0,i.kt)("h4",{id:"vars"},"Vars"),(0,i.kt)("h3",{id:"about"},"About"),(0,i.kt)("h4",{id:"credits"},"Credits"),(0,i.kt)("h4",{id:"eula"},"EULA"),(0,i.kt)("h4",{id:"registration"},"Registration"),(0,i.kt)("h4",{id:"update-os"},"Update OS"),(0,i.kt)("h2",{id:"3rd-party-tools"},"3rd Party Tools"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"DISCLAMER"),": The tools listed here are not provided or supported by\nLimetech. There is always a risk that installing one of these tools can\ncause system instability (although it is unlikely for the more widely\nused ones)"),(0,i.kt)("p",null,"The Unraid community is very active and has contributed a wide variety\nof additional tools to add extra functionality to an Unraid server. The\nfollowing section covers some of the more commonly installed 3rd party\ntools. It is by no means an exhaustive list but will give an indication\nof the breadth of the tools available"),(0,i.kt)("p",null,"These 3rd party tools would normally be installed by using Community\nApplications (the Apps tab). Such tools will each have a support thread\nin the Plugins Support section of the Unraid GUI and users should use\nthis thread to raise queries, concerns, or suggestions for improvement."),(0,i.kt)("h3",{id:"unraid-os-1"},"Unraid OS"),(0,i.kt)("h4",{id:"config-file-editor"},"Config File Editor"),(0,i.kt)("p",null,"CA Config Editor is a simple file editor for advanced users that will\nallow you to edit within your browser any of the Unraid configuration\nfiles (or any file on your server - useful for easily editing\napplication's appdata config files without utilizing the command\nprompt)"),(0,i.kt)("h4",{id:"docker-safe-new-perms"},"Docker Safe New Perms"),(0,i.kt)("p",null,"This is part of the Fix Common Problems plugin."),(0,i.kt)("p",null,"It differs from the standard Unraid New Permissions tool in that it will\nnever change permissions on the appdata folder/share that is normally\nused to store working files for docker containers."),(0,i.kt)("h3",{id:"about-1"},"About"),(0,i.kt)("h4",{id:"update-assistant"},"Update Assistant"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/81b28c9f.ee6abbb4.js b/zh/assets/js/81b28c9f.ee6abbb4.js new file mode 100644 index 000000000..ea641f825 --- /dev/null +++ b/zh/assets/js/81b28c9f.ee6abbb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/zh/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/zh/unraid-os/faq/licensing-faq"},next:{title:"\u8d2d\u4e70\u5e76\u6536\u5230\u6fc0\u6d3b\u7801\u540e\u5982\u4f55\u5151\u6362\u60a8\u7684\u6fc0\u6d3b\u7801",permalink:"/zh/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/troubleshooting/#lost-root-password"},"Lost Root Password")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/81b28c9f.f94af7ec.js b/zh/assets/js/81b28c9f.f94af7ec.js deleted file mode 100644 index 03f3adae6..000000000 --- a/zh/assets/js/81b28c9f.f94af7ec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6617],{4137:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?r(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function s(e,t){if(null==e)return{};var o,a,n=function(e,t){if(null==e)return{};var o,a,n={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),d=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},h=function(e){var t=d(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=d(o),p=n,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||r;return o?a.createElement(m,i(i({ref:t},h),{},{components:o})):a.createElement(m,i({ref:t},h))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,i[1]=s;for(var d=2;d<r;d++)i[d]=o[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,o)}p.displayName="MDXCreateElement"},9582:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=o(7462),n=(o(7294),o(4137));const r={},i="OS",s={unversionedId:"unraid-os/faq/os-faq",id:"unraid-os/faq/os-faq",title:"OS",description:"I Need Help with a Build / System Configuration. Where do I go?",source:"@site/docs/unraid-os/faq/os-faq.md",sourceDirName:"unraid-os/faq",slug:"/unraid-os/faq/os-faq",permalink:"/zh/unraid-os/faq/os-faq",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Licensing",permalink:"/zh/unraid-os/faq/licensing-faq"},next:{title:"\u8d2d\u4e70\u5e76\u6536\u5230\u6fc0\u6d3b\u7801\u540e\u5982\u4f55\u5151\u6362\u60a8\u7684\u6fc0\u6d3b\u7801",permalink:"/zh/unraid-os/faq/redeem-license-activation-code"}},l={},d=[{value:"I Need Help with a Build / System Configuration. Where do I go?",id:"i-need-help-with-a-build--system-configuration-where-do-i-go",level:2},{value:"Does Unraid Support Hardware-based RAID Controllers?",id:"does-unraid-support-hardware-based-raid-controllers",level:2},{value:"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?",id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms",level:2},{value:"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?",id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration",level:2},{value:"What Should I do if I have Forgotten my Root Password?",id:"what-should-i-do-if-i-have-forgotten-my-root-password",level:2},{value:"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?",id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems",level:2},{value:"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?",id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do",level:2},{value:"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?",id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device",level:2},{value:"What's the best way to add more storage to a system above what the built-in controller supports?",id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports",level:2},{value:"Does Unraid support various RAID types such as RAID1/5/6/10?",id:"does-unraid-support-various-raid-types-such-as-raid15610",level:2},{value:"My system is crashing but my logs don't contain the event. What do I do to obtain support?",id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support",level:2},{value:"Is there any way to disable the br0 bridge?",id:"is-there-any-way-to-disable-the-br0-bridge",level:2},{value:"How do I enable UEFI boot mode if I configured my flash device using the manual method?",id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method",level:2},{value:"I'm having problems passing through my RTX-class GPU to a virtual machine",id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine",level:2},{value:"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?",id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them",level:2},{value:"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?",id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that",level:2}],h={toc:d},u="wrapper";function c(e){let{components:t,...o}=e;return(0,n.kt)(u,(0,a.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"os"},"OS"),(0,n.kt)("h2",{id:"i-need-help-with-a-build--system-configuration-where-do-i-go"},"I Need Help with a Build / System Configuration. Where do I go?"),(0,n.kt)("p",null,"For assistance with creating a special build for Unraid OS, we highly\nadvise users to check out our ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/35-unraid-compulsive-design/%7CUnraid"},"Compulsive Design\nforum"),"."),(0,n.kt)("p",null,"Our community is fantastic about helping folks create their ultimate\nUnraid system."),(0,n.kt)("h2",{id:"does-unraid-support-hardware-based-raid-controllers"},"Does Unraid Support Hardware-based RAID Controllers?"),(0,n.kt)("p",null,"While some users have been able to use RAID controllers to present\ndevices to Unraid OS for use, they definitely complicate things when it\ncomes to features and maintenance. Disk temperatures and even some SMART\nvalues may not come through correctly when presented through a hardware\nRAID controller."),(0,n.kt)("p",null,"Therefore, we only officially support the use of non-RAID controllers\nfor storage devices. Most RAID storage controllers offer a way to flash\nthe firmware to convert the card into a basic HBA for devices\n(eliminating the RAID entirely), but you'll have to search for your\nspecific controller to see if that is an option."),(0,n.kt)("h2",{id:"can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms"},"Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?"),(0,n.kt)("p",null,"If the HASP key is a USB dongle, then you can assign it to a single\nvirtual machine at a time. Two VMs cannot be running with concurrent\naccess to the same key."),(0,n.kt)("p",null,"In addition, depending on how the device works, you may need to assign\nan entire USB controller to the VM for which you want to use the key.\nYou'll need to test this with a Trial license of our software before\ncommitting to a purchase, because all USB devices can be a bit different\nin how they work within a VM."),(0,n.kt)("h2",{id:"my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration"},"My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?"),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," has support for Flash Backups to help resolve some of the pain points of a broken flash drive."),(0,n.kt)("p",null,"First, you'll need to get a new flash device. Remember to get a quality\ndevice from manufacturers such as Kingston, PNY, Lexar, or Samsung.\nSecond, you'll need to find the e-mail with your registration key for\nyour previous flash device."),(0,n.kt)("p",null,"Last, you'll need to install Unraid on the new flash device, boot it up\non your server, and then install the old registration key on the new\nflash (from the Tools ",">"," Registration page). From there you can request\nand then install a replacement key."),(0,n.kt)("p",null,"As far as your configuration goes, if you can remember your drive\nassignments (which disks were assigned to which slots), you should be\nable to simply re-assign them all and start the array."),(0,n.kt)("p",null,"You may need to reconfigure your shares, users, and other system\nsettings, but your data should be intact."),(0,n.kt)("p",null,"If you cannot remember your drive assignments, ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/55-general-support/"},"please post on the forum\nfor further assistance (under General\nSupport)"),"."),(0,n.kt)("h2",{id:"what-should-i-do-if-i-have-forgotten-my-root-password"},"What Should I do if I have Forgotten my Root Password?"),(0,n.kt)("p",null,"To reset your ",(0,n.kt)("a",{parentName:"p",href:"/unraid-os/manual/getting-started.md#connecting-to-the-unraid-webgui"},"root\npassword"),":"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Shutdown your server."),(0,n.kt)("li",{parentName:"ol"},"Plug your USB flash into a laptop or another computer."),(0,n.kt)("li",{parentName:"ol"},'Open the USB folder and delete the files "config/shadow" and\n"config/smbpasswd". ',(0,n.kt)("em",{parentName:"li"},'(DO NOT delete "config/passwd).')," This will\nreset all user passwords, including the root user to blank."),(0,n.kt)("li",{parentName:"ol"},"Now, safely eject your USB and reboot it on your Unraid server and\nyou\u2019re in. You can then set a new password in the Users tab of the\nUnraid webgui.")),(0,n.kt)("p",null,(0,n.kt)("em",{parentName:"p"},"Important: this process only works for user passwords. If you encrypt\nyour drives and forget this password, unfortunately you are hosed. There\nis no way for Lime Technology or anyone to recover this password. Please\nremember it or write it down in a secure, locked place!")),(0,n.kt)("h2",{id:"how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems"},"How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Ensure there is no data on the system that you want or need."),(0,n.kt)("li",{parentName:"ol"},"Stop the array and shut down the server."),(0,n.kt)("li",{parentName:"ol"},"Remove the USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Using a Windows or Mac computer, reformat the flash using the USB\nFlash Creator tool from our website."),(0,n.kt)("li",{parentName:"ol"},"Reinstall the flash in the server and boot it up."),(0,n.kt)("li",{parentName:"ol"},'Click on the "terminal" icon in the top right corner of the webGui.'),(0,n.kt)("li",{parentName:"ol"},"From the command line, type: lsblk"),(0,n.kt)("li",{parentName:"ol"},"Note all the devices present excluding your USB flash device."),(0,n.kt)("li",{parentName:"ol"},"Now for each device in the list (excluding the USB flash device),\ntype the following command: wipefs /dev/sdX (replacing X with the\nletter of the device from the previous steps). This will remove the\nfilesystem from the device so it can be reformatted by Unraid OS."),(0,n.kt)("li",{parentName:"ol"},"Now continue reconfiguring Unraid OS per the normal procedure.")),(0,n.kt)("h2",{id:"whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do"},"Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?"),(0,n.kt)("p",null,"This is due to issues with many AMD GPUs not supporting function-level\nresets. NVIDIA GPUs are recommended as they do not have this problem. A\nworkaround to this issue is to eject the GPU from the VM before shutting\nit down. You can do this from the bottom right corner in Windows where\nyou would also find any USB devices. Just eject the GPU, then use\nanother machine to shut down the VM from the Unraid webGui. Then when\nyou start it again, it shouldn't have any problems."),(0,n.kt)("h2",{id:"how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device"},"How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?"),(0,n.kt)("p",null,"This can be a challenge, but luckily SpaceInvaderOne ",(0,n.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/"},"has this covered\nin a video guide on our\nforums!")),(0,n.kt)("h2",{id:"whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports"},"What's the best way to add more storage to a system above what the built-in controller supports?"),(0,n.kt)("p",null,'Unraid can easily scale storage across multiple controllers in a system.\nThe controllers must act as standard HBAs and not actual "RAID"\ncontrollers. Most RAID controllers offer an option to either flash their\nfirmware or reconfigure the card into a mode to operate this way.'),(0,n.kt)("h2",{id:"does-unraid-support-various-raid-types-such-as-raid15610"},"Does Unraid support various RAID types such as RAID1/5/6/10?"),(0,n.kt)("p",null,"Unraid manages storage in two separate buckets: the array and the cache.\nThe array itself uses dedicated parity device(s) similar to a MAID."),(0,n.kt)("p",null,"The array cannot be configured into traditional RAID methods such as\nRAID 1/5/6/10."),(0,n.kt)("p",null,'The cache is created using btrfs. When more than one disk is present,\nthe cache is called a "pool" and is by default configured to use btrfs\nRAID1, which is a slightly different take than a traditional RAID1. The\ncache can optionally be configured to use btrfs RAID 5/6/10, but RAID\n5/6 on btrfs is still considered unstable, so it isn\'t recommended for\nproduction use.'),(0,n.kt)("h2",{id:"my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support"},"My system is crashing but my logs don't contain the event. What do I do to obtain support?"),(0,n.kt)("p",null,"Sometimes a hard system crash can prevent you from obtaining vital\ninformation in the logs that would help better diagnose the issue. In\nthe event you can't obtain the logs with a remote connection, you'll\nhave to resort to a local one. Attach at least a monitor and keyboard to\nthe server and boot it up into non-GUI mode. Once presented with the\nlogin prompt, login as the user 'root' and whatever password you set\nwhen you set up the server (if no password was set, leave it blank and\npress enter again). From the command line now, type the following\ncommand:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"tail /var/log/syslog -f\n")),(0,n.kt)("p",null,"This will begin printing the system log to the monitor directly. Now go\nabout using the server as you normally would. When the crash occurs,\ntake a picture of what's visible on the monitor and post it in the\nsupport forums. This will hopefully give us some further insight on the\nissue."),(0,n.kt)("h2",{id:"is-there-any-way-to-disable-the-br0-bridge"},"Is there any way to disable the br0 bridge?"),(0,n.kt)("p",null,"Absolutely! Simply navigate to the Tools ",">"," Network Settings page to\ndisable network bridging. Note that this will result in differences in\nbehavior for virtual machines (including losing the ability to\ncommunicate with the host from a guest)."),(0,n.kt)("h2",{id:"how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method"},"How do I enable UEFI boot mode if I configured my flash device using the manual method?"),(0,n.kt)("p",null,"Simply remove the dash symbol from the EFI folder on the root of the\nflash drive and then make sure your motherboard BIOS is configured to\nboot UEFI."),(0,n.kt)("h2",{id:"im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine"},"I'm having problems passing through my RTX-class GPU to a virtual machine"),(0,n.kt)("p",null,"Posting in the forums for assistance is always recommended when\ntroubleshooting a VM / pass through problem, but there is something\nworth noting about these newer devices that is unique compared to\nprevious series cards. These GPUs feature a USB controller built into\nthe GPU. This is quite fortunate as it can be used with a USB hub to\nthen act as a device your Windows VM can interact with more naturally\n(such as supporting hot plugging USB devices). However, it is\nrecommended that you stub this device to ensure it's driver isn't loaded\nwith Unraid OS. To stub the device, perform the following steps:"),(0,n.kt)("p",null,"1","."," Locate your IOMMU group containing your GPU and its other devices on\nthe Tools ",">"," System Devices page."),(0,n.kt)("p",null,"2","."," Notate the vendor and product IDs indicated in the brackets.\nExample:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"[10de:1f08] 02:00.0 VGA compatible controller: NVIDIA Corporation\nDevice 1f08 (rev a1)\n\n[10de:10f9] 02:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev\na1)\n\n**[10de:1ada]** 02.00.2 USB controller: NVIDIA Corporation Device 1ada\n(rev a1)\n\n**[10de:1adb]** 03:00.3 Serial bus controller [0c80]: NVIDIA\nCorporation Device 1adb (rev a1)\n")),(0,n.kt)("p",null,"3","."," Navigate to the flash device settings page (on the Main tab)."),(0,n.kt)("p",null,"4","."," Click on the flash device."),(0,n.kt)("p",null,"5","."," Edit the Syslinux configuration by adding the following to the\nappend line on the boot mode selected:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"vfio-pci.ids=[####:####],[####:####]\n")),(0,n.kt)("p",null,"Example:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-shell"},"append vfio-pci.ids=10de:1ada,10de:1adb initrd=/bzroot,/bzroot-gui\n")),(0,n.kt)("p",null,"6","."," Apply the change and reboot your server."),(0,n.kt)("p",null,"7","."," Edit or create your VM and you will now see these additional PCI\ndevices available to assign to your VM without manually editing your\nXML."),(0,n.kt)("h2",{id:"does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them"},"Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?"),(0,n.kt)("p",null,"Hard drives and SSDs use SMART data to keep track of bad sectors and\nprevent writes. This is native functionality of the underlying hardware.\nThat said, if a device is showing a large amount of bad sectors /\nreallocated sectors, replacing it soon may be a good idea. If you're not\nsure, try posting in our General Support forum including the SMART data\nfor the drive in question and our community can help determine what to\ndo."),(0,n.kt)("h2",{id:"i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that"},"I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?"),(0,n.kt)("p",null,"Any device 2TB or smaller uses MBR-style partition table."),(0,n.kt)("p",null,"Any device larger then 2TB uses GPT-style partition table."),(0,n.kt)("p",null,"For Unraid OS version 6.8.x and earlier:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0any\xa0storage\xa0device\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,"Starting with Unraid OS 6.9:"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0rotational\xa0devices\xa0is\xa032KiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT).")),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"Default\xa0starting\xa0position\xa0of\xa0partition\xa01\xa0for\xa0non-rotational\xa0devices\xa0is\xa01MiB\xa0from\xa0start\xa0of\xa0device\xa0(regardless\xa0of\xa0whether\xa0MBR\xa0or\xa0GPT)")),(0,n.kt)("p",null,"Presuming user has valid parity and he wants to preserve data:"),(0,n.kt)("p",null,"Must first swap out and rebuild Parity. Swap out each data device and\nrebuild one-by-one."),(0,n.kt)("p",null,"For this kind of upgrade, we recommend starting in \u201cMaintenance mode\u201d\neach time to perform the swap and rebuilds. This will ensure the devices\nare not written during the process. At the end of the process, the\noriginal storage device should be intact."),(0,n.kt)("p",null,"Also highly recommend downloading flash backup: Main/Flash/Flash Backup"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/8944547a.f5271396.js b/zh/assets/js/8944547a.f5271396.js new file mode 100644 index 000000000..436cc4c80 --- /dev/null +++ b/zh/assets/js/8944547a.f5271396.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5450],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,i=function(e,t){if(null==e)return{};var a,r,i={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=r.createContext({}),h=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=h(a),p=i,m=u["".concat(l,".").concat(p)]||u[p]||c[p]||n;return a?r.createElement(m,o(o({ref:t},d),{},{components:a})):r.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:i,o[1]=s;for(var h=2;h<n;h++)o[h]=a[h];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3135:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>I,contentTitle:()=>M,default:()=>E,frontMatter:()=>x,metadata:()=>U,toc:()=>O});var r=a(7462),i=a(7294),n=a(4137),o=a(4334),s=a(2957),l=a(6550),h=a(5238),d=a(3609),u=a(2560);function c(e){return function(e){return i.Children.map(e,(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:i}}=e;return{value:t,label:a,attributes:r,default:i}}))}function p(e){const{values:t,children:a}=e;return(0,i.useMemo)((()=>{const e=t??c(a);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const r=(0,l.k6)(),n=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,h._X)(n),(0,i.useCallback)((e=>{if(!n)return;const t=new URLSearchParams(r.location.search);t.set(n,e),r.replace({...r.location,search:t.toString()})}),[n,r])]}function y(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,n=p(e),[o,s]=(0,i.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:n}))),[l,h]=f({queryString:a,groupId:r}),[d,c]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,n]=(0,u.Nk)(a);return[r,(0,i.useCallback)((e=>{a&&n.set(e)}),[a,n])]}({groupId:r}),y=(()=>{const e=l??d;return m({value:e,tabValues:n})?e:null})();(0,i.useLayoutEffect)((()=>{y&&s(y)}),[y]);return{selectedValue:o,selectValue:(0,i.useCallback)((e=>{if(!m({value:e,tabValues:n}))throw new Error(`Can't select invalid tab value=${e}`);s(e),h(e),c(e)}),[h,c,n]),tabValues:n}}var k=a(1048);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:a,selectedValue:n,selectValue:l,tabValues:h}=e;const d=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),c=e=>{const t=e.currentTarget,a=d.indexOf(t),r=h[a].value;r!==n&&(u(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return i.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},h.map((e=>{let{value:t,label:a,attributes:s}=e;return i.createElement("li",(0,r.Z)({role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,key:t,ref:e=>d.push(e),onKeyDown:p,onClick:c},s,{className:(0,o.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":n===t})}),a??t)})))}function w(e){let{lazy:t,children:a,selectedValue:r}=e;const n=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=n.find((e=>e.props.value===r));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return i.createElement("div",{className:"margin-top--md"},n.map(((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function b(e){const t=y(e);return i.createElement("div",{className:(0,o.Z)("tabs-container",v.tabList)},i.createElement(g,(0,r.Z)({},e,t)),i.createElement(w,(0,r.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return i.createElement(b,(0,r.Z)({key:String(t)},e))}const T={tabItem:"tabItem_Ymn6"};function S(e){let{children:t,hidden:a,className:r}=e;return i.createElement("div",{role:"tabpanel",className:(0,o.Z)(T.tabItem,r),hidden:a},t)}const x={sidebar_position:0},M="User shares",U={unversionedId:"unraid-os/manual/shares/user-shares",id:"unraid-os/manual/shares/user-shares",title:"User shares",description:"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.",source:"@site/docs/unraid-os/manual/shares/user-shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/user-shares",permalink:"/zh/unraid-os/manual/shares/user-shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/user-shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Shares",permalink:"/zh/unraid-os/manual/shares/"},next:{title:"Disk shares",permalink:"/zh/unraid-os/manual/shares/disk-shares"}},I={},O=[{value:"Overview",id:"overview",level:2},{value:"Share settings",id:"share-settings",level:2},{value:"Minimum free space",id:"minimum-free-space",level:3},{value:"Primary and Secondary storage (Unraid 6.12)",id:"primary-and-secondary-storage-unraid-612",level:3},{value:"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)",id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier",level:3},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:3},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:3},{value:"Allocation method",id:"allocation-method",level:3},{value:"High-water method",id:"high-water-method",level:4},{value:"Fill-up method",id:"fill-up-method",level:4},{value:"Most-free method",id:"most-free-method",level:4},{value:"Split level",id:"split-level",level:3},{value:"Automatically split any directory as required",id:"automatically-split-any-directory-as-required",level:4},{value:"Automatically split only the top level directory as required",id:"automatically-split-only-the-top-level-directory-as-required",level:4},{value:"Automatically split only the top "N" level directories as required",id:"automatically-split-only-the-top-n-level-directories-as-required",level:4},{value:"Manual - do not automatically split directories",id:"manual---do-not-automatically-split-directories",level:4},{value:"Included or excluded disks",id:"included-or-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3}],C={toc:O},A="wrapper";function E(e){let{components:t,...a}=e;return(0,n.kt)(A,(0,r.Z)({},C,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"user-shares"},"User shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Enable or disable user shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),". User shares are enabled by default.")),(0,n.kt)("h2",{id:"overview"},"Overview"),(0,n.kt)("p",null,"User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view."),(0,n.kt)("p",null,"You manage ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes."),(0,n.kt)("p",null,"When viewed at the Linux level, user shares appear under the path ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user"),". This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/shares/disk-shares"},"Disk Shares"),"."),(0,n.kt)("p",null,"Note that current releases of Unraid also include the mount point ",(0,n.kt)("inlineCode",{parentName:"p"},"/mnt/user0")," that shows the files in ",(0,n.kt)("strong",{parentName:"p"},"User Shares")," omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release."),(0,n.kt)("p",null,"The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method"),", ",(0,n.kt)("a",{parentName:"p",href:"#included-or-excluded-disks"},"included or excluded disks"),", and the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),"."),(0,n.kt)("p",null,"If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation."),(0,n.kt)("p",{parentName:"admonition"},"This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.")),(0,n.kt)("h2",{id:"share-settings"},"Share settings"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"When you configure the settings for the share, select the ",(0,n.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the Unraid webGUI for detailed information on the individual settings.")),(0,n.kt)("h3",{id:"minimum-free-space"},"Minimum free space"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting is used with the ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"allocation method")," and ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level"),". This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk)."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.")),(0,n.kt)("p",null,"When Unraid receives a request to store a file, say for example ",(0,n.kt)("inlineCode",{parentName:"p"},"file.eg"),", it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer."),(0,n.kt)("p",null,"We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large."),(0,n.kt)("p",null,"The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter ",(0,n.kt)("em",{parentName:"p"},"50GB"),". Note that new user shares will have a default 10% minimum free space assignment."),(0,n.kt)("p",null,"Unraid will still place files on the disk if the ",(0,n.kt)("a",{parentName:"p",href:"#split-level"},"split level")," does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error."),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"There is also a ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for cache pools. This is used to determine if a new file for a user share, with the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache")," setting of ",(0,n.kt)("em",{parentName:"p"},"Yes")," or ",(0,n.kt)("em",{parentName:"p"},"Prefer"),", should be written to the\ncache or, instead, bypass the cache and go directly to the array."),(0,n.kt)("p",{parentName:"admonition"},"This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.")),(0,n.kt)("h3",{id:"primary-and-secondary-storage-unraid-612"},"Primary and Secondary storage (Unraid 6.12)"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," parameter defines the location - ",(0,n.kt)("em",{parentName:"p"},"Cache"),", ",(0,n.kt)("em",{parentName:"p"},"Array"),", or any named pool - to which new files will be written for the selected share. The ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," parameter sets the location where files will be moved to if there is not enough room in primary storage."),(0,n.kt)("p",null,"When primary storage is below the ",(0,n.kt)("a",{parentName:"p",href:"#minimum-free-space"},"Minimum Free Space")," value, new files and folders are created in secondary storage."),(0,n.kt)("admonition",{type:"note"},(0,n.kt)("p",{parentName:"admonition"},"If you select an ",(0,n.kt)("em",{parentName:"p"},"array")," or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.")),(0,n.kt)("p",null,"Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users."),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of ",(0,n.kt)("em",{parentName:"li"},"Cache"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"any named pool can be selected."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"Array")," can be selected.")))),(0,n.kt)("p",null,"For the ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," drop-down:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("em",{parentName:"li"},"None"),": This means that there is no secondary storage set for this share. Note that secondary storage is optional.",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"if Primary storage is a pool name, then the only options are ",(0,n.kt)("em",{parentName:"li"},"None")," and ",(0,n.kt)("em",{parentName:"li"},"Array"),"."),(0,n.kt)("li",{parentName:"ul"},"if Primary storage is ",(0,n.kt)("em",{parentName:"li"},"Array"),", then only ",(0,n.kt)("em",{parentName:"li"},"None")," appears as an option.")))),(0,n.kt)("h3",{id:"use-cache-and-mover-behavior-with-user-shares-unraid-611-and-earlier"},"Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)"),(0,n.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently."),(0,n.kt)("admonition",{title:"INFO",type:"note"},(0,n.kt)("p",{parentName:"admonition"},"Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.")),(0,n.kt)("p",null,"Unraid includes an application called ",(0,n.kt)("strong",{parentName:"p"},"Mover")," that is used in conjunction with user shares. It's behavior is controlled by the ",(0,n.kt)("strong",{parentName:"p"},"Use Cache for new files")," setting under each user share. The way these settings operate is as follows:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value. If the free space is below that then bypass the cache and write the files directly to the main array."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation Method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive will get the file is controlled by the combination of the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),", ",(0,n.kt)("strong",{parentName:"p"},"Split level"),", and ",(0,n.kt)("strong",{parentName:"p"},"Minimum Free Space")," setting for the share."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space on the cache is below the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the cache then the write will fail with an out-of-space error."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the cache is above the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," setting for the share, and if the free space falls below that value then write the files to the main array instead."),(0,n.kt)("p",{parentName:"li"},"When ",(0,n.kt)("strong",{parentName:"p"},"Mover")," runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the ",(0,n.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache"),(0,n.kt)("p",{parentName:"li"},"It is the default setting for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," and ",(0,n.kt)("inlineCode",{parentName:"p"},"system")," shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations."),(0,n.kt)("p",{parentName:"li"},"This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, ",(0,n.kt)("strong",{parentName:"p"},"Mover")," will automatically try and move the files in any share set to ",(0,n.kt)("em",{parentName:"p"},"Prefer")," to the pool defined as the cache for the share. This is why ",(0,n.kt)("em",{parentName:"p"},"Prefer")," is the default for shares that are located on the cache rather than ",(0,n.kt)("em",{parentName:"p"},"Only")," as it caters to those who do not (yet) have a cache drive."))),(0,n.kt)("h3",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,n.kt)("p",null,"This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage."),(0,n.kt)("p",null,"Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Cache -> Array"),"."),(0,n.kt)("li",null,"Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the Use Cache setting for the share to ",(0,n.kt)("i",null,"Yes"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the pool (cache) to the array."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"Only")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,n.kt)("p",null,"You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the ",(0,n.kt)("inlineCode",{parentName:"p"},"appdata")," or default system shares."),(0,n.kt)("p",null,"The way to proceed to get the files belonging to a share from the main array onto a pool is:"),(0,n.kt)(N,{mdxType:"Tabs"},(0,n.kt)(S,{value:"6.12",label:"Unraid 6.12",default:!0,mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Make sure that ",(0,n.kt)("b",null,"Primary Storage")," is set to ",(0,n.kt)("i",null,"Cache")," and ",(0,n.kt)("b",null,"Secondary Storage")," is set to ",(0,n.kt)("i",null,"Array"),", for any shares you want to move files from."),(0,n.kt)("li",null,"Set the ",(0,n.kt)("b",null,"Mover action")," field to ",(0,n.kt)("i",null,"Array -> Cache"),"."),(0,n.kt)("li",null,"Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."))),(0,n.kt)(S,{value:"6.11",label:"Unraid 6.11 or below",mdxType:"TabItem"},(0,n.kt)("ol",null,(0,n.kt)("li",null,"Disable any Docker and VM services if they are enabled (as files open in these services cannot be moved)."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting for the share to ",(0,n.kt)("i",null,"Prefer"),"."),(0,n.kt)("li",null,"Go to ",(0,n.kt)("b",null,(0,n.kt)("i",null,"Main > Array Operation")),", and select ",(0,n.kt)("b",null,"Move")," to manually move files from the array to the pool (cache)."),(0,n.kt)("li",null,"When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier."),(0,n.kt)("li",null,"Change the ",(0,n.kt)("b",null,"Use Cache")," setting to ",(0,n.kt)("i",null,"No")," to say files for this share can never be written to the array.")))),(0,n.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,n.kt)("p",null,"When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user\nshare, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation."),(0,n.kt)("p",null,"The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: ",(0,n.kt)("strong",{parentName:"p"},"High-water"),", ",(0,n.kt)("strong",{parentName:"p"},"Most-free"),", or ",(0,n.kt)("strong",{parentName:"p"},"Fill-up"),"."),(0,n.kt)("h4",{id:"high-water-method"},"High-water method"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"High-water")," setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level."),(0,n.kt)("admonition",{title:"Example",type:"important"},(0,n.kt)("p",{parentName:"admonition"},"If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass."),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left."),(0,n.kt)("li",{parentName:"ul"},"When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space"),(0,n.kt)("li",{parentName:"ul"},"Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.")),(0,n.kt)("p",{parentName:"admonition"},"This pattern continues with progressively smaller high-water levels until the disks are full.")),(0,n.kt)("h4",{id:"fill-up-method"},"Fill-up method"),(0,n.kt)("p",null,"The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full."),(0,n.kt)("h4",{id:"most-free-method"},"Most-free method"),(0,n.kt)("p",null,"The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the\nmost free space."),(0,n.kt)("h3",{id:"split-level"},"Split level"),(0,n.kt)("p",null,"The ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the number 1."),(0,n.kt)("h4",{id:"automatically-split-any-directory-as-required"},"Automatically split any directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured ",(0,n.kt)("a",{parentName:"p",href:"#allocation-method"},"Allocation method"),". If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-level-directory-as-required"},"Automatically split only the top level directory as required"),(0,n.kt)("p",null,"When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory."),(0,n.kt)("h4",{id:"automatically-split-only-the-top-n-level-directories-as-required"},'Automatically split only the top "N" level directories as required'),(0,n.kt)("p",null,'Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.'),(0,n.kt)("h4",{id:"manual---do-not-automatically-split-directories"},"Manual - do not automatically split directories"),(0,n.kt)("p",null,"When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"In the event of there being conflicts between the ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,n.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method")," settings in deciding which would be an appropriate drive to use, the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.")),(0,n.kt)("h3",{id:"included-or-excluded-disks"},"Included or excluded disks"),(0,n.kt)("p",null,"These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share settings"))," are allowed."),(0,n.kt)("p",null,"Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file."),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.")),(0,n.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,n.kt)("p",null,'The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.'),(0,n.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,n.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,n.kt)("h3",{id:"default-shares"},"Default Shares"),(0,n.kt)("p",null,"If ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/docker-management"},"Docker")," or ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/vm-support"},"VMs")," are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems."),(0,n.kt)("p",null,"The shares that fall into this category are:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"appdata")," - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"system")," - This is the default location for storing the docker application binaries, and VM XML templates"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"domains")," - This is the default location for storing virtual disk images (vdisks) that are used by VMs."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"isos")," - This is the default location for storing CD ISO images for use with VMs.")),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the ",(0,n.kt)("inlineCode",{parentName:"p"},"isos")," share that can be shared over the network so you can place new ISOs to use in virtual machines.")))}E.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/8a89048a.8241feff.js b/zh/assets/js/8a89048a.8241feff.js new file mode 100644 index 000000000..90f11a0bb --- /dev/null +++ b/zh/assets/js/8a89048a.8241feff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1770],{4137:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>d});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),p=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=p(a),u=n,d=m["".concat(l,".").concat(u)]||m[u]||h[u]||o;return a?r.createElement(d,i(i({ref:t},c),{},{components:a})):r.createElement(d,i({ref:t},c))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:n,i[1]=s;for(var p=2;p<o;p++)i[p]=a[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8829:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:5},i="Create a new share",s={unversionedId:"unraid-os/manual/shares/create-a-share",id:"unraid-os/manual/shares/create-a-share",title:"Create a new share",description:"When you create a new share, plan ahead.",source:"@site/docs/unraid-os/manual/shares/create-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/create-a-share",permalink:"/zh/unraid-os/manual/shares/create-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/create-a-share.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"unraidSidebar",previous:{title:"Network access",permalink:"/zh/unraid-os/manual/shares/network-access"},next:{title:"Delete a share",permalink:"/zh/unraid-os/manual/shares/delete-a-share"}},l={},p=[],c={toc:p},m="wrapper";function h(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"create-a-new-share"},"Create a new share"),(0,n.kt)("p",null,"When you create a new share, plan ahead."),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"On the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab select ",(0,n.kt)("strong",{parentName:"p"},"Add Share"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Enter a name for your share in ",(0,n.kt)("strong",{parentName:"p"},"Share name")),(0,n.kt)("admonition",{parentName:"li",title:"Share names",type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so ",(0,n.kt)("inlineCode",{parentName:"p"},"media"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"Media"),", and ",(0,n.kt)("inlineCode",{parentName:"p"},"MEDIA")," would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be."))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," Enter a description for the share in the ",(0,n.kt)("strong",{parentName:"p"},"Comments")," field. This is visible when viewed over the network.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Set a ",(0,n.kt)("strong",{parentName:"p"},"Minimum free space")," value, in kilobytes, if you plan to use the setting, otherwise leave it empty.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Primary storage")," for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Allocation method"),": high-water, fill-up, or most-free, depending on your use case. You can read about the differences ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/shares/user-shares#allocation-method"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select the ",(0,n.kt)("strong",{parentName:"p"},"Split level")," method for your data. You can find more information split level, ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/shares/user-shares#split-level"},"here"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," choose which disks will be available to the share. By default, all disks will be included.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"In ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks")," choose which disks will not be available to the share. Note that if you configure ",(0,n.kt)("strong",{parentName:"p"},"Included disks")," there is no need to configure ",(0,n.kt)("strong",{parentName:"p"},"Excluded disks"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select a ",(0,n.kt)("strong",{parentName:"p"},"Secondary storage")," if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to ",(0,n.kt)("em",{parentName:"p"},"None"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("em",{parentName:"p"},"(Optional)")," If you configure a primary and secondary storage, then ",(0,n.kt)("strong",{parentName:"p"},"Mover action")," option becomes active. This sets the direction of file transfers between Primary and Secondary storage.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},"Select ",(0,n.kt)("strong",{parentName:"p"},"Add share")," to complete the creation."))),(0,n.kt)("admonition",{type:"important"},(0,n.kt)("p",{parentName:"admonition"},"Note that, by default, a new share will not be shared over the network. You must configure ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/shares/network-access"},"network access")," after the share is created.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/90126b70.0b49abed.js b/zh/assets/js/90126b70.0b49abed.js deleted file mode 100644 index 275909d40..000000000 --- a/zh/assets/js/90126b70.0b49abed.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[79],{4137:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function r(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),h=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=h(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,d=r(e,["components","mdxType","originalType","parentName"]),p=h(a),u=i,m=p["".concat(l,".").concat(u)]||p[u]||c[u]||s;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=a.length,o=new Array(s);o[0]=u;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,o[1]=r;for(var h=2;h<s;h++)o[h]=a[h];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},8693:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>h});var n=a(7462),i=(a(7294),a(4137));const s={sidebar_position:4},o="Shares",r={unversionedId:"unraid-os/manual/shares",id:"unraid-os/manual/shares",title:"Shares",description:"Once you have assigned some devices to Unraid and started the array, you",source:"@site/docs/unraid-os/manual/shares.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/shares",permalink:"/zh/unraid-os/manual/shares",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Storage Management",permalink:"/zh/unraid-os/manual/storage-management"},next:{title:"Docker Management",permalink:"/zh/unraid-os/manual/docker-management"}},l={},h=[{value:"User Shares",id:"user-shares",level:2},{value:"Allocation method",id:"allocation-method",level:3},{value:"High Water",id:"high-water",level:4},{value:"Most Free",id:"most-free",level:4},{value:"Fill-Up",id:"fill-up",level:4},{value:"Min. Free Space",id:"min-free-space",level:3},{value:"Split level",id:"split-level",level:3},{value:"Disable Split Level",id:"disable-split-level",level:4},{value:"Split Level = 1 Example",id:"split-level--1-example",level:4},{value:"Split Level 0",id:"split-level-0",level:5},{value:"Example",id:"example",level:6},{value:"Split By Character",id:"split-by-character",level:5},{value:"Included and Excluded disk(s)",id:"included-and-excluded-disks",level:3},{value:"Included disk(s)",id:"included-disks",level:4},{value:"Excluded disk(s)",id:"excluded-disks",level:4},{value:"Default Shares",id:"default-shares",level:3},{value:"Unraid 6.12",id:"unraid-612",level:3},{value:"Primary Storage",id:"primary-storage",level:4},{value:"Secondary Storage",id:"secondary-storage",level:4},{value:"Unraid 6.11 and earlier",id:"unraid-611-and-earlier",level:3},{value:"Use Cache (and Mover Behavior with User Shares)",id:"use-cache-and-mover-behavior-with-user-shares",level:4},{value:"Moving Files from a Pool (cache) to the Array",id:"moving-files-from-a-pool-cache-to-the-array",level:5},{value:"Moving Files from the Array to a Pool (cache)",id:"moving-files-from-the-array-to-a-pool-cache",level:5},{value:"Disk Shares",id:"disk-shares",level:2},{value:"Network access",id:"network-access",level:2},{value:"Access Permissions",id:"access-permissions",level:2},{value:"Windows 'Gotcha'",id:"windows-gotcha",level:3}],d={toc:h},p="wrapper";function c(e){let{components:t,...s}=e;return(0,i.kt)(p,(0,n.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"shares"},"Shares"),(0,i.kt)("p",null,"Once you have assigned some devices to Unraid and started the array, you\ncan create ",(0,i.kt)("em",{parentName:"p"},"shares")," to simplify how you store data across multiple disks\nin the array. Unraid will automatically create a handful of shares for\nyou that it needs to support common plugins, containers, and virtual\nmachines, but you can also create your own shares for storing other\ntypes of data. Unraid supports 2 types of share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"User Shares"),(0,i.kt)("li",{parentName:"ul"},"Disk Shares")),(0,i.kt)("p",null,"You can control which of these types of shares are to be used under\nSettings-",">","Global Share Settings. The default on Unraid is to have User\nShares enabled but Disk Shares disabled."),(0,i.kt)("p",null,"It is sometimes important to realize that these are two different views\nof the ",(0,i.kt)("strong",{parentName:"p"},"same")," underlying file system. Every file/folder that appears\nunder a User Share will also appear under the Disk Share for the\nphysical drive that is storing the file/folder."),(0,i.kt)("h2",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"User Shares can be enabled/disabled via Settings-",">","Global Share\nSettings."),(0,i.kt)("p",null,"From the ",(0,i.kt)("strong",{parentName:"p"},"Shares")," tab, you can either ",(0,i.kt)("em",{parentName:"p"},"create")," a new share or ",(0,i.kt)("em",{parentName:"p"},"edit"),"\nan existing share. Click the ",(0,i.kt)("strong",{parentName:"p"},"Help")," icon in the top-right of the\nUnraid webGui when configuring shares for more information on the\nsettings available._"),(0,i.kt)("p",null,"User Shares are implemented by using Linux Fuse file system support.\nWhat they do is provide an aggregated view of all top level folders of\nthe same name across the cache and the array drives. The name of this\ntop level folder is used as the share name. From a user perspective this\ngives a view that can span multiple drives when viewed at the network\nlevel. Note that no individual file will span multiple drives - it is\njust the directory level that is given a unified view."),(0,i.kt)("p",null,"When viewed at the Linux level then User Shares will appear under the\npath ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user")),". This includes the files on the main array and also\nany for the share on any pool. It is important to note that a User Share\nis just a logical view imposed on top of the underlying physical file\nsystem so you can see the same files if you look at the physical level\n(as described below for Disk Shares)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Current releases of Unraid also include the mount point\n",(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("em",{parentName:"strong"},"/mnt/user0"))," that shows the files in User Shares OMITTING any\nfiles for a share that are on any pool. This is just a different\nview of the files on your server. ",(0,i.kt)("em",{parentName:"li"},"However This mount point is now\ndeprecated and may stop being available in a future Unraid release."))),(0,i.kt)("p",null,"Normally one creates User Shares using the Shares tab. However if you\nmanually create a top level folder on any drive the system will\nautomatically consider this to be a user Share and give it default\nsettings."),(0,i.kt)("p",null,"Which physical drive in the main array is used to store a physical file\nis controlled by a number of settings for the share:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Allocation method"),": This has various options:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Most Free"),": This option means that new files should go to the\ndisk with the most free space. It has the downside that one is\ncontinually switching drives which keeps the drive involved spun\nup.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Fill Up"),": This option means simply fill up drives in disk\norder until the free space falls below the Minimum Free Space\nsetting, and when that happens move onto the next disk. Many\nusers like this setting because their content is static in\nnature to they find this a simple way to manage their storage.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"High Water"),": (default) This option attempts to provide a\ncompromise between continually switching drives as is caused by\nthe ",(0,i.kt)("strong",{parentName:"p"},"Most Free")," setting and filling up disks in a sensible\nmanner, but not fill each drive to capacity before using the\nnext one. The aim is to allow related files do be kept together\non the same drive and to let unused drives be spun down."),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"It works with switch points based by continually halving the\nsize of the largest drive in the array."),(0,i.kt)("li",{parentName:"ul"},"Many people find this confusing (particularly in an array with\ndrives of varying size). so as an example if you had an array\nconsisting of drives of 8TB, 3Tb and 2TB",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The largest drive is 8TB so the switch points are 4TB, 2TB,\n1Tb etc."),(0,i.kt)("li",{parentName:"ul"},"The 4TB switch point is active so The 8TB Drive one would be\nfilled to 4TB free space left."),(0,i.kt)("li",{parentName:"ul"},"The 2TB switch point becomes active so the 8TB and 3TB\ndrives each gets used in disk order until it they have 2TB\nfree space"),(0,i.kt)("li",{parentName:"ul"},"The 1TB switch point becomes active so each drive now gets\nused in disk order until it only has 1TB free space."),(0,i.kt)("li",{parentName:"ul"},"etc"))))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Included")," or ",(0,i.kt)("strong",{parentName:"p"},"excluded")," drives: These settings allow you to\ncontrol which array drives can hold files for the share. Never set\nboth values, set only the one that is most convenient for you. If no\ndrives are specified under these settings then all drives allowed\nunder ",(0,i.kt)("em",{parentName:"p"},"Settings ",">",">"," Global Share settings")," are allowed.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Split level"),": This setting controls how files should be grouped."))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": in the event of there being contentions between the\n",(0,i.kt)("strong",{parentName:"p"},"Minimum free space"),", ",(0,i.kt)("strong",{parentName:"p"},"Split Level")," and the ",(0,i.kt)("strong",{parentName:"p"},"Allocation\nmethod")," settings in deciding which would be an appropriate drive to\nuse the ",(0,i.kt)("strong",{parentName:"p"},"Split level")," setting always wins. This means that you can\nget an out-of-space error even though there is plenty of space on\nother array drives that the share can logically use."),(0,i.kt)("p",null,"Changing any of these settings for a share only affects where any new\nfiles are put. Any files already present in the share are left where\nthey are located when a setting is changed. It takes Manual action to\nmove existing files."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Important"),": The Linux file systems used by Unraid are case sensitive\nwhile the SMB share system is not. As an example this means that a\nfolder at the Linux level a folder called 'media' is different to one\ncalled 'Media'. However at the network level case is ignored so for\nexample 'media', Media', 'MEDIA' would all be the same share.\nHowever to take this example further you would only get the content of\none of the underlying 'media' or 'Media' folders to appear at the\nnetwork share level - and it can be non-obvious which one this would be."),(0,i.kt)("p",null,"The following sections proved more detail on how these settings work:"),(0,i.kt)("h3",{id:"allocation-method"},"Allocation method"),(0,i.kt)("p",null,"When a new User share is created, or when any object (file or directory)\nis created within a User share, the system must determine which data\ndisk the User share or object will be created on. In general, a new User\nshare, or object within a User share, will be created on the data disk\nwith the most free space. However there are a set of share configuration\nparameters available to fine tune disk allocation."),(0,i.kt)("p",null,"The basic allocation strategy for a share is defined by the Allocation\nmethod configuration parameter. You may select one of three allocation\nmethods for the system to use."),(0,i.kt)("h4",{id:"high-water"},"High Water"),(0,i.kt)("p",null,"The high water allocation method attempts to step fill each disk so at\nthe end of each step there is an equal free space left on each disk. The\nidea is to progressively fill each disk but not constantly go back and\nforth between disks each time new data is written to the array. Most\ntimes, only a single disk will be needed when writing a series of files\nto the array so the array will only spin-up the needed disk. The high\nwater level is initially set equal to one-half of the size of the\nlargest disk. A new high water level is again set to one-half of the\nprevious high level once all the disks have less free space than the\ncurrent high water level."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8272).Z,width:"836",height:"505"})),(0,i.kt)("p",null,"The above example shows what will occur when there is a mix of 4 disks\nvarying is size from 500gig to 2T in size."),(0,i.kt)("p",null,"First Pass - The high water level is set to one-half of the size of the\n2T drive or 1T. Each disk will be filled until it has <1T of free space\nremaining. This means no data is stored on disk1 or disk2 since both\nalready have <1T of free space. 500gig of data will be stored on disk3\nfollowed by 1T of data being stored on disk4."),(0,i.kt)("p",null,"Second Pass - The high water level is reset to one-half of the previous\nlevel or 500gig. Each disk will be filled until it has <500gig of free\nspace remaining. This means no data is stored on disk1 since it already\nhas <500gig of free space. 500gig of data will be stored on disk2 and\nthen 500gig of data will be stored on disk3 and finally 500gig of data\nwill be stored on disk4."),(0,i.kt)("p",null,"Third Pass - The high water level is again reset to one-half of the\nprevious level or 250gig. Each disk will be filled until it has <250gig\nof free space remaining. 250gig of data will be stored on disk1 and then\n250gig of data will be stored on disk2 and then 250gig of data will be\nstored on disk3 and finally 250gig of data will be stored on disk4. An\ninteresting note is that the 500gig disk does not get used at all until\nthe third pass. Don't be concerned if the smaller sized disks don't\nimmediately get used with this method."),(0,i.kt)("p",null,"This pattern will continue with progressively smaller high water levels\nuntil the disks are full."),(0,i.kt)("h4",{id:"most-free"},"Most Free"),(0,i.kt)("p",null,"The most free allocation method simply picks the disk with the most free\nspace and writes the data to that disk. Each time a file is written\nUnraid will check the free space on the disks and pick the one with the\nmost free space."),(0,i.kt)("h4",{id:"fill-up"},"Fill-Up"),(0,i.kt)("p",null,"The fill-up allocation method simply attempts to fill each disk in order\nfrom the lowest numbered disk to the highest numbered disk. The fill-up\nallocation method must be used in conjunction with the minimum free\nspace setting. Otherwise, Unraid will begin to give disk full errors and\nnot allow any more transfers once the first disk gets close to being\nfull."),(0,i.kt)("h3",{id:"min-free-space"},"Min. Free Space"),(0,i.kt)("p",null,"The minimum free space setting is used with the allocation method and\nsplit level. The Minimum Free space setting doesn't control how much\nspace is kept free, but instead it controls how much space must be free\nfor a drive to be chosen for a new file. The minimum free space setting\ntherefore tells Unraid to stop putting new content onto the disk when\nthe free space falls below the level you set (as long as the Split Level\nsetting indicates it can be split to a new disk). This must be used with\nthe fill-up allocation method or disk full errors will occur when there\nis not enough space to fit a file you are trying to write to the array."),(0,i.kt)("p",null,'First a brief explanation of how Unraid will typically receive a file.\nUnraid typically receives data in this manner. First, Unraid receives\nthe request to store a file, named for example "file.eg". At this\ntime, Unraid has no idea how big "file.eg" is so Unraid will pick a\nspot to place "file.eg" and begin to store the file data as the data\nis transferred over the network. Now, this is important because Unraid\nmay pick a storage disk that does not have enough space to store the\ncomplete "file.eg". Unraid doesn\'t know there is not enough space\nwhen it first places the file so Unraid will only find out the disk\ndoesn\'t have enough space when the disk is full. At this point, the\ntransfer will fail with a disk full error.'),(0,i.kt)("p",null,"So, Unraid will write to a different disk if the minimum free space is\nset to a value larger than the biggest file size you will ever transfer.\nThe recommended setting is 2 times the largest file size you will ever\ntransfer. For example, if the largest file you have is 8gig in size then\nset the minimum free space to 16gig. This allows you to transfer files\nthat may vary in size somewhat and not accidentally transfer one too\nlarge. The minimum free space is set in kilo-bytes."),(0,i.kt)("p",null,"Here are some examples of the minimum free space setting;"),(0,i.kt)("hr",null),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Free Space"),(0,i.kt)("th",{parentName:"tr",align:null},"Value"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"500 meg"),(0,i.kt)("td",{parentName:"tr",align:null},"500000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"20 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"20000000")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"40 gig"),(0,i.kt)("td",{parentName:"tr",align:null},"40000000")))),(0,i.kt)("hr",null),(0,i.kt)("p",null,"Note that unRAID will still place files on the disk if the split level\ndoes not allow the files to be placed on another disk with more free\nspace."),(0,i.kt)("p",null,"Also note that Unraid will typically not move a file onto a new disk if\nyou're over-writing or updating it. For example, a backup file that\ngrows in size over time could end up filling a disk and causing a disk\nfull error."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": There is also a Minimum Free Space setting for cache pools.\nThis is used to determine when a new file for a User Share with the Use\nCache setting having a value of Yes or Prefer should be written to the\ncache or instead bypass the cache and go directly to the array. This\nneeds to be set if you want to avoid filling a cache pool which can\ncause problems. As for this value when used with a User Share it\nshould be larger than the largest file you intend to write, and some\npeople like to make it significantly larger. You get to this setting by\nclicking on a pool on the Main tab."),(0,i.kt)("h3",{id:"split-level"},"Split level"),(0,i.kt)("p",null,"The split level setting tells Unraid how many folder levels are allowed\nto be created on multiple disks. The split level can be used to ensure\nthat the contents of a folder are kept on the same disk. The split level\nnumbering starts with the user share being the top level and given the\nnumber 1."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),": in the event of there being contention between the\nvarious settings for a share over which array drive to select for a file\nthe Split Level setting always takes precedence. This means the\nAllocation Method and Minimum Free Space settings end up being\nover-ridden. This can mean Unraid chooses a drive which does not have\nenough space for the file so that an out-of-space error subsequently\noccurs for the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"The Split level setting is one that many users find confusing to here\nis a more detailed description of how it works."))),(0,i.kt)("p",null,'Here is an example showing a possible directory structure for a user\nshare called "Media".'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," I (the original author of this section) consider combining\nmedia types into a single large share a poor way to store media. I use a\nshare for each media type. Movies is a share and TV shows is a share. I\ncombined the movies and TV shows to show the pitfalls in the split\nlevels when doing this as explained after the figure."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1298).Z,width:"700",height:"255"})),(0,i.kt)("p",null,"Here is an explanation of the different split levels, referenced to the\nfolder structure above;"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Level 1",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select the\n"Automatically split only the top level directory as required"\noption.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Every other folder under the Media share must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting does not allow the SD Movies, HD Movies, Kids\nMovies or TV Shows folders to spread to multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too low for all the media."))),(0,i.kt)("li",{parentName:"ol"},"Level 2",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'this is what you have if in the GUI you select the\n"Automatically split only the top two directory levels as\nrequired" option.'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder must remain on a single\ndisk."),(0,i.kt)("li",{parentName:"ul"},"This setting may work well. It will keep each movie and each TV\nseries together on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting may give issues because it keeps each TV series on\na single disk. So, a disk may fill as new TV seasons are added\nto a TV show which is on a disk which is close to full."))),(0,i.kt)("li",{parentName:"ol"},"Level 3",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top three directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder must remain on a single disk."),(0,i.kt)("li",{parentName:"ul"},"This setting will allow the contents stored in each Movie Folder\nto be spread out onto multiple disks."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high for the different movie types."))),(0,i.kt)("li",{parentName:"ol"},"Level 4",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},'This is what you have if in the GUI you select "Automatically\nsplit only the top four directory levels as required".'),(0,i.kt)("li",{parentName:"ul"},"The top level Media share can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"The SD Movies, HD Movies, Kids Movies and TV Shows folders can\nbe created on every disk."),(0,i.kt)("li",{parentName:"ul"},"Each Movie Folder and TV Show Folder can be created on every\ndisk."),(0,i.kt)("li",{parentName:"ul"},"Each Season Folder can be created on every disk."),(0,i.kt)("li",{parentName:"ul"},"This setting is too high because it will allow the contents of\nevery folder to be spread out onto multiple disks. The split\nlevel is not being used to keep similar content together.")))),(0,i.kt)("p",null,"The only valid split level for the above example is 2. This causes a\nsplit level limitation which forces each complete TV series to a single\ndisk. This can force a new TV season to be placed on a disk which is\nalmost full and result in out of space errors once new episodes\ncompletely fill the disk. The split level can't be increased to 3\nbecause each individual movie would not be contained to a single disk."),(0,i.kt)("p",null,"The first way to fix this split level mismatch issue is to create\nseparate shares for the movies and the TV shows. This way, the movies\ncan be set to use a split level of 2 and the TV shows can use a split\nlevel of 3."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3865).Z,width:"726",height:"237"})),(0,i.kt)("p",null,'For Movies use a split level = 2. This allows the "SD Movies", "HD\nMovies" and "Kids Movies" folders to be placed on every disk and it\nkeeps each individual movie folder on a single disk. This way, any\nsingle movie folder and the contents of the movie folder will remain on\na single disk.'),(0,i.kt)("p",null,"For TV_Shows use a split level of either 1 or 2. A split level of 1 will\nkeep each TV series on a single disk and split level of 2 will keep each\nseason on a single disk. The split level of 2 means that the complete TV\nseries can be stored on multiple disks, however each individual season\nof that TV series will be on a single disk."),(0,i.kt)("p",null,"The second way to fix the issue is to add another folder level to the\nmovies, starting first with a Movies folder in the Media share and then\nplacing the different movie types below this."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(2778).Z,width:"644",height:"291"})),(0,i.kt)("p",null,"This user share structure must use split level = 3. SD Movies, HD\nMovies, Kids Movies and each TV series can exist on multiple disks. This\nstructure means each TV season can be on a different disk. This has the\nopposite issue compared to the first example. You can not use split\nlevel 2 to force each complete TV series to remain on a single disk\nwithout messing up the ability of the movies to split to every disk."),(0,i.kt)("p",null,"Some things to keep in mind."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'The above examples are to demonstrate the use of the split level. It\nis not necessary to store your media sorted in the same format as\nthe above example illustrates. You may want to use a Movies share\nand then just place a "Movie Name" folder for each movie directly\ninto the share without sorting the movies by type.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"It is completely valid to force each complete TV series to stay on a\nsingle disk. Just understand that a continuing TV series will keep\nfilling the disk where it is first placed. This may require manual\nintervention to shift some TV series from an almost full disk to an\nempty disk. Using the Most Free allocation method can help eliminate\nthe issue since a completely new TV series would be placed on the\ndisk with the most free space.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The above TV example applies to any similar share. It could apply to\na Pictures share where you store the pictures in folders based on\nthe year (2010, 2011, 2012 etc) or it could apply to a Music share\nwhere you store the music in a folder for each artist. In these\ncases, a split level of 1 would keep a whole year of pictures on a\nsingle disk or it would keep all the music by an artist on a single\ndisk."))),(0,i.kt)("h4",{id:"disable-split-level"},"Disable Split Level"),(0,i.kt)("p",null,"It is also possible to disable the split level by setting a high split\nlevel. A file copy or move will fail if a folder is locked to a full\ndisk and an attempt is made to add more files into that folder. Setting\na high split level will ensure each file will get written to the server\nas long as a disk has space for it."),(0,i.kt)("h4",{id:"split-level--1-example"},"Split Level = 1 Example"),(0,i.kt)("p",null,"The following example demonstrates how the share behaves when the split\nlevel is set to 1. The Share name is New_Movies. Each movie stored in\nthis share has its own folder. Inside the movie folder is the movie file\nas well as some metadata files used by MediaBrowser."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(5154).Z,width:"565",height:"626"})),(0,i.kt)("p",null,"The above Windows Explorer screen shot shows the file structure of the\nNew_Movies share on the left and the contents of the A History of\nViolence movie folder on the right. The levels for this share are\nlabeled on the example. This is what split level = 1 means:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"A New_Movies folder can be created on each disk allowed by the\ninclude and exclude disk settings. A new New_Movies folder will be\ncreated on the next disk in line when the allocation method calls\nfor Unraid to begin filling the next disk. Note that the New_Movies\nfolder will only be created on the next disk in line when it is\nnecessary and not when the share is created.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"The A History of Violence folder can only\nexist on one disk. Once it is created on the disk, all of the\ncontents will remain on the same disk. Any changes or additions to\nthis folder will remain on the same disk. For example, a new file\ncalled movie.nfo for the XBMC metadata might be created in this\nfolder in the future. The movie.nfo file will be created in the\nexisting A History of Violence folder. A duplicate A History of\nViolence folder will not be created on another disk to store this new\nfile."))),(0,i.kt)("p",null,"You will notice that the movie folders (500) Days of Summer (2009) and\n2 Fast 2 Furious (2003) both appear in the New_Movies share. The next\nscreen shot will show how each of these files is stored on a separate\ndisk."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(8362).Z,width:"1208",height:"705"})),(0,i.kt)("p",null,"The above screen shot shows side by side Window Explorer views of the\nfile structure stored on disk1 and disk2. On the left is disk1 and on\nthe right is disk2. The left Explorer window shows the contents of\ndisk1. The New_Movies share is a folder stored at the top level or the\nroot of disk1 with the individual movie directories stored in this\ndirectory. The right Explorer window shows the contents of disk2. The\nNew_Movies share is a folder stored at the top level or the root of\ndisk2 with the individual movie folders stored in this directory. As\nfiles were being moved into the New_Movies share, Unraid created the\nNew_Movies folder on both disk1 and disk2 to store these files."),(0,i.kt)("p",null,"The windows side by side can be used to examine the contents of the\nNew_Movies share on a disk by disk basis. You will notice that the movie\nfolder (500) Days of Summer (2009) is stored on disk1 and the movie\nfolder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted,\nUnraid combines the movies stored on disk1 and disk2 into one network\nshare called New_Movies and both movies appear in the New_Movies network\nshare."),(0,i.kt)("p",null,"Take note that a share called Movies is also visible on disk2."),(0,i.kt)("h5",{id:"split-level-0"},"Split Level 0"),(0,i.kt)("p",null,'This is what you have if in the GUI you select "Manual: do not\nAutomatically split directories".'),(0,i.kt)("p",null,"Split level 0 is a special case. Split level 0 requires you to create\nthe desired top level or parent folder structure. Unraid will\nunconditionally create an object on the disk that contains the parent\nfolders. Unraid will choose which disk to use according to the\nallocation method if the parent folders exist on multiple disks."),(0,i.kt)("p",null,"If you set the Split level to 0, then all directories/files created\nunder that share will be on the same disk where the directory within\nthat share share was originally created. In other words, use level 0 to\nnot allow the share to split automatically across disks"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"NOTE:")," If you create the same folder structure on multiple disks then\nUnraid will apply the other share settings to decide which disk to use."),(0,i.kt)("h6",{id:"example"},"Example"),(0,i.kt)("p",null,"The server has 4 disks. A user share called Media is desired. Different\ntypes of media will be stored in this share. The desired structure is;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"disk1 - will hold the DVD movies."),(0,i.kt)("li",{parentName:"ul"},"disk2 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk3 - will hold the BluRay movies."),(0,i.kt)("li",{parentName:"ul"},"disk4 - will hold the TV series.")),(0,i.kt)("p",null,"The desired structure is illustrated below."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(3610).Z,width:"1369",height:"388"})),(0,i.kt)("p",null,"On the left side is how the user share will appear and on the right side\nis the folder structure on each disk. The user will go to each disk and\ncreate the folders shown in red to create the storage as listed above.\nThen, the Media folder as well as the DVD Movies, BluRay Movies and TV\nShows folders become the parent folders for everything stored in the\nMedia share. The media will be sorted by disk as follows;"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Movies placed in the DVD Movies folder will go to disk1."),(0,i.kt)("li",{parentName:"ul"},"Movies placed in the BluRay Movies folder will go to disk2 or disk3.\nThe disk is selected by the allocation method."),(0,i.kt)("li",{parentName:"ul"},"TV shows placed in the TV Shows folder will go to disk4.")),(0,i.kt)("p",null,"Say one day that disk1 is full and disk5 is added to the server to hold\nnew DVD Movies. The same folders on disk1 must be created on the new\ndisk5. In other words, the folder Media and sub-folder DVD Movies must\nbe created on disk5. Then, Unraid can use either disk1 or disk5 to store\nDVD Movies."),(0,i.kt)("h5",{id:"split-by-character"},"Split By Character"),(0,i.kt)("p",null,"Specify a character in the split level box to use this method. Then,\nUnraid will not allow any folder name containing the character to split.\nFor example, set the split level to an opening square bracket ( [ )\ninstead of a number. Then, create each movie folder with the year\nencased in square brackets after the title in this manner - Iron Man 2\n","[2010]",". Unraid will see the opening square bracket ( [ ) and it will\nnot split this folder or any content stored inside this folder."),(0,i.kt)("p",null,"This type of split level can allow different levels of sub-folders to be\nspecified as not splitting simply by inserting the character into the\nfolder name which should not split. This can overcome the limitation of\nhaving a fixed split level for a share."),(0,i.kt)("h3",{id:"included-and-excluded-disks"},"Included and Excluded disk(s)"),(0,i.kt)("p",null,'The included disk(s) and excluded disk(s) parameters control which disks\nare allowed to be used by each user share. These parameters can be used\nseparately or together to define the group of disks allowed for writing\nfiles to each user share. The disks are entered by disk number with a\ncomma separating each disk, for example "disk2,disk5".'),(0,i.kt)("p",null,"Unraid will first check the included disks(s) set and then the Excluded\ndisk(s) set when deciding which disk to place a file on. Then, Unraid\nwill use the split level and allocation method to pick a disk which is\nallowed to hold the file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note:")," The Include/Exclude settings at the individual share level\nonly control which disks new files can be written to. Files on other\ndisks that are in a folder corresponding to the share name will still\nshow up under that share for read purposes."),(0,i.kt)("h4",{id:"included-disks"},"Included disk(s)"),(0,i.kt)("p",null,'The included disks(s) parameter defines the set of disks which are\ncandidates for allocation to that share. All disks may be used by the\nuser share when the Included disk(s) parameter is left blank. Specify\nthe disks to include here. For example, set the included disk(s) to\n"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and\ndisk3.'),(0,i.kt)("h4",{id:"excluded-disks"},"Excluded disk(s)"),(0,i.kt)("p",null,'The excluded disk(s) parameter defines the set of disks which are\nexcluded from use by the user share. No disks are excluded from use by\nthe user share when the excluded disk(s) parameter is left blank.\nSpecify the disks to exclude here. For example, set the excluded disk(s)\nto "disk1,disk2" to restrict a share from using disk1 and disk2.'),(0,i.kt)("h3",{id:"default-shares"},"Default Shares"),(0,i.kt)("p",null,"If you have Docker or VMs enabled then a number of default shares are\nset up to support their use. It is not mandated that you use these\nshares (and the system will let you remove them if you do not want to\nuse them for their standard purpose) but it is recommended as it tends\nto make it easier to support users who encounter problems."),(0,i.kt)("p",null,"The shares that fall into this category are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"appdata"),": this is the default location for storing working files\nassociated with docker containers. Typically there will be a\nsub-folder for each docker container."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"system"),": this is the default location for storing the docker\napplication binaries, and VM XML templates"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"domains"),": this is the default location for storing virtual disk\nimages (vdisks) that are used by VMs."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"isos"),": this is the default location for storing CD iso images for\nuse with VMs.")),(0,i.kt)("h3",{id:"unraid-612"},"Unraid 6.12"),(0,i.kt)("p",null,"The Unraid 6.12 release has introduced some new terminology to make it\nclearer to new users where files are initially placed and where they\nwill end up. The same functionality is present in earlier releases, but\nhas often been misunderstood by new users."),(0,i.kt)("h4",{id:"primary-storage"},"Primary Storage"),(0,i.kt)("p",null,"This is the location to which ",(0,i.kt)("strong",{parentName:"p"},"new")," files will be written."),(0,i.kt)("p",null,"If Primary storage is below the Minimum Free Space setting then new\nfiles and folders will be created in Secondary storage, if configured"),(0,i.kt)("p",null,"For the Primary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"this option is mandatory. ie, Primary storage must be selected"),(0,i.kt)("li",{parentName:"ul"},"any named pool can be selected"),(0,i.kt)("li",{parentName:"ul"},'"Array" can be selected (meaning the Unraid array)')),(0,i.kt)("h4",{id:"secondary-storage"},"Secondary Storage"),(0,i.kt)("p",null,"This is the location where files will be moved to if appropriate."),(0,i.kt)("p",null,"For the Secondary storage drop-down:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"None: This means that there is no secondary storage set for this\nshare i.e Secondary storage is optional"),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is a pool name, then the only options are\n"none" and "Array"'),(0,i.kt)("li",{parentName:"ul"},'if Primary storage is "Array", then only "none" appears as an\noption')),(0,i.kt)("h3",{id:"unraid-611-and-earlier"},"Unraid 6.11 and earlier"),(0,i.kt)("p",null,"The following settings are only found in Unraid 6.11 and earlier. They\nachieve the same functionality as the settings available in 6.12 but are\npresented differently."),(0,i.kt)("h4",{id:"use-cache-and-mover-behavior-with-user-shares"},"Use Cache (and Mover Behavior with User Shares)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": Starting with Unraid 6.9.0 multiple pools can exist and they\ncan have any name the user chooses. Any of these pools can act act as a\ncache in the way Unraid uses the term. The word cache therefore is\nreferring to this functionality and not necessarily to the pool name."),(0,i.kt)("p",null,"Unraid includes an application called ",(0,i.kt)("strong",{parentName:"p"},"mover"),' that is used in\nconjunction with User Shares. It\'s behavior is controlled by the "Use\nCache for new files" setting under each User Share. The way these\ndifferent settings operate is as follows'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Yes"),": Write new files to the cache as long as the free space on\nthe cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," value. If the free space\nis below that then by-pass the cache and write the files directly to\nthe main array."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move files to the main array as\nlong as they are not currently open. Which array drive will get the\nfile is controlled by the combination of the ",(0,i.kt)("em",{parentName:"p"},"Allocation method"),",\n",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting for the share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"No"),": Write new files directly to the array. Which array drive\nwill get the file is controlled by the combination of the\n",(0,i.kt)("em",{parentName:"p"},"Allocation method"),", ",(0,i.kt)("em",{parentName:"p"},"Split level"),", and Minimum Free Space setting\nfor the share."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the cache that logically belong to this\nshare.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Only"),": Write new files directly to the cache. If the free space\non the cache is below the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the cache\nthen the write will fail with an out-of-space error."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will take ",(0,i.kt)("strong",{parentName:"p"},"no")," action on files for this share\neven if there are files on the main array that logically belong to\nthis share.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Prefer"),": Write new files to the cache if the free space on the\ncache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the share, and\nif the free space falls below that value then write the files to the\nmain array instead."),(0,i.kt)("p",{parentName:"li"}," When ",(0,i.kt)("em",{parentName:"p"},"mover")," runs it will attempt to move any files for this share\nthat are on the main array back to the cache as long as the free\nspace on the cache is above the ",(0,i.kt)("em",{parentName:"p"},"Minimum free space")," setting for the\ncache"),(0,i.kt)("p",{parentName:"li"}," It is the default setting for the ",(0,i.kt)("em",{parentName:"p"},"appdata")," and ",(0,i.kt)("em",{parentName:"p"},"System")," Shares that\nare used to support the Docker and VM sub-systems. In typical use\nyou want the files/folders belonging to these shares to reside on\nthe cache as you get much better performance from Docker containers\nand VMs if their files are not on the main array (due to the cost of\nmaintaining parity on the main array significantly slowing down\nwrite operations)."),(0,i.kt)("p",{parentName:"li"}," This setting works for a share even if you do not have (yet) a\nphysical cache drive(s) as then files will simply be written\ndirectly to the array. If at a later date you add a cache drive\nmover will now automatically try and move the files in any share set\nto Prefer to the pool defined as the cache for the share to improve\nperformance. This is why it is the default for shares that are\ntypically located on the cache rather than ",(0,i.kt)("em",{parentName:"p"},"Only")," as it caters for\nthose who do not (yet) have a cache drive."))),(0,i.kt)("h5",{id:"moving-files-from-a-pool-cache-to-the-array"},"Moving Files from a Pool (cache) to the Array"),(0,i.kt)("p",null,"This is the more traditional usage of a pool for caching where one wants\nthe files for a particular share initially written to a pool acting as a\ncache to maximise write speed, but later you want it to be moved to the\nmain array for long term storage. Most of the time all that is required\nis to set the Use Cache setting for the share to Yes and the default\nbehaviour handles the rest with no further user interaction."),(0,i.kt)("p",null,"Sometimes for one reason or another users find that the files seem to be\n'stuck' on a pool. The way to proceed in such a case to get the files\nbelonging to a share from a pool onto the main array is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)."),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Yes")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move ",(0,i.kt)("em",{parentName:"li"},"Yes"),"\ntype shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use if you disabled them earlier."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"Only")," to say files\nfor this share can never be written to the array.")),(0,i.kt)("h5",{id:"moving-files-from-the-array-to-a-pool-cache"},"Moving Files from the Array to a Pool (cache)"),(0,i.kt)("p",null,"One typically wants files associated with running Docker containers or\nVMs on a pool to maximise performance. It is not unusual for one reason\nor another to find that one has files on the main array which you really\nwant to be on a pool. In particular this is likely to happen for the\nappdata or system shares"),(0,i.kt)("p",null,"The way to proceed to get the files belonging to a share from the main\narray onto a pool is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Disable ",(0,i.kt)("strong",{parentName:"li"},"Docker/VM")," services if they are enabled (as files open in\nthese services cannot be moved)"),(0,i.kt)("li",{parentName:"ul"},"Change the Use Cache setting for the share to ",(0,i.kt)("strong",{parentName:"li"},"Prefer")),(0,i.kt)("li",{parentName:"ul"},"Manually run ",(0,i.kt)("strong",{parentName:"li"},"mover")," from the ",(0,i.kt)("em",{parentName:"li"},"Main")," tab to get it to move\n",(0,i.kt)("em",{parentName:"li"},"Prefer")," type shares from array to the pool (cache)."),(0,i.kt)("li",{parentName:"ul"},"When ",(0,i.kt)("strong",{parentName:"li"},"mover")," finishes you can re-enable the Docker and/or VMs\nservices you use."),(0,i.kt)("li",{parentName:"ul"},"(optional) change the ",(0,i.kt)("strong",{parentName:"li"},"Use Cache")," setting to ",(0,i.kt)("em",{parentName:"li"},"No")," to say files for\nthis share can never be cached on a pool.")),(0,i.kt)("h2",{id:"disk-shares"},"Disk Shares"),(0,i.kt)("p",null,"These are shares that relate to individual array drives or pools within\nthe Unraid system and that are visible over the network. By default if\nUser Shares are enabled then Disk Shares are not enabled (see the\nIMPORTANT section below for the reason why this is the case). If you\nwant the Disk Shares to be enabled then this is done under\nSettings-",">","Global Share Settings. The Disk Shares will then appear in\nthe Unraid GUI under a Disk Shares section on the Shares tab. You will\nwant to modify the user permissions to restrict network user access if\ndesired, just like User Shares."),(0,i.kt)("p",null,"When viewed at the Linux level the physical devices or pools will appear\ndirectly under ",(0,i.kt)("em",{parentName:"p"},"/mnt")," with a name corresponding to the array drive or\npool. (This happens regardless of whether Disk Shares are enabled) .\nExamples of such names are:"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/diskX:")," these are array drives where X corresponds to the disk\nnumber that shows in the Unraid GUI. The corresponding Disk Share at the\nnetwork level would be ",(0,i.kt)("em",{parentName:"p"},"diskX")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"/mnt/pool-name:")," These are pools. A single pool can actually consist of\nmultiple drives but Unraid treats them as if they were one drive. The\ncommonest example of a pool-name is ",(0,i.kt)("em",{parentName:"p"},"'cache'")," but it can be any name\ndefined by the user. The corresponding Disk Share at the network level\nwould be ",(0,i.kt)("em",{parentName:"p"},"pool-name.")),(0,i.kt)("p",null,"The Unraid flash device that is used to boot Unraid and store all user\nsettings is also a physical device, but is not normally considered to be\na Disk Share. If you want it visible on the network then you can click\non it in the Main tab and set it to appear at the network level as the\n'",(0,i.kt)("em",{parentName:"p"},"flash"),"' share. At the Linux level it is mounted at /",(0,i.kt)("em",{parentName:"p"},"boot")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"IMPORTANT"),"\nIf you have both ",(0,i.kt)("em",{parentName:"p"},"Disk Shares")," and ",(0,i.kt)("em",{parentName:"p"},"User Shares")," enabled then there\nis an important restriction that you must observe if you want to\navoid potential data loss. What you must ",(0,i.kt)("strong",{parentName:"p"},"NEVER")," do is copy\nbetween a ",(0,i.kt)("strong",{parentName:"p"},"User Share")," and a ",(0,i.kt)("strong",{parentName:"p"},"Disk Share")," in the same copy\noperation where the folder name on the Disk Share corresponds to the\nUser Share name. This is because at the base system level Linux does\nnot understand ",(0,i.kt)("em",{parentName:"p"},"User Shares")," and therefore that a file on a ",(0,i.kt)("em",{parentName:"p"},"Disk\nShare")," and a ",(0,i.kt)("em",{parentName:"p"},"User Share")," can be different views of the ",(0,i.kt)("strong",{parentName:"p"},"same"),"\nfile. If you mix the share types in the same copy command you can\nend up trying to copy the file to itself which results in the file\nbeing truncated to zero length and its content thus being lost."),(0,i.kt)("p",null,"There is no problem if the copy is between shares of the same type,\nor copying to/from a disk mounted as an Unassigned Device."),(0,i.kt)("p",null,"There is another quirk of the interaction between Linux and the Unraid\nUser Share system that users can encounter if they are working at the\nDisk Share level. The Linux command for Move is implemented by first\ntrying a rename on the file (which is fast) and only if that fails does\nit do a copy then delete operation. This can mean that under some\ncircumstances when working locally on the server (e.g. from the command\nline when you try to move files from one user share to another, Linux\nwill often simply rename the files so they have a different path on the\nsame disk, in violation of any user share settings such as included\ndisks. The workaround for this is to instead explicitly copy from source\nto destination so that new files get created following the user share\nsettings, then deleting from the source."),(0,i.kt)("h2",{id:"network-access"},"Network access"),(0,i.kt)("p",null,"You can control what protocols should be supported for accessing the\nUnraid server across the network. Click on Settings-",">","Network Services\nto see the various options available.. These options are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"SMB"),": This the standard protocol used by Windows systems. It is\nwidely implemented on other systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"NFS"),": ",(0,i.kt)("strong",{parentName:"li"},"N"),"etwork ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"S"),"ystem. This is a protocol widely\nused on Unix compatible systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"AFP"),": ",(0,i.kt)("strong",{parentName:"li"},"A"),"pple ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol. This is the protocol that\nhas historically been used on Apple Mac systems. It is now a\ndeprecated option as the latest versions of MacOS now use SMB as the\ntransferred protocol for accessing files and folders over the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"FTP"),": ",(0,i.kt)("strong",{parentName:"li"},"F"),"ile ",(0,i.kt)("strong",{parentName:"li"},"T"),"ransfer ",(0,i.kt)("strong",{parentName:"li"},"P"),"rotocol.")),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the visibility of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes"),": With this setting the share will be visible across the\nnetwork."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Yes (Hidden)"),": With this setting the share can be accessed across\nthe network but will not be listed when browsing the shares on the\nserver. Users can still access the share as long as they know the\nname and the user is prepared to enter in manually."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"No"),": With this option selected then it is not possible to access\nthe share across the network.")),(0,i.kt)("h2",{id:"access-permissions"},"Access Permissions"),(0,i.kt)("p",null,"When you click on the name of a share on the Shares tab then there is a\nsection that allows you to control the access rights of the share on the\nnetwork for each of the protocols you have enabled. The setting is\nlabelled ",(0,i.kt)("strong",{parentName:"p"},"Security")," and has the following options:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Public"),": All users have both read and write access to the\ncontents of the share"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Secure"),": All users including guests have read access, you select\nwhich of your users have write access"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Private"),": You select which of your users have access and for each\nuser whether that user has read/write or read-only access.")),(0,i.kt)("h3",{id:"windows-gotcha"},"Windows 'Gotcha'"),(0,i.kt)("p",null,"There is an issue with the way Windows handles network shares that many\nusers fall foul of:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"This is the fact that Windows only allows a ",(0,i.kt)("strong",{parentName:"li"},"single")," username to\nbe used to connect to a specific server at any given time. All\nattempts to then connect to a different share on the same server\nthat are not public shares put up a Username/Password prompt and\nthis fails as though you have entered an incorrect password for this\nusername. If you have any shares on the server set to ",(0,i.kt)("strong",{parentName:"li"},"Private")," or\n",(0,i.kt)("strong",{parentName:"li"},"Secure")," access it can therefore be important that you connect to\nsuch a share first before any shares set for ",(0,i.kt)("strong",{parentName:"li"},"Public")," access which\nmay connect as a guest user and make subsequent attempts to connect\nwith a specific user fail."),(0,i.kt)("li",{parentName:"ul"},"A workaround that can help with avoiding this issue is the fact that\nif you access a server both by it's network name and via it's IP\naddress then Windows will treat it a two separate servers as far as\nauthentication is concerned.")))}c.isMDXComponent=!0},8272:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/High-Water_Allocation_Method-73aceb5fbd6984e821b9a40d254126be.JPG"},3610:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Level_0-85fa26cbb640e98765ca207be6fdd694.JPG"},5154:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movie_Share-0de879d5fb3dc6fba964744db5bb6827.jpg"},8362:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Movies_Share_Disk_View-93330078b8f073697286d7f11d8cf2fe.JPG"},1298:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_1-6d97a2c34c343f745537069876f68a60.JPG"},3865:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_2-0ce359bddd479b9830e12615ebe07fa1.JPG"},2778:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Split_level_3-c5fd4917d16153206e797c5042ea33ac.JPG"}}]); \ No newline at end of file diff --git a/zh/assets/js/935f2afb.7d1fb1bb.js b/zh/assets/js/935f2afb.7d1fb1bb.js deleted file mode 100644 index 17cfacc0a..000000000 --- a/zh/assets/js/935f2afb.7d1fb1bb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/zh/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/zh/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/zh/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/zh/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/zh/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/zh/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/zh/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/zh/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/zh/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/zh/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/zh/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/zh/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/zh/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/zh/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/zh/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/zh/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/zh/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/zh/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/zh/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/zh/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/zh/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"\u8d2d\u4e70\u5e76\u6536\u5230\u6fc0\u6d3b\u7801\u540e\u5982\u4f55\u5151\u6362\u60a8\u7684\u6fc0\u6d3b\u7801","href":"/zh/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/zh/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/zh/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/zh/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/zh/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/zh/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/zh/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/zh/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Shares","href":"/zh/unraid-os/manual/shares","docId":"unraid-os/manual/shares"},{"type":"link","label":"Docker Management","href":"/zh/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/zh/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/zh/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/zh/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"link","label":"Multi-Language Support","href":"/zh/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/zh/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/zh/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/zh/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/zh/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/zh/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/zh/category/getting-started"},{"type":"link","label":"Security","href":"/zh/unraid-os/manual/security","docId":"unraid-os/manual/security"},{"type":"link","label":"Tools","href":"/zh/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/zh/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/zh/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/zh/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/zh/category/zfs"}],"href":"/zh/category/manual"}],"href":"/zh/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/zh/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/zh/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/zh/connect/remote-access","docId":"connect/remote-access"}],"href":"/zh/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/zh/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/zh/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/zh/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/zh/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/zh/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/zh/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/zh/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/zh/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/zh/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/zh/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/zh/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/zh/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/zh/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/zh/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/zh/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/zh/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/zh/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/zh/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/zh/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/zh/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/zh/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/zh/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/zh/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/zh/category/tutorial---extras"}],"href":"/zh/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"\u8d2d\u4e70\u5e76\u6536\u5230\u6fc0\u6d3b\u7801\u540e\u5982\u4f55\u5151\u6362\u60a8\u7684\u6fc0\u6d3b\u7801","description":"\u9996\u5148\uff0c\u6309\u7167 \u5165\u95e8\u6307\u5357 \u8bbe\u7f6e\u597d","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security":{"id":"unraid-os/manual/security","title":"Security","description":"This section covers various security-related aspects of Unraid","sidebar":"unraidSidebar"},"unraid-os/manual/shares":{"id":"unraid-os/manual/shares","title":"Shares","description":"Once you have assigned some devices to Unraid and started the array, you","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/zh/assets/js/935f2afb.b7c96576.js b/zh/assets/js/935f2afb.b7c96576.js new file mode 100644 index 000000000..a9bdc0bee --- /dev/null +++ b/zh/assets/js/935f2afb.b7c96576.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2197],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"unraidSidebar":[{"type":"link","label":"Home","href":"/zh/","docId":"docs-home"},{"type":"category","label":"Unraid OS","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"6.12","items":[{"type":"link","label":"6.12.0","href":"/zh/unraid-os/release-notes/6.12.0","docId":"unraid-os/release-notes/6.12.0"},{"type":"link","label":"6.12.1","href":"/zh/unraid-os/release-notes/6.12.1","docId":"unraid-os/release-notes/6.12.1"},{"type":"link","label":"6.12.2","href":"/zh/unraid-os/release-notes/6.12.2","docId":"unraid-os/release-notes/6.12.2"},{"type":"link","label":"6.12.3","href":"/zh/unraid-os/release-notes/6.12.3","docId":"unraid-os/release-notes/6.12.3"}],"collapsed":false,"collapsible":true},{"type":"category","label":"6.11","items":[{"type":"link","label":"6.11.0","href":"/zh/unraid-os/release-notes/6.11.0","docId":"unraid-os/release-notes/6.11.0"},{"type":"link","label":"6.11.1","href":"/zh/unraid-os/release-notes/6.11.1","docId":"unraid-os/release-notes/6.11.1"},{"type":"link","label":"6.11.2","href":"/zh/unraid-os/release-notes/6.11.2","docId":"unraid-os/release-notes/6.11.2"},{"type":"link","label":"6.11.3","href":"/zh/unraid-os/release-notes/6.11.3","docId":"unraid-os/release-notes/6.11.3"},{"type":"link","label":"6.11.4","href":"/zh/unraid-os/release-notes/6.11.4","docId":"unraid-os/release-notes/6.11.4"},{"type":"link","label":"6.11.5","href":"/zh/unraid-os/release-notes/6.11.5","docId":"unraid-os/release-notes/6.11.5"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.10","items":[{"type":"link","label":"6.10.0","href":"/zh/unraid-os/release-notes/6.10.0","docId":"unraid-os/release-notes/6.10.0"},{"type":"link","label":"6.10.1","href":"/zh/unraid-os/release-notes/6.10.1","docId":"unraid-os/release-notes/6.10.1"},{"type":"link","label":"6.10.2","href":"/zh/unraid-os/release-notes/6.10.2","docId":"unraid-os/release-notes/6.10.2"},{"type":"link","label":"6.10.3","href":"/zh/unraid-os/release-notes/6.10.3","docId":"unraid-os/release-notes/6.10.3"}],"collapsed":true,"collapsible":true},{"type":"category","label":"6.9","items":[{"type":"link","label":"6.9.0","href":"/zh/unraid-os/release-notes/6.9.0","docId":"unraid-os/release-notes/6.9.0"},{"type":"link","label":"6.9.1","href":"/zh/unraid-os/release-notes/6.9.1","docId":"unraid-os/release-notes/6.9.1"},{"type":"link","label":"6.9.2","href":"/zh/unraid-os/release-notes/6.9.2","docId":"unraid-os/release-notes/6.9.2"}],"collapsed":true,"collapsible":true}],"href":"/zh/category/release-notes"},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Licensing","href":"/zh/unraid-os/faq/licensing-faq","docId":"unraid-os/faq/licensing-faq"},{"type":"link","label":"OS","href":"/zh/unraid-os/faq/os-faq","docId":"unraid-os/faq/os-faq"},{"type":"link","label":"\u8d2d\u4e70\u5e76\u6536\u5230\u6fc0\u6d3b\u7801\u540e\u5982\u4f55\u5151\u6362\u60a8\u7684\u6fc0\u6d3b\u7801","href":"/zh/unraid-os/faq/redeem-license-activation-code","docId":"unraid-os/faq/redeem-license-activation-code"},{"type":"link","label":"Unraid Account","href":"/zh/unraid-os/faq/unraid-account","docId":"unraid-os/faq/unraid-account"}],"href":"/zh/category/faq"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apple Time Machine","href":"/zh/unraid-os/guides/configuring-time-machine","docId":"unraid-os/guides/configuring-time-machine"},{"type":"link","label":"How To Setup Wake On LAN (WOL) for UNRAID","href":"/zh/unraid-os/guides/wol-setup-for-unraid","docId":"unraid-os/guides/wol-setup-for-unraid"}],"href":"/zh/category/guides"},{"type":"category","label":"Manual","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Shares","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User shares","href":"/zh/unraid-os/manual/shares/user-shares","docId":"unraid-os/manual/shares/user-shares"},{"type":"link","label":"Disk shares","href":"/zh/unraid-os/manual/shares/disk-shares","docId":"unraid-os/manual/shares/disk-shares"},{"type":"link","label":"Network access","href":"/zh/unraid-os/manual/shares/network-access","docId":"unraid-os/manual/shares/network-access"},{"type":"link","label":"Create a new share","href":"/zh/unraid-os/manual/shares/create-a-share","docId":"unraid-os/manual/shares/create-a-share"},{"type":"link","label":"Delete a share","href":"/zh/unraid-os/manual/shares/delete-a-share","docId":"unraid-os/manual/shares/delete-a-share"}],"href":"/zh/unraid-os/manual/shares/"},{"type":"link","label":"Overview","href":"/zh/unraid-os/manual/what-is-unraid","docId":"unraid-os/manual/what-is-unraid"},{"type":"link","label":"Storage Management","href":"/zh/unraid-os/manual/storage-management","docId":"unraid-os/manual/storage-management"},{"type":"link","label":"Docker Management","href":"/zh/unraid-os/manual/docker-management","docId":"unraid-os/manual/docker-management"},{"type":"link","label":"VM Support","href":"/zh/unraid-os/manual/vm-support","docId":"unraid-os/manual/vm-support"},{"type":"link","label":"Managing VMs","href":"/zh/unraid-os/manual/vm-management","docId":"unraid-os/manual/vm-management"},{"type":"link","label":"Community Applications","href":"/zh/unraid-os/manual/applications","docId":"unraid-os/manual/applications"},{"type":"category","label":"Security","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Good Practices","href":"/zh/unraid-os/manual/security/good-practices","docId":"unraid-os/manual/security/good-practices"},{"type":"link","label":"Securing webGUI connections (SSL)","href":"/zh/unraid-os/manual/security/secure-webgui-ssl","docId":"unraid-os/manual/security/secure-webgui-ssl"},{"type":"link","label":"Data Encryption","href":"/zh/unraid-os/manual/security/data-encryption","docId":"unraid-os/manual/security/data-encryption"},{"type":"link","label":"Flash Drive","href":"/zh/unraid-os/manual/security/flash-drive","docId":"unraid-os/manual/security/flash-drive"},{"type":"link","label":"VPN","href":"/zh/unraid-os/manual/security/vpn","docId":"unraid-os/manual/security/vpn"}],"href":"/zh/unraid-os/manual/security/"},{"type":"link","label":"Multi-Language Support","href":"/zh/unraid-os/manual/multi-language","docId":"unraid-os/manual/multi-language"},{"type":"link","label":"Troubleshooting","href":"/zh/unraid-os/manual/troubleshooting","docId":"unraid-os/manual/troubleshooting"},{"type":"link","label":"Additional Settings","href":"/zh/unraid-os/manual/additional-settings","docId":"unraid-os/manual/additional-settings"},{"type":"link","label":"Changing the Flash Device","href":"/zh/unraid-os/manual/changing-the-flash-device","docId":"unraid-os/manual/changing-the-flash-device"},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/zh/unraid-os/manual/getting-started/","docId":"unraid-os/manual/getting-started/getting-started"},{"type":"link","label":"Manual Install Method","href":"/zh/unraid-os/manual/getting-started/manual-install-method","docId":"unraid-os/manual/getting-started/manual-install-method"}],"href":"/zh/category/getting-started"},{"type":"link","label":"Tools","href":"/zh/unraid-os/manual/tools","docId":"unraid-os/manual/tools"},{"type":"link","label":"Upgrading Unraid","href":"/zh/unraid-os/manual/upgrade-instructions","docId":"unraid-os/manual/upgrade-instructions"},{"type":"link","label":"Users","href":"/zh/unraid-os/manual/users","docId":"unraid-os/manual/users"},{"type":"category","label":"ZFS","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About","href":"/zh/unraid-os/manual/zfs/placeholder","docId":"unraid-os/manual/zfs/placeholder"}],"href":"/zh/category/zfs"}],"href":"/zh/category/manual"}],"href":"/zh/category/unraid-os"},{"type":"category","label":"Unraid Connect","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Unraid Connect","href":"/zh/connect/about","docId":"connect/about"},{"type":"link","label":"Unraid Connect Help","href":"/zh/connect/help","docId":"connect/help"},{"type":"link","label":"Remote Access","href":"/zh/connect/remote-access","docId":"connect/remote-access"}],"href":"/zh/category/unraid-connect"},{"type":"category","label":"Legacy Documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Articles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dual Booting Windows & Unraid","href":"/zh/legacy/Articles/dual-boot-unraid-and-windows","docId":"legacy/Articles/dual-boot-unraid-and-windows"},{"type":"link","label":"Expanding Windows VM VDisk Partitions","href":"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions","docId":"legacy/Articles/expanding-windows-vm-vdisk-partitions"},{"type":"link","label":"Upgrading to Unraid 6","href":"/zh/legacy/Articles/upgrading-to-unraid-6","docId":"legacy/Articles/upgrading-to-unraid-6"}]},{"type":"category","label":"FAQ","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Parity","href":"/zh/legacy/FAQ/Parity","docId":"legacy/FAQ/Parity"},{"type":"link","label":"Cache Disk","href":"/zh/legacy/FAQ/cache-disk","docId":"legacy/FAQ/cache-disk"},{"type":"link","label":"Checking and fixing file systems","href":"/zh/legacy/FAQ/check-disk-filesystems","docId":"legacy/FAQ/check-disk-filesystems"},{"type":"link","label":"Check Harddrive Speed","href":"/zh/legacy/FAQ/check-harddrive-speed","docId":"legacy/FAQ/check-harddrive-speed"},{"type":"link","label":"Console","href":"/zh/legacy/FAQ/console","docId":"legacy/FAQ/console"},{"type":"link","label":"The Parity Swap Procedure","href":"/zh/legacy/FAQ/parity-swap-procedure","docId":"legacy/FAQ/parity-swap-procedure"},{"type":"link","label":"Replacing a Data Drive","href":"/zh/legacy/FAQ/replacing-a-data-drive","docId":"legacy/FAQ/replacing-a-data-drive"},{"type":"link","label":"Replacing Multiple Data Drives with a Single Larger Drive","href":"/zh/legacy/FAQ/replacing-multiple-data-drives","docId":"legacy/FAQ/replacing-multiple-data-drives"},{"type":"link","label":"Setting Up CPU and Board Temperature Sensing","href":"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","docId":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing"},{"type":"link","label":"Setup Sleep (S3) and Wake on Lan (WOL)","href":"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan","docId":"legacy/FAQ/setup-sleep-and-wake-on-lan"},{"type":"link","label":"Shrink Array","href":"/zh/legacy/FAQ/shrink-array","docId":"legacy/FAQ/shrink-array"},{"type":"link","label":"Terminal Access","href":"/zh/legacy/FAQ/terminal-access","docId":"legacy/FAQ/terminal-access"},{"type":"link","label":"Transferring Files from a Network Share to Unraid","href":"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","docId":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid"},{"type":"link","label":"Transferring Files Within the Unraid Server","href":"/zh/legacy/FAQ/transferring-files-within-the-unraid-server","docId":"legacy/FAQ/transferring-files-within-the-unraid-server"},{"type":"link","label":"Understanding SMART Reports","href":"/zh/legacy/FAQ/understanding-smart-reports","docId":"legacy/FAQ/understanding-smart-reports"},{"type":"link","label":"USB Flash Drive Preparation","href":"/zh/legacy/FAQ/usb-flash-drive-preparation","docId":"legacy/FAQ/usb-flash-drive-preparation"}]}],"href":"/zh/category/legacy-documentation"},{"type":"category","label":"Contribute","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributing to Unraid Documentation","href":"/zh/contribute-to-docs/intro","docId":"contribute-to-docs/intro"},{"type":"category","label":"Tutorial - Basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Page","href":"/zh/contribute-to-docs/tutorial-basics/create-a-page","docId":"contribute-to-docs/tutorial-basics/create-a-page"},{"type":"link","label":"Create a Document","href":"/zh/contribute-to-docs/tutorial-basics/create-a-document","docId":"contribute-to-docs/tutorial-basics/create-a-document"},{"type":"link","label":"Create a Blog Post","href":"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post","docId":"contribute-to-docs/tutorial-basics/create-a-blog-post"},{"type":"link","label":"Markdown Features","href":"/zh/contribute-to-docs/tutorial-basics/markdown-features","docId":"contribute-to-docs/tutorial-basics/markdown-features"},{"type":"link","label":"Congratulations","href":"/zh/contribute-to-docs/tutorial-basics/congratulations","docId":"contribute-to-docs/tutorial-basics/congratulations"}],"href":"/zh/category/tutorial---basics"},{"type":"category","label":"Tutorial - Extras","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manage Docs Versions","href":"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions","docId":"contribute-to-docs/tutorial-extras/manage-docs-versions"},{"type":"link","label":"Translate your site","href":"/zh/contribute-to-docs/tutorial-extras/translate-your-site","docId":"contribute-to-docs/tutorial-extras/translate-your-site"}],"href":"/zh/category/tutorial---extras"}],"href":"/zh/category/contribute"}]},"docs":{"connect/about":{"id":"connect/about","title":"About Unraid Connect","description":"What is Unraid Connect?","sidebar":"unraidSidebar"},"connect/help":{"id":"connect/help","title":"Unraid Connect Help","description":"How to Install","sidebar":"unraidSidebar"},"connect/remote-access":{"id":"connect/remote-access","title":"Remote Access","description":"The Remote Access feature","sidebar":"unraidSidebar"},"contribute-to-docs/intro":{"id":"contribute-to-docs/intro","title":"Contributing to Unraid Documentation","description":"Contribute to a Docs Page that already Exists","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/congratulations":{"id":"contribute-to-docs/tutorial-basics/congratulations","title":"Congratulations","description":"You have just learned the basics of Docusaurus and made some changes to the initial template.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-blog-post":{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-document":{"id":"contribute-to-docs/tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/create-a-page":{"id":"contribute-to-docs/tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-basics/markdown-features":{"id":"contribute-to-docs/tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/manage-docs-versions":{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs.","sidebar":"unraidSidebar"},"contribute-to-docs/tutorial-extras/translate-your-site":{"id":"contribute-to-docs/tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French.","sidebar":"unraidSidebar"},"docs-home":{"id":"docs-home","title":"Home","description":"Unraid Documentation","sidebar":"unraidSidebar"},"legacy/Articles/dual-boot-unraid-and-windows":{"id":"legacy/Articles/dual-boot-unraid-and-windows","title":"Dual Booting Windows & Unraid","description":"This procedure is intended to help someone with moderate Linux","sidebar":"unraidSidebar"},"legacy/Articles/expanding-windows-vm-vdisk-partitions":{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","title":"Expanding Windows VM VDisk Partitions","description":"Overview","sidebar":"unraidSidebar"},"legacy/Articles/upgrading-to-unraid-6":{"id":"legacy/Articles/upgrading-to-unraid-6","title":"Upgrading to Unraid 6","description":"Before upgrading, we highly recommend making a complete back up of your","sidebar":"unraidSidebar"},"legacy/FAQ/cache-disk":{"id":"legacy/FAQ/cache-disk","title":"Cache Disk","description":"Important! This page is a basic introduction to the Unraid Cache","sidebar":"unraidSidebar"},"legacy/FAQ/check-disk-filesystems":{"id":"legacy/FAQ/check-disk-filesystems","title":"Checking and fixing file systems","description":"Is this the right page?","sidebar":"unraidSidebar"},"legacy/FAQ/check-harddrive-speed":{"id":"legacy/FAQ/check-harddrive-speed","title":"Check Harddrive Speed","description":"The native Linux command hdparm (Hard Disk Parameters) can be used","sidebar":"unraidSidebar"},"legacy/FAQ/console":{"id":"legacy/FAQ/console","title":"Console","description":"Knowledgeable authors and editors are heartily welcomed! Please help","sidebar":"unraidSidebar"},"legacy/FAQ/Parity":{"id":"legacy/FAQ/Parity","title":"Parity","description":"Parity is used by Unraid to protect against data loss. If a drive in the","sidebar":"unraidSidebar"},"legacy/FAQ/parity-swap-procedure":{"id":"legacy/FAQ/parity-swap-procedure","title":"The Parity Swap Procedure","description":"_First release, tested only on v6.1 & 6.7.2_","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-a-data-drive":{"id":"legacy/FAQ/replacing-a-data-drive","title":"Replacing a Data Drive","description":"This page describes how to replace an Unraid array data drive. Why","sidebar":"unraidSidebar"},"legacy/FAQ/replacing-multiple-data-drives":{"id":"legacy/FAQ/replacing-multiple-data-drives","title":"Replacing Multiple Data Drives with a Single Larger Drive","description":"Problem: You want to consolidate several smaller drives onto a new and","sidebar":"unraidSidebar"},"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing":{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","title":"Setting Up CPU and Board Temperature Sensing","description":"This page is designed to help you obtain your CPU and motherboard","sidebar":"unraidSidebar"},"legacy/FAQ/setup-sleep-and-wake-on-lan":{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","title":"Setup Sleep (S3) and Wake on Lan (WOL)","description":"The following are my notes for setting up my Unraid server to sleep to","sidebar":"unraidSidebar"},"legacy/FAQ/shrink-array":{"id":"legacy/FAQ/shrink-array","title":"Shrink Array","description":"Note: this page has been tested for v6,","sidebar":"unraidSidebar"},"legacy/FAQ/terminal-access":{"id":"legacy/FAQ/terminal-access","title":"Terminal Access","description":"What is \\"Terminal access\\"?","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-from-a-network-share-to-unraid":{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","title":"Transferring Files from a Network Share to Unraid","description":"Open a terminal session with SSH or Telnet","sidebar":"unraidSidebar"},"legacy/FAQ/transferring-files-within-the-unraid-server":{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","title":"Transferring Files Within the Unraid Server","description":"If you are using Windows Explorer to move files between drives, you are","sidebar":"unraidSidebar"},"legacy/FAQ/understanding-smart-reports":{"id":"legacy/FAQ/understanding-smart-reports","title":"Understanding SMART Reports","description":"under\xa0construction,\xa0only\xa0slightly\xa0usable\xa0so\xa0far","sidebar":"unraidSidebar"},"legacy/FAQ/usb-flash-drive-preparation":{"id":"legacy/FAQ/usb-flash-drive-preparation","title":"USB Flash Drive Preparation","description":"USB Flash Drives","sidebar":"unraidSidebar"},"unraid-os/faq/licensing-faq":{"id":"unraid-os/faq/licensing-faq","title":"Licensing","description":"Is Pricing for Unraid OS \\"one time\\"? Are There Additional Fees for OS Updates?","sidebar":"unraidSidebar"},"unraid-os/faq/os-faq":{"id":"unraid-os/faq/os-faq","title":"OS","description":"I Need Help with a Build / System Configuration. Where do I go?","sidebar":"unraidSidebar"},"unraid-os/faq/redeem-license-activation-code":{"id":"unraid-os/faq/redeem-license-activation-code","title":"\u8d2d\u4e70\u5e76\u6536\u5230\u6fc0\u6d3b\u7801\u540e\u5982\u4f55\u5151\u6362\u60a8\u7684\u6fc0\u6d3b\u7801","description":"\u9996\u5148\uff0c\u6309\u7167 \u5165\u95e8\u6307\u5357 \u8bbe\u7f6e\u597d","sidebar":"unraidSidebar"},"unraid-os/faq/unraid-account":{"id":"unraid-os/faq/unraid-account","title":"Unraid Account","description":"What is an Unraid.net Account?","sidebar":"unraidSidebar"},"unraid-os/guides/configuring-time-machine":{"id":"unraid-os/guides/configuring-time-machine","title":"Apple Time Machine","description":"Guide: Setting up a Time Machine Share on your Unraid Server","sidebar":"unraidSidebar"},"unraid-os/guides/wol-setup-for-unraid":{"id":"unraid-os/guides/wol-setup-for-unraid","title":"How To Setup Wake On LAN (WOL) for UNRAID","description":"(assuming onboard NIC and WOL activated in motherboard\'s BIOS)","sidebar":"unraidSidebar"},"unraid-os/manual/additional-settings":{"id":"unraid-os/manual/additional-settings","title":"Additional Settings","description":"While Unraid is configured to work automatically, you may wish to","sidebar":"unraidSidebar"},"unraid-os/manual/applications":{"id":"unraid-os/manual/applications","title":"Community Applications","description":"This section discusses running applications on an Unraid server or","sidebar":"unraidSidebar"},"unraid-os/manual/changing-the-flash-device":{"id":"unraid-os/manual/changing-the-flash-device","title":"Changing the Flash Device","description":"There are two ways to swap out your USB flash device. If you are using a","sidebar":"unraidSidebar"},"unraid-os/manual/docker-management":{"id":"unraid-os/manual/docker-management","title":"Docker Management","description":"Docker is a technology that allows users to provide each application","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/getting-started":{"id":"unraid-os/manual/getting-started/getting-started","title":"Getting Started","description":"In this guide, we will be covering how to prepare your flash device,","sidebar":"unraidSidebar"},"unraid-os/manual/getting-started/manual-install-method":{"id":"unraid-os/manual/getting-started/manual-install-method","title":"Manual Install Method","description":"If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,","sidebar":"unraidSidebar"},"unraid-os/manual/multi-language":{"id":"unraid-os/manual/multi-language","title":"Multi-Language Support","description":"Introduction","sidebar":"unraidSidebar"},"unraid-os/manual/security/data-encryption":{"id":"unraid-os/manual/security/data-encryption","title":"Data Encryption","description":"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.","sidebar":"unraidSidebar"},"unraid-os/manual/security/flash-drive":{"id":"unraid-os/manual/security/flash-drive","title":"Flash Drive","description":"The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.","sidebar":"unraidSidebar"},"unraid-os/manual/security/good-practices":{"id":"unraid-os/manual/security/good-practices","title":"Good Practices","description":"We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.","sidebar":"unraidSidebar"},"unraid-os/manual/security/secure-webgui-ssl":{"id":"unraid-os/manual/security/secure-webgui-ssl","title":"Securing webGUI connections (SSL)","description":"As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let\'s Encrypt.","sidebar":"unraidSidebar"},"unraid-os/manual/security/security":{"id":"unraid-os/manual/security/security","title":"Security","description":"An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.","sidebar":"unraidSidebar"},"unraid-os/manual/security/vpn":{"id":"unraid-os/manual/security/vpn","title":"VPN","description":"Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/create-a-share":{"id":"unraid-os/manual/shares/create-a-share","title":"Create a new share","description":"When you create a new share, plan ahead.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/delete-a-share":{"id":"unraid-os/manual/shares/delete-a-share","title":"Delete a share","description":"To delete a share on your Unraid server the share must contain no data.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/disk-shares":{"id":"unraid-os/manual/shares/disk-shares","title":"Disk shares","description":"Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/network-access":{"id":"unraid-os/manual/shares/network-access","title":"Network access","description":"Communication protocols","sidebar":"unraidSidebar"},"unraid-os/manual/shares/shares":{"id":"unraid-os/manual/shares/shares","title":"Shares","description":"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.","sidebar":"unraidSidebar"},"unraid-os/manual/shares/user-shares":{"id":"unraid-os/manual/shares/user-shares","title":"User shares","description":"Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.","sidebar":"unraidSidebar"},"unraid-os/manual/storage-management":{"id":"unraid-os/manual/storage-management","title":"Storage Management","description":"To assign devices to","sidebar":"unraidSidebar"},"unraid-os/manual/tools":{"id":"unraid-os/manual/tools","title":"Tools","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/troubleshooting":{"id":"unraid-os/manual/troubleshooting","title":"Troubleshooting","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/upgrade-instructions":{"id":"unraid-os/manual/upgrade-instructions","title":"Upgrading Unraid","description":"Prerequisites","sidebar":"unraidSidebar"},"unraid-os/manual/users":{"id":"unraid-os/manual/users","title":"Users","description":"THIS SECTION IS STILL UNDER CONSTRUCTION","sidebar":"unraidSidebar"},"unraid-os/manual/vm-management":{"id":"unraid-os/manual/vm-management","title":"Managing VMs","description":"Overview","sidebar":"unraidSidebar"},"unraid-os/manual/vm-support":{"id":"unraid-os/manual/vm-support","title":"VM Support","description":"Unraid 6 currently supports the virtualization of nearly any 64-bit","sidebar":"unraidSidebar"},"unraid-os/manual/what-is-unraid":{"id":"unraid-os/manual/what-is-unraid","title":"What is Unraid?","description":"Unraid\xae is an embedded operating system that is designed to provide you","sidebar":"unraidSidebar"},"unraid-os/manual/zfs/placeholder":{"id":"unraid-os/manual/zfs/placeholder","title":"About","description":"Please add guides on how to use and configure ZFS in this subfolder","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.0":{"id":"unraid-os/release-notes/6.10.0","title":"6.10.0","description":"Version 6.10.0 2022-05-07","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.1":{"id":"unraid-os/release-notes/6.10.1","title":"6.10.1","description":"Version 6.10.1 2022-05-21","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.2":{"id":"unraid-os/release-notes/6.10.2","title":"6.10.2","description":"Version 6.10.2 2022-05-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.10.3":{"id":"unraid-os/release-notes/6.10.3","title":"6.10.3","description":"Version 6.10.3 2022-06-14","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.0":{"id":"unraid-os/release-notes/6.11.0","title":"6.11.0","description":"Version 6.11.0 2022-09-23","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.1":{"id":"unraid-os/release-notes/6.11.1","title":"6.11.1","description":"Version 6.11.1 2022-10-06","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.2":{"id":"unraid-os/release-notes/6.11.2","title":"6.11.2","description":"Version 6.11.2 2022-11-04","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.3":{"id":"unraid-os/release-notes/6.11.3","title":"6.11.3","description":"Version 6.11.3 2022-11-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.4":{"id":"unraid-os/release-notes/6.11.4","title":"6.11.4","description":"Version 6.11.4 2022-11-18","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.11.5":{"id":"unraid-os/release-notes/6.11.5","title":"6.11.5","description":"Version 6.11.5 2022-11-20","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.0":{"id":"unraid-os/release-notes/6.12.0","title":"Version 6.12.0 2023-06-14","description":"Upgrade notes","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.1":{"id":"unraid-os/release-notes/6.12.1","title":"Version 6.12.1 2023-06-20","description":"Changes vs. 6.12.0","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.2":{"id":"unraid-os/release-notes/6.12.2","title":"Version 6.12.2 2023-06-29","description":"Changes vs. 6.12.1","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.12.3":{"id":"unraid-os/release-notes/6.12.3","title":"Version 6.12.3 2023-07-14","description":"Changes vs. 6.12.2","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.0":{"id":"unraid-os/release-notes/6.9.0","title":"6.9.0","description":"Version 6.9.0 2021-02-27","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.1":{"id":"unraid-os/release-notes/6.9.1","title":"6.9.1","description":"Version 6.9.1 2021-03-08","sidebar":"unraidSidebar"},"unraid-os/release-notes/6.9.2":{"id":"unraid-os/release-notes/6.9.2","title":"6.9.2","description":"Version 6.9.2 2021-04-07","sidebar":"unraidSidebar"}}}')}}]); \ No newline at end of file diff --git a/zh/assets/js/9d23aec8.8bf37886.js b/zh/assets/js/9d23aec8.8bf37886.js new file mode 100644 index 000000000..d0e54f2f8 --- /dev/null +++ b/zh/assets/js/9d23aec8.8bf37886.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1754],{4137:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>d});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),p=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},h=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,h=i(e,["components","mdxType","originalType","parentName"]),c=p(a),u=n,d=c["".concat(s,".").concat(u)]||c[u]||m[u]||o;return a?r.createElement(d,l(l({ref:t},h),{},{components:a})):r.createElement(d,l({ref:t},h))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:n,l[1]=i;for(var p=2;p<o;p++)l[p]=a[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},6419:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=a(7462),n=(a(7294),a(4137));const o={sidebar_position:6},l="Delete a share",i={unversionedId:"unraid-os/manual/shares/delete-a-share",id:"unraid-os/manual/shares/delete-a-share",title:"Delete a share",description:"To delete a share on your Unraid server the share must contain no data.",source:"@site/docs/unraid-os/manual/shares/delete-a-share.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/delete-a-share",permalink:"/zh/unraid-os/manual/shares/delete-a-share",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/delete-a-share.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"unraidSidebar",previous:{title:"Create a new share",permalink:"/zh/unraid-os/manual/shares/create-a-share"},next:{title:"Overview",permalink:"/zh/unraid-os/manual/what-is-unraid"}},s={},p=[{value:"Delete an empty share",id:"delete-an-empty-share",level:2},{value:"Delete a share that contains data",id:"delete-a-share-that-contains-data",level:2}],h={toc:p},c="wrapper";function m(e){let{components:t,...a}=e;return(0,n.kt)(c,(0,r.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"delete-a-share"},"Delete a share"),(0,n.kt)("p",null,"To delete a share on your Unraid server the share must contain no data."),(0,n.kt)("h2",{id:"delete-an-empty-share"},"Delete an empty share"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted. Select ",(0,n.kt)("strong",{parentName:"li"},"Done"),".")),(0,n.kt)("h2",{id:"delete-a-share-that-contains-data"},"Delete a share that contains data"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Apps"),"."),(0,n.kt)("li",{parentName:"ol"},"Install a file management plugin from Community, such as Dynamix File Manager."),(0,n.kt)("li",{parentName:"ol"},"Go to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive."),(0,n.kt)("li",{parentName:"ol"},"If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion."),(0,n.kt)("li",{parentName:"ol"},"Delete the data or move it to another share on the server."),(0,n.kt)("li",{parentName:"ol"},"Return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"),"."),(0,n.kt)("li",{parentName:"ol"},"Select the share you want to delete. This will open the share settings. If no data is left in the share, a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox is available."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," checkbox. The ",(0,n.kt)("strong",{parentName:"li"},"Apply")," button switches to a ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"Select the ",(0,n.kt)("strong",{parentName:"li"},"Delete")," button."),(0,n.kt)("li",{parentName:"ol"},"The system confirms the share has been deleted."),(0,n.kt)("li",{parentName:"ol"},"Select ",(0,n.kt)("strong",{parentName:"li"},"Done")," to return to ",(0,n.kt)("strong",{parentName:"li"},"Shares"))),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/a78d85c7.4986ff98.js b/zh/assets/js/a78d85c7.4986ff98.js deleted file mode 100644 index a10b313c2..000000000 --- a/zh/assets/js/a78d85c7.4986ff98.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,i=function(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=i,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,o(o({ref:t},c),{},{components:n})):a.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:i,o[1]=s;for(var u=2;u<r;u++)o[u]=n[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}p.displayName="MDXCreateElement"},5536:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),i=(n(7294),n(4137));const r={},o="Security",s={unversionedId:"unraid-os/manual/security",id:"unraid-os/manual/security",title:"Security",description:"This section covers various security-related aspects of Unraid",source:"@site/docs/unraid-os/manual/security.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/security",permalink:"/zh/unraid-os/manual/security",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Manual Install Method",permalink:"/zh/unraid-os/manual/getting-started/manual-install-method"},next:{title:"Tools",permalink:"/zh/unraid-os/manual/tools"}},l={},u=[{value:"Good Practices",id:"good-practices",level:2},{value:"Set a strong root password",id:"set-a-strong-root-password",level:3},{value:"Review port mappings on your router",id:"review-port-mappings-on-your-router",level:3},{value:"Never ever ever put your server in the DMZ",id:"never-ever-ever-put-your-server-in-the-dmz",level:3},{value:"Consider setting shares to private with users and passwords",id:"consider-setting-shares-to-private-with-users-and-passwords",level:3},{value:"Don't expose the Flash share, and if you do, make it private",id:"dont-expose-the-flash-share-and-if-you-do-make-it-private",level:3},{value:"Keep your server up-to-date",id:"keep-your-server-up-to-date",level:3},{value:"Use a secure method for remote administration",id:"use-a-secure-method-for-remote-administration",level:3},{value:"Securing webGui connections (SSL)",id:"securing-webgui-connections-ssl",level:2},{value:"A few details before we begin",id:"a-few-details-before-we-begin",level:3},{value:"How would you like to access the Unraid webGui while on your LAN?",id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan",level:3},{value:"Http only",id:"http-only",level:4},{value:"Https with Self-signed certificate",id:"https-with-self-signed-certificate",level:4},{value:"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable",id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable",level:4},{value:"Https with Myunraid.net certificate - with no fallback URL",id:"https-with-myunraidnet-certificate---with-no-fallback-url",level:4},{value:"Redirects",id:"redirects",level:3},{value:"Unraid Connect Remote Access",id:"unraid-connect-remote-access",level:3},{value:"Custom Certificates",id:"custom-certificates",level:3},{value:"Https with Custom certificate - with option to have Unraid Connect Remote Access",id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access",level:4},{value:"Data Encryption",id:"data-encryption",level:2},{value:"Flash Drive",id:"flash-drive",level:2},{value:"Backups",id:"backups",level:3},{value:"Network Access",id:"network-access",level:3},{value:"Permissions",id:"permissions",level:3},{value:"VPN",id:"vpn",level:2},{value:"Router",id:"router",level:3},{value:"OpenVPN",id:"openvpn",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Overview",id:"overview",level:4},{value:"Incoming VPN Connections",id:"incoming-vpn-connections",level:4},{value:"Prerequisites",id:"prerequisites",level:5},{value:"Setting up the Unraid side of the VPN tunnel",id:"setting-up-the-unraid-side-of-the-vpn-tunnel",level:5},{value:"Defining a Peer (client)",id:"defining-a-peer-client",level:5},{value:"Caution",id:"caution",level:6},{value:"Configuring a Peer (client)",id:"configuring-a-peer-client",level:5},{value:"About DNS",id:"about-dns",level:5},{value:"Complex Networks",id:"complex-networks",level:5},{value:"Troubleshooting WireGuard",id:"troubleshooting-wireguard",level:5},{value:"Outgoing VPN Connections",id:"outgoing-vpn-connections",level:4},{value:"Commercial VPN Providers",id:"commercial-vpn-providers",level:5},{value:"Configuring VPN tunneled access",id:"configuring-vpn-tunneled-access",level:5},{value:"Testing the tunnel",id:"testing-the-tunnel",level:5},{value:"Support",id:"support",level:4}],c={toc:u},h="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(h,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"security"},"Security"),(0,i.kt)("p",null,"This section covers various security-related aspects of Unraid"),(0,i.kt)("h2",{id:"good-practices"},"Good Practices"),(0,i.kt)("p",null,"An Unraid server is likely to contain data that is sensitive or that a\nuser would hate to lose. Since most users will have their home network\nconnected to the internet then precautions should be taken to avoid an\nUnraid server being compromised by malicious actors trying to access\nthem remotely."),(0,i.kt)("p",null,"The following simple guidelines will help avoid many common pitfalls\nthat some user encounter regarding the security of their Unraid servers."),(0,i.kt)("p",null,"Review the below recommendations on your server(s) to ensure they are\nsafe."),(0,i.kt)("p",null,"There is also a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104669-warning-unraid-servers-exposed-to-the-internet-are-being-hacked/"},"forum\nthread"),"\nthat discusses this topic."),(0,i.kt)("h3",{id:"set-a-strong-root-password"},"Set a strong root password"),(0,i.kt)("p",null,"Similar to many routers, Unraid systems do not have a password set by\ndefault. This is to ensure you can quickly and easily access the\nmanagement console immediately after initial installation. However, this\ndoesn't mean you shouldn't set one. Doing this is simple. Just\nnavigate to the Users tab and click on root. Now set a password. From\nthen on, you will be required to authenticate anytime you attempt to\nlogin to the webGui."),(0,i.kt)("p",null,"In addition, there is a plugin available in Community Apps called\n",(0,i.kt)("em",{parentName:"p"},"Dynamix Password Validator"),". This plugin will provide guidance on how\nstrong of a password you're creating based on complexity rules (how\nmany capital vs. lowercase letters, numbers, symbols, and overall\npassword length are used to judge this). Consider installing this for\nextra guidance on password strength. Once installed it is available in\nthe settings for any user to give guidance on the strength of any\npassword you type in."),(0,i.kt)("p",null,"You could also use ",(0,i.kt)("a",{parentName:"p",href:"https://bitwarden.com/password-strength/"},"this web\npage")," to get a very quick\nassessment of the strength of any specific password."),(0,i.kt)("h3",{id:"review-port-mappings-on-your-router"},"Review port mappings on your router"),(0,i.kt)("p",null,"Forwarding ports to your server is required for specific services that\nyou want to be Internet-accessible such as Plex, FTP servers, game\nservers, VoIP servers, etc. But forwarding the wrong ports can expose\nyour server to significant security risk. Here are just a few ports you\nshould be extra careful with when forwarding:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 80"),": Used to access the webGui without SSL (unless you've\nrebound access to another port on the Management Access settings\npage). Forwarding this port by default will allow you to access the\nwebGui remotely, but without SSL securing the connection, devices in\nbetween your browser and the server could \"sniff\" the packets to\nsee what you're doing. If you want to make the webGui remotely\naccessible, install the ",(0,i.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," plugin, which can provide a\nsecure remote access solution that utilizes SSL to ensure your\nconnection is fully encrypted.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 443"),": Used to access the webGui with SSL. This is only\nbetter than port 80 if you have a root password set. If no root\npassword is set and you forward this port, unauthorized users can\nconnect to your webGui and have full access to your server. In\naddition, if you forward this port without using the ",(0,i.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect"),"\nplugin, attempts to connect to the webGui through a browser will\npresent a security warning due to the lack of an SSL certificate.\nConsider making life easier for yourself and utilize the ",(0,i.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect"),"\nplugin to enable simple, safe, and secure remote access to your\nUnraid systems.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 445"),": Used for SMB (shares). If you forward this port to\nyour server, any public shares can be connected to by any user over\nthe internet. Generally speaking, it is never advisable to expose\nSMB shares directly over the internet. If you need the ability to\naccess your shares remotely, we suggest utilizing a WireGuard VPN to\ncreate a secure tunnel between your device and the server. In\naddition, if the flash device itself is exported using SMB and this\nport is forwarded, its contents can easily be deleted and your paid\nkey could easily be stolen. Just don't do this.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 111/2049:")," Used for NFS (shares). While NFS is disabled by\ndefault, if you are making use of this protocol, just make sure you\naren't forwarding these ports through your router. Similar to SMB,\njust utilize WireGuard to create a secure tunnel from any remote\ndevices that need to connect to the server over NFS.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Port 22/23:")," Used by Telnet and SSH for console access.\nEspecially dangerous for users that don't have a root password set.\nSimilar to SMB, we don't recommend forwarding these ports at all,\nbut rather, suggest users leverage a WireGuard VPN connection for\nthe purposes of connecting using either of these protocols.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Ports in the 57xx range:")," These ports are generally used by VMs\nfor VNC access. While you can forward these ports to enable VNC\naccess remotely for your VMs, the better and easier way to do this\nis through installing the ",(0,i.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," plugin.\nThis ensures that those connections\nare secure via SSL and does not require individual ports to be\nforwarded for each VM."))),(0,i.kt)("p",null,"Generally speaking, you really shouldn't need to forward many ports to\nyour server. If you see a forwarding rule you don't understand,\nconsider removing it, see if anyone complains, and if so, you can always\nput it back."),(0,i.kt)("h3",{id:"never-ever-ever-put-your-server-in-the-dmz"},"Never ever ever put your server in the DMZ"),(0,i.kt)("p",null,'No matter how locked down you think you have your server, it is never\nadvisable to place it in the DMZ on your network. By doing so, you are\nessentially forwarding every port on your public IP address to your\nserver directly, allowing all locally accessible services to be remotely\naccessible as well. Regardless of how "locked down" you think you\nactually have the server, placing it in the DMZ exposes it to\nunnecessary risks. Never ever do this.'),(0,i.kt)("h3",{id:"consider-setting-shares-to-private-with-users-and-passwords"},"Consider setting shares to private with users and passwords"),(0,i.kt)("p",null,"The convenience of password-less share access is pretty great. We know\nthat and its why we don't require you to set passwords for your shares.\nHowever, there is a security risk posed to your data when you do this,\neven if you don't forward any ports to your server and have a strong\nroot password. If another device on your network such as a PC, Mac,\nphone, tablet, IoT device, etc. were to have its security breached, it\ncould be used to make a local connection to your server's shares. By\ndefault, shares are set to be publicly readable/writeable, which means\nthose rogue devices can be used to steal, delete, or encrypt the data\nwithin them. In addition, malicious users could also use this method to\nput data on your server that you don't want. It is for these reasons\nthat if you are going to create public shares, we highly recommend\nsetting access to read-only. Only authorized users with a strong\npassword should be able to write data to your shares."),(0,i.kt)("h3",{id:"dont-expose-the-flash-share-and-if-you-do-make-it-private"},"Don't expose the Flash share, and if you do, make it private"),(0,i.kt)("p",null,"The flash device itself can be exposed over SMB. This is convenient if\nyou need to make advanced changes to your system such as modifying the\ngo file in the config directory. However, the flash device itself\ncontains the files needed to boot Unraid as well as your configuration\ndata (disk assignments, shares, etc). Exposing this share publicly can\nbe extremely dangerous, so we advise against doing so unless you\nabsolutely have to, and when you do, it is advised to do so privately,\nrequiring a username and password to see and modify the contents."),(0,i.kt)("h3",{id:"keep-your-server-up-to-date"},"Keep your server up-to-date"),(0,i.kt)("p",null,"Regardless of what other measures you take, keeping your server current\nwith the latest release(s) is vital to ensuring security. There are\nconstant security notices (CVEs) published for the various components\nused in Unraid OS. We here at Lime Technology do our best to ensure all\nvulnerabilities are addressed in a timely manner with software updates.\nHowever, these updates are useless to you if you don't apply them in a\ntimely manner as well. Keeping your OS up-to-date is easy. Just navigate\nto Tools -",">"," Update OS to check for and apply any updates. You can\nconfigure notifications to prompt you when a new update is available\nfrom the Settings -",">"," Notifications page."),(0,i.kt)("h3",{id:"use-a-secure-method-for-remote-administration"},"Use a secure method for remote administration"),(0,i.kt)("p",null,"It is possible to set up an Unraid server so that it can safely be\nadministered remotely but this should never be done by simply exposing\nexposing the Unraid webGui to the internet."),(0,i.kt)("p",null,"A frequent way to secure such a connection is to use VPN technology.\nUnraid includes as standard the WireGuard VPN and an OpenVPN plugin and\nDocker container is also available. In addition many routers have built\nin VPN support which can be used."),(0,i.kt)("p",null,"An alternative for making the webGui remotely accessible is to install\nthe ",(0,i.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," plugin, which can provide a secure remote access solution\nthat utilizes SSL to ensure your connection is fully encrypted."),(0,i.kt)("h2",{id:"securing-webgui-connections-ssl"},"Securing webGui connections (SSL)"),(0,i.kt)("p",null,"Using wildcard SSL Certificates provisioned by ",(0,i.kt)("a",{parentName:"p",href:"https://letsencrypt.org/"},"Let's\nEncrypt"),", Unraid OS 6.10 improves the security\nof the SSL implementation for both local access and ",(0,i.kt)("a",{parentName:"p",href:"/zh/connect/remote-access"},"Unraid Connect Remote Access"),"."),(0,i.kt)("h3",{id:"a-few-details-before-we-begin"},"A few details before we begin"),(0,i.kt)("p",null,"Some terms:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"servername")," can be changed on the Settings -",">",' Identification\npage. It defaults to "tower".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"localTLD")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "local".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "No".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTP port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "80". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTP port]")," to any of the http URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local:8080"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," can be changed on the Settings -",">",' Management Access\npage. It defaults to "443". If you change this, add ',(0,i.kt)("inlineCode",{parentName:"li"},":[HTTPS port]")," to any of the https URLs in the scenarios below. (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local:3443"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"certificate")," refers to either a self-signed SSL Certificate, or a\nSSL certificate issued by a Certificate Authority (Let's Encrypt)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"lan-ip")," is your server's LAN IP address with dots changed to\ndashes (example 192-168-100-1)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"wan-ip")," is your internet-facing IP address with dots changed to\ndashes (example 136-26-144-139)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"hash")," is a random 40 character hex string (160 bits) uniquely\nassigned to your server when a certificate is first issued")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Caveats of using a self-signed certificate"),": Note that browsers will\nshow a certificate error because they cannot verify the authenticity of\nself-signed certificates. All traffic will be encrypted once users\nacknowledge the browser warning."),(0,i.kt)("h3",{id:"how-would-you-like-to-access-the-unraid-webgui-while-on-your-lan"},"How would you like to access the Unraid webGui while on your LAN?"),(0,i.kt)("h4",{id:"http-only"},"Http only"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to No"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Traffic between the browser and the server will not be encrypted")),(0,i.kt)("h4",{id:"https-with-self-signed-certificate"},"Https with Self-signed certificate"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution'),(0,i.kt)("li",{parentName:"ul"},"Your URLs:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},'Unraid will manage the certificate for you. See "Caveats of using a\nself-signed certificate" above.')),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-fallback-url-if-dns-is-unavailable"},"Https with Myunraid.net certificate - with fallback URL if DNS is unavailable"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate)'),(0,i.kt)("li",{parentName:"ul"},"Leave ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to either No or Yes"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," set to No:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"http://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your primary URLs when ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' set to Yes. Note that these\nURLs use a self-signed certificate (See "Caveats of using a\nself-signed certificate" above)',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.local"),")"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192.168.100.1"),")"))),(0,i.kt)("li",{parentName:"ul"},"Your alternate URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),"). This personal link\nis shown in the Certificate subject field on the Management Access\npage. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted if using https."),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"If at any point DNS resolution becomes unavailable, the alternate\nURL may not resolve. In this case use the primary URL as a fallback.")),(0,i.kt)("h4",{id:"https-with-myunraidnet-certificate---with-no-fallback-url"},"Https with Myunraid.net certificate - with no fallback URL"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' should be kept at the default of "local" unless you\ncan provide your own DNS name resolution (this is used for the\nfallback certificate if you run the ',(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl")," command mentioned\nbelow)"),(0,i.kt)("li",{parentName:"ul"},"Press ",(0,i.kt)("strong",{parentName:"li"},"Provision")),(0,i.kt)("li",{parentName:"ul"},'If DNS Rebinding is not an issue, the "Strict" option for ',(0,i.kt)("strong",{parentName:"li"},"Use\nSSL/TLS")," will be available."),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),' to Strict (this was previously called "Auto",\nbut "Strict" is more descriptive)'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),") This\npersonal link is shown in the Certificate subject field on the\nManagement Access page. If you install the optional ",(0,i.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin it will also be\nshown on the Connect dashboard ( ",(0,i.kt)("a",{parentName:"li",href:"https://connect.myunraid.net/"},"https://connect.myunraid.net/")," )"),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"Unraid will manage the certificates for you."),(0,i.kt)("li",{parentName:"ul"},"Note: If at any point DNS resolution becomes unavailable (e.g., your\nInternet goes down), use telnet, SSH or local keyboard/monitor to\nlogin. Then:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl no")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"http://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"http://[ipaddress]")),(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"use_ssl yes")," to access the webgui via\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]"),'\nusing a self-signed certificate (See\n"Caveats of using a self-signed certificate" above)'),(0,i.kt)("li",{parentName:"ul"},"Once DNS resolution is available again, change ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),"\nback to Strict")))),(0,i.kt)("h3",{id:"redirects"},"Redirects"),(0,i.kt)("p",null,"When accessing ",(0,i.kt)("inlineCode",{parentName:"p"},"http://[ipaddress]")," or\n",(0,i.kt)("inlineCode",{parentName:"p"},"http://[servername].[localTLD]")," , the behavior will change\ndepending on the value of the ",(0,i.kt)("strong",{parentName:"p"},"Use SSL/TLS")," setting:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Strict, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net")," However, this behavior\nmakes it more difficult to access your server when DNS is\nunavailable (i.e. your Internet goes down). If that happens see the\nnote under ",(0,i.kt)("inlineCode",{parentName:"li"},"HTTPS with Myunraid.net certificate - with no fallback\nURL")," above."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to Yes, you will be redirected to\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[ipaddress]")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]"),"\nas that will likely work even if your Internet goes down."),(0,i.kt)("li",{parentName:"ul"},"If ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," is set to No, then the http url will load\ndirectly.")),(0,i.kt)("p",null,"Note: for the redirects to work, you must start from http urls not https\nurls."),(0,i.kt)("h3",{id:"unraid-connect-remote-access"},"Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Install the ",(0,i.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect")," plugin"),(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Provision")," if you haven't already"),(0,i.kt)("li",{parentName:"ul"},"Regardless of the value of ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS"),", you will have the option\nto access the server using\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[lan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://192-168-100-1.a1b2c3d4e5.myunraid.net"),")."),(0,i.kt)("li",{parentName:"ul"},"Navigate to Settings -",">"," Management Access -",">"," Unraid Connect page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Allow Remote Access")," to yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you want to use. For added security we\nrecommend you choose a random port over 1000 rather than using the\ndefault of 443. i.e. something like 13856, 48653, etc"),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("strong",{parentName:"li"},"Apply")),(0,i.kt)("li",{parentName:"ul"},"Setup your router to port forward the ",(0,i.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe LAN IP address and ",(0,i.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a\nnote on the screen telling you the exact port and IP to use."),(0,i.kt)("li",{parentName:"ul"},"Press the ",(0,i.kt)("strong",{parentName:"li"},"Check"),' button. If the port is forwarded correctly you\nwill see a message saying "Your Unraid Server is reachable from the\nInternet"'),(0,i.kt)("li",{parentName:"ul"},"To access your server using Remote Access, login to the Unraid Connect\nDashboard and click the Remote Access link. The URL will be\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://[wan-ip].[hash].myunraid.net:[wan-port]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856"),").")),(0,i.kt)("h3",{id:"custom-certificates"},"Custom Certificates"),(0,i.kt)("h4",{id:"https-with-custom-certificate---with-option-to-have-unraid-connect-remote-access"},"Https with Custom certificate - with option to have Unraid Connect Remote Access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Navigate to the Settings -",">"," Management Access page"),(0,i.kt)("li",{parentName:"ul"},"Set ",(0,i.kt)("strong",{parentName:"li"},"Use SSL/TLS")," to Yes"),(0,i.kt)("li",{parentName:"ul"},"Set the ",(0,i.kt)("strong",{parentName:"li"},"LocalTLD"),' to the domain name used in the "Subject" of\nthe certificate.'),(0,i.kt)("li",{parentName:"ul"},"Your URL will be ",(0,i.kt)("inlineCode",{parentName:"li"},"https://[servername].[localTLD]")," (example:\n",(0,i.kt)("inlineCode",{parentName:"li"},"https://tower.mydomain.com"),"). You are responsible for managing DNS\nfor this URL."),(0,i.kt)("li",{parentName:"ul"},"You are responsible for managing the certificate. Upload it to\n",(0,i.kt)("inlineCode",{parentName:"li"},"/boot/config/ssl/certs/[servername]_unraid_bundle.pem")),(0,i.kt)("li",{parentName:"ul"},"The certificate must be valid for ",(0,i.kt)("inlineCode",{parentName:"li"},"[servername].[localTLD]"),"\n(example: ",(0,i.kt)("inlineCode",{parentName:"li"},"tower.mydomain.com"),"). For a wildcard cert it must be\n",(0,i.kt)("inlineCode",{parentName:"li"},"*.[localTLD]")," (example: ",(0,i.kt)("inlineCode",{parentName:"li"},"*.mydomain.com"),'). This url can be\nspecified in either the "Subject" of the certificate or one of the\n"Subject Alternative Name" fields (prior to 6.10.3, only the\n"Subject" field was used). If you find that Unraid deletes your\ncertificate, it is because the server\'s url is not specified in the\ncertificate.'),(0,i.kt)("li",{parentName:"ul"},"All traffic will be encrypted"),(0,i.kt)("li",{parentName:"ul"},"(optional) If desired, see the Unraid Connect Remote Access section\nabove")),(0,i.kt)("h2",{id:"data-encryption"},"Data Encryption"),(0,i.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the\narray. It does this using the Linux LUKS (Linux Unified Key System)\nencryption modules."),(0,i.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a\nstandard on-disk-format, it does not only facilitate compatibility among\ndistributions but also provides secure management of multiple user\npasswords. In contrast to an existing solution, LUKS stores all\nnecessary setup information in the partition header, enabling the user\nto transport or migrate their data seamlessly."),(0,i.kt)("p",null,"The home page for LUKS can be found\n",(0,i.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,i.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can\nbe read on any standard Linux system even when removed from Unraid as\nlong as one has the key phrase/file needed to unlock the drive."),(0,i.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting\nall drives being used by Unraid. The key for the encryption can be\neither a pass phrase, or provided via a key file. When using a key file\nit is a good idea to use something like an image as there is no chance\nof that ever being guessed. You must make sure that you do not lose the\nencryption key as without it you will not be able to access the data on\nencrypted drives."),(0,i.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the\ndrive)."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Stop the array"),(0,i.kt)("li",{parentName:"ul"},"Click on the drive on the Main tab"),(0,i.kt)("li",{parentName:"ul"},"change the file system to the encrypted type that you want to use"),(0,i.kt)("li",{parentName:"ul"},"click Apply to commit the change"),(0,i.kt)("li",{parentName:"ul"},"click Done to return to the Main tab"),(0,i.kt)("li",{parentName:"ul"},"the drive will now show as unmountable and the option to format\nunmountable drives will be present. Check that the drive is the one\nyou are expecting to be encrypted and if it is correct go ahead and\nformat it.")),(0,i.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the\nencryption key when starting the array. Once this has been done and the\narray successfully started then you can access the data without being\naware of the fact that any drive is encrypted."),(0,i.kt)("p",null,"CAUTION: Encrypting data is good from a security perspective, but users\nshould be aware of the fact that it can complicate recovering from\ncertain types of hardware failure without data loss. On that basis only\nuse encryption if you feel you have a real need for it, and ideally make\nsure you have a good system for backing up any important data."),(0,i.kt)("h2",{id:"flash-drive"},"Flash Drive"),(0,i.kt)("p",null,"The flash drive that is used to boot Unraid is important as it contains\nall the configuration information relating to an Unraid server. You\ntherefore want to consider the security of the information it contains\nand how it is accessed."),(0,i.kt)("h3",{id:"backups"},"Backups"),(0,i.kt)("p",null,"If a flash drive ever fails for any reason then as long as you have a\nbackup getting the Unraid server back into normal operation is an easy\nprocess. It is recommended that you make a backup whenever you make a\nsignificant configuration change."),(0,i.kt)("p",null,"You easily achieve this from the Unraid GUI by:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Click on the flash drive on the Main tab in the GUI."),(0,i.kt)("li",{parentName:"ol"},"In the ",(0,i.kt)("em",{parentName:"li"},"Flash Device Settings")," section click on the ",(0,i.kt)("strong",{parentName:"li"},"Flash Backup"),"\nbutton."),(0,i.kt)("li",{parentName:"ol"},"The system will now start creating a zip file that is a backup of\nthe contents of the flash drive"),(0,i.kt)("li",{parentName:"ol"},"When the zip file has been created your browser should prompt you to\nprovide the location where you want the backup saved to. It is\nrecommended that this is a location off the Unraid server so that it\nis available even when the Unraid server is not operational.")),(0,i.kt)("p",null,"If you later need to recreate your flash drive for any reason this\nbackup can be used as input to the Limetech USB Creator tool."),(0,i.kt)("h3",{id:"network-access"},"Network Access"),(0,i.kt)("p",null,"The flash drive can have similar settings applied to it to control\naccess over the network as is the case for other shares on an Unraid\nsystem. The difference is that you set this up by clicking on the\n",(0,i.kt)("strong",{parentName:"p"},"flash")," device on the ",(0,i.kt)("em",{parentName:"p"},"Main")," tab in the GUI rather than doing it via\nthe Shares tab."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network visibility"),": You can specify whether the flash drive\nshould even be accessible via the network, and if it is accessible\nwhether it should be hidden or visible to everyone."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Access rights"),": If network access is allowed you can specify any\naccess permissions that you want applied.")),(0,i.kt)("h3",{id:"permissions"},"Permissions"),(0,i.kt)("p",null,"As part of improving the security of Unraid systems, starting with\nUnraid 6.8 files on the flash drive can no longer be given execute\npermission."),(0,i.kt)("p",null,"The implication of this is that if a user has their own custom scripts\n(or programs) stored on the flash drive they can no longer be executed\nfrom that location. There are a number of ways to handle this:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Copy the files to a location from which they can be executed",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The location ",(0,i.kt)("em",{parentName:"li"},"/usr/local/bin")," is a good choice if you want the\nfiles on the default search path."),(0,i.kt)("li",{parentName:"ul"},"You can copy the files into position when booting by adding\nappropriate commands to the config/go file on the flash drive."),(0,i.kt)("li",{parentName:"ul"},"Remember to give the files execute permission after copying\nthem."))),(0,i.kt)("li",{parentName:"ul"},"For scripts precede the script name with the command that runs the\nscript (e.g. ",(0,i.kt)("em",{parentName:"li"},"bash path-to-script"),")")),(0,i.kt)("h2",{id:"vpn"},"VPN"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Unraid servers are not hardened against attack via the network so\nshould ",(0,i.kt)("em",{parentName:"strong"},"NEVER")," be exposed directly to the internet.")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"One exception is the WireGuard VPN service introduced in Unraid 6.8\nexplicitly to address secure access to/from the internet."),(0,i.kt)("li",{parentName:"ul"},"If running Docker containers are exposed to the internet then the\nsecurity of these needs to be assessed on a case-by-case basis.")),(0,i.kt)("p",null,"You may need to contact the developer of the container to determine\nhow safe it is to expose it to the internet."),(0,i.kt)("p",null,"There is a level of protection as a docker container runs in a\n'sandboxed' environment so the level of access to the content of\nyour disks is constrained to what you allow in the path mapping\nsettings for the container."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If running VMs that are exposed to the internet then you need to\napply the same security to these that you would apply to a physical\nPC attached to the local LAN.")),(0,i.kt)("p",null,"If you want to make secure connections between an Unraid server and the\nInternet then you want to use a technology known as VPN (Virtual Private\nNetwork). VPN works on a client/server model where you have a server\nthat accepts incoming connections and a client that initiates such\nconnections."),(0,i.kt)("p",null,"In simplistic terms, the idea behind VPN connections is to set up an\nencrypted 'tunnel' between the client and server ends so that no\nmalicious players can intercept or eavesdrop on your interactions. Such\ntunnels are set up so that only authorized users are able to make such\nconnections. More information on VPN as a technology can be found in\n",(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Virtual_private_network"},"this wiki\narticle")),(0,i.kt)("p",null,"There are 2 common Use Cases that Unraid users are likely to have:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access to Unraid from the Internet"),": This is by far the\ncommonest use case and many users want to be able to safely access\ntheir Unraid servers (and potentially their whole home LAN) when\naway from home. When running in this mode the server end of the VPN\nlink will either be running on the user's router (if it supports\nsuch a feature) or will be hosted on the Unraid server."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Remote Access from Unraid to the Internet"),": This is used when you\nwant applications running on Unraid to access the internet. This\ncould be to access generic internet content or to access another\nserver located remotely to the Unraid server. If in is generic\naccess to the internet then it is highly likely that the server end\nof such connection will be via a commercial VPN provider. When\nrunning in this mode Unraid will be acting as the client end of any\nVPN link.")),(0,i.kt)("p",null,"There are a wide variety of VPN solutions available both free and\ncommercial."),(0,i.kt)("h3",{id:"router"},"Router"),(0,i.kt)("p",null,"Many modern routers have a VPN server built-in as standard (typically\nbased on OpenVPN)."),(0,i.kt)("p",null,"Using your router to provide the VPN support has the great advantage of\nnot needing any other component on your home LAN to be operational for\nthe VPN to function. Once setup it should allow you to access all\ndevices on your home LAN in a similar manner to when you are directly\nconnected to the LAN."),(0,i.kt)("h3",{id:"openvpn"},"OpenVPN"),(0,i.kt)("p",null,"This has been the way that has historically been advocated to allow\nconnections to be made between an Unraid server and the internet."),(0,i.kt)("p",null,"OpenVPN is a well-established solution so if you want to use OpenVPN\nthen you can search Community Applications for a plugin or docker\ncontainer that meets your requirements. You may also find the\n",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=fpkLvnAKen0"},"SpaceInvaderOne YouTube\nvideo")," of use in setting it\nup."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"It is expected that with the introduction of WireGuard support in\nUnraid 6.8 that WireGuard will become the favored way of setting up a\nVPN connection to an Unraid server"),"."),(0,i.kt)("h3",{id:"wireguard"},"WireGuard"),(0,i.kt)("h4",{id:"overview"},"Overview"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(2602).Z,width:"128",height:"128"})),(0,i.kt)("p",null,"Unraid 6.8 introduces built-in support for WireGuard VPN connections. The\nintention is to make it as easy as possible for Unraid users to set up\nVPN connections to/from their Unraid servers."),(0,i.kt)("p",null,"Some points to note about the Unraid WireGuard implementation are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is built into Unraid so there is no need to\nadd 3rd party software to achieve a VPN connection."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service can be set to auto-start as part of the Unraid\nboot process."),(0,i.kt)("li",{parentName:"ul"},"The WireGuard service is available even if the array is not started."),(0,i.kt)("li",{parentName:"ul"},"WireGuard uses a light-weight protocol so performance tends to be\nbetter than OpenVPN.")),(0,i.kt)("p",null,"More information about WireGuard can be found on the ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},"WireGuard web\nsite"),". It should be noted that WireGuard is\nstill labeled as ''experimental'' by its developers but many users are\nalready finding that it appears to be robust enough for real-world use.\nA number of the commercial VPN services are working on adding WireGuard\nsupport so they must deem it to be mature enough for this to make sense\nto them."),(0,i.kt)("p",null,"The initial Unraid implementation includes adding the WireGuard kernel\nmodules to the standard Unraid distribution and starting the WireGuard\nservices as part of the Unraid boot process, but does not yet have the\nmanagement of WireGuard built-in. At the moment the GUI part is offered\nas a separate plugin, but it is intended that it will be integrated into\nUnraid in the future. This approach allows for quick updates and\nenhancements without dependency on Unraid version releases. The Unraid\nWireGuard GUI plugin can be installed via Community Applications, and\nwhen it is installed you will find that an entry called ",(0,i.kt)("strong",{parentName:"p"},"VPN Manager"),"\nis added to the GUI under ",(0,i.kt)("em",{parentName:"p"},"Settings-",">","Network Services")),(0,i.kt)("p",null,"Note that the Unraid WireGuard plugin is still evolving so in the event\nof a discrepancy between what is described here and the following forum\nthreads then it is likely that the thread is correct and this wiki needs\nupdating to bring it inline. These threads are also the appropriate\nplace to ask questions regarding Unraid's WireGuard implementation."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,"What can you do with WireGuard? Let's walk through each of the\nconnection types:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to server"),": Use your phone or computer to remotely\naccess your Unraid server, including:"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Unraid administration via the webgui"),(0,i.kt)("li",{parentName:"ul"},"Access dockers, VMs, and network shares as though you were\nphysically connected to the network"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote access to LAN"),': Builds on "Remote access to server",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server to server access"),": Allows two Unraid servers to connect to\neach other.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN to LAN access"),': Builds on "Server to server access",\nallowing two entire networks to communicate. May require additional\nsettings, TBD.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Server hub & spoke access"),': Builds on "Remote access to\nserver", except that all of the VPN clients can connect to each\nother as well. Note that all traffic passes through the server.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"LAN hub & spoke access"),': Builds on "Server hub & spoke access",\nallowing you to access your entire LAN as well.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"VPN tunneled access"),": Route traffic for specific Dockers and VMs\nthrough a commercial WireGuard VPN provider (see this guide)")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("strong",{parentName:"p"},"Remote tunneled access"),": Securely access the Internet from\nuntrusted networks by routing all of your traffic through the VPN\nand out Unraid's Internet connection"))),(0,i.kt)("p",null,"The following diagram attempts to show these different connection types\nin a graphical format"),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1998).Z,width:"1000",height:"655"})),(0,i.kt)("h4",{id:"incoming-vpn-connections"},"Incoming VPN Connections"),(0,i.kt)("p",null,"This section will walk through how to setup WireGuard so that your\ntrusted devices can VPN into your home network to access Unraid and the\nother systems on your network."),(0,i.kt)("h5",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You must be running Unraid 6.8 with the Dynamix WireGuard plugin\ninstalled via the ",(0,i.kt)("strong",{parentName:"p"},"Apps")," tab (Community Applications).")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Be aware that WireGuard is technically classified as experimental.\nIt has not gone through a full security audit yet and has not\nreached 1.0 status. But it is the first open-source VPN solution\nthat is extremely simple to install, fast, and designed from the\nground up to be secure.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'Understand that giving someone VPN access to your LAN is just like\ngiving them physical access to your LAN, except they have it 24x7\nwhen you aren\'t around to supervise. Only give access to people and\ndevices that you trust, and make certain that the configuration\ndetails (particularly the private keys) are not passed around\ninsecurely. Regardless of the "connection type" you choose, assume\nthat anyone who gets access to this configuration information will\nbe able to get full access to your network.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},'This guide works great for simple networks. But if you have Dockers\nwith custom IPs or VMs with strict networking requirements, please\nsee the "Complex Networks" section below.')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"Unraid will automatically configure your WireGuard clients to\nconnect to Unraid using your current public IP address, which will\nwork until that IP address changes. To future-proof the setup, you\ncan use Dynamic DNS instead. There are many ways to do this,\nprobably the easiest is described in this ",(0,i.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=9FkQ0wYpCV0"},"2 minute video from\nSpaceInvaderOne"),".")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"If your router has UPnP enabled, Unraid will be able to\nautomatically forward the port for you. If not, you will need to\nknow how to configure your router to forward a port.")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},"You will need to install WireGuard on a client system. It is\navailable for many operating systems as mentioned at ",(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/install/"},"WireGuard\nclients"),". Android or iOS make\ngood first client systems because you can get all the details via QR\ncode."))),(0,i.kt)("h5",{id:"setting-up-the-unraid-side-of-the-vpn-tunnel"},"Setting up the Unraid side of the VPN tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"First, go to Settings -",">"," Network Settings -",">",' Interface eth0. If\n"Enable bridging" is "Yes", then WireGuard will work as\ndescribed below. If bridging is disabled, then none of the "Peer\ntype of connections" that involve the local LAN will work properly.\nAs a general rule, bridging should be enabled in Unraid.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7079).Z,width:"739",height:"55"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If UPnP is enabled on your router and you want to use it in Unraid,\ngo to Settings -",">",' Management Access and confirm "Use UPnP" is set\nto Yes'),(0,i.kt)("li",{parentName:"ul"},"On Unraid go to Settings -",">"," VPN Manager")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(5372).Z,width:"969",height:"314"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give the VPN Tunnel a name, such as "MyHome VPN"'),(0,i.kt)("li",{parentName:"ul"},'Press "Generate Keypair". This will generate a set of public and\nprivate keys for Unraid. Take care not to inadvertently share the\nprivate key with anyone (such as in a screenshot like this)'),(0,i.kt)("li",{parentName:"ul"},"By default, the local endpoint will be configured with your current\npublic IP address. If you chose to setup DDNS earlier, change the IP\naddress to the DDNS address."),(0,i.kt)("li",{parentName:"ul"},"Unraid will recommend a port to use. You typically won't need to\nchange this unless you already have WireGuard running elsewhere on\nyour network."),(0,i.kt)("li",{parentName:"ul"},"Hit Apply"),(0,i.kt)("li",{parentName:"ul"},"If Unraid detects that your router supports UPnP, it will\nautomatically setup port forwarding for you:")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(7098).Z,width:"1000",height:"61"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you see a note that says "configure your router for port\nforwarding',".",'.." you will need to login to your router and setup the\nport forward as directed by the note:')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(4546).Z,width:"1000",height:"65"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Some tips for setting up the port forward in your router:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Both the external (source) and internal (target/local) ports\nshould be set to the value Unraid provides. If your router\ninterface asks you to put in a range, use the same port for both\nthe starting and ending values. Be sure to specify that it is a\nUDP port and not a TCP port."),(0,i.kt)("li",{parentName:"ul"},"For the internal (target/local) address, use the IP address of\nyour Unraid system shown in the note."),(0,i.kt)("li",{parentName:"ul"},'Google can help you find instructions for your specific router,\ni.e. "how to port forward Asus RT-AC68U"'))),(0,i.kt)("li",{parentName:"ul"},'Note that after hitting Apply, the public and private keys are\nremoved from view. If you ever need to access them, click the\n"key" icon on the right-hand side.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(6423).Z,width:"128",height:"128"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Similarly, you can access other advanced settings by pressing the\n"down chevron" on the right-hand side. They are beyond the scope\nof this guide, but you can turn on help to see what they do.'),(0,i.kt)("li",{parentName:"ul"},"In the upper right corner of the page, change the Inactive slider to\nActive to start WireGuard. You can optionally set the tunnel to\nAutostart when Unraid boots.")),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(711).Z,width:"562",height:"44"})),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"There have been cases where this step has been omitted and users\nend up wondering why the WireGuard VPN link is not working!")),(0,i.kt)("h5",{id:"defining-a-peer-client"},"Defining a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click "Add Peer"')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(8169).Z,width:"866",height:"284"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Give it a name, such as "MyAndroid"'),(0,i.kt)("li",{parentName:"ul"},'For the initial connection type, choose "Remote access to LAN".\nThis will give your device access to Unraid and other items on your\nnetwork.'),(0,i.kt)("li",{parentName:"ul"},'Click "Generate Keypair" to generate public and private keys for\nthe client. The private key will be given to the client/peer, but\ntake care not to share it with anyone else (such as in a screenshot\nlike this)'),(0,i.kt)("li",{parentName:"ul"},'For an additional layer of security, click "Generate Key" to\ngenerate a preshared key. Again, this should only be shared with\nthis client/peer.'),(0,i.kt)("li",{parentName:"ul"},"Click Apply."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Note:")," Technically, the peer should generate these keys and not\ngive the private key to Unraid. You are welcome to do that, but it\nis less convenient as the config files Unraid generates will not be\ncomplete and you will have to finish configuring the client\nmanually.")),(0,i.kt)("h6",{id:"caution"},"Caution"),(0,i.kt)("p",null,'It can be a little risky to add a new client ("peer") to WireGuard if\nyou are already connected remotely using WireGuard as adding a new peer\n',(0,i.kt)("em",{parentName:"p"},"sometimes")," toggles the WireGuard tunnel off which will render you\nunable to reconnect. This is because a configuration change is made\neffective by inactivating the tunnel with the current (old)\nconfiguration and next activating it with the updated (new)\nconfiguration. If there is any sort of configuration conflict at this\npoint the tunnel stays inactive, and you can no longer connect to the\nUnraid server"),(0,i.kt)("h5",{id:"configuring-a-peer-client"},"Configuring a Peer (client)"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Click the "eye" icon to view the peer configuration. If the button\nis not clickable, you need to apply or reset your unsaved changes\nfirst.')),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(3939).Z,width:"912",height:"108"})),(0,i.kt)("p",null,(0,i.kt)("img",{src:n(1967).Z,width:"580",height:"694"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'If you are setting up a mobile device, choose the "Create from QR\ncode" option in the mobile app and take a picture of the QR code.\nGive it a name and make the connection. The VPN tunnel starts almost\ninstantaneously, once it is up you can open a browser and connect to\nUnraid or another system on your network. Be careful not to share\nscreenshots of the QR code with anyone, or they will be able to use\nit to access your VPN.'),(0,i.kt)("li",{parentName:"ul"},"If you are setting up another type of device, download the file and\ntransfer it to the remote computer via trusted email or dropbox,\netc. Then unzip it and load the configuration into the client.\nProtect this file, anyone who has access to it will be able to\naccess your VPN.")),(0,i.kt)("h5",{id:"about-dns"},"About DNS"),(0,i.kt)("p",null,'The Dynamix WireGuard plugin includes a "Peer DNS Server" option'),(0,i.kt)("p",null,'If you are having trouble with DNS resolution on the WireGuard client,\nreturn to the VPN Manager page in Unraid and switch from Basic to\nAdvanced mode, add the IP address of your desired DNS server into the\n"Peer DNS Server" field, then install the updated config file on the\nclient. You may want to use the IP address of the router on the LAN you\nare connecting to, or you could use a globally available IP like 8.8.8.8'),(0,i.kt)("p",null,'This is required for "Remote tunneled access" mode if the client\'s\noriginal DNS server is no longer accessible after all traffic is routed\nthrough the tunnel.'),(0,i.kt)("p",null,"If you are using any of the split tunneling modes, adding a DNS server\nmay provide name resolution on the remote network, although you will\nlose name resolution on the client's local network in the process. The\nsimplest solution is to add a hosts file on the client that provides\nname resolution for both networks."),(0,i.kt)("h5",{id:"complex-networks"},"Complex Networks"),(0,i.kt)("p",null,'The instructions above should work out of the box for simple networks.\nWith "Use NAT" defaulted to Yes, all network traffic on Unraid uses\nUnraid\'s IP, and that works fine if you have a simple setup.'),(0,i.kt)("p",null,"However, if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, things may not work right (I know, kind of\nvague, but feel free to read the two WireGuard threads for examples)"),(0,i.kt)("p",null,"A partial solution is:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'In the WireGuard config, set "Use NAT" to No'),(0,i.kt)("li",{parentName:"ul"},'In your router, add a static route that lets your network access the\nWireGuard "Local tunnel network pool" through the IP address of\nyour Unraid system. For instance, for the default pool of\n10.253.0.0/24 you should add this static route:',(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)"),(0,i.kt)("li",{parentName:"ul"},"Gateway: ",(0,i.kt)("inlineCode",{parentName:"li"},"<IP address of your Unraid system>")))),(0,i.kt)("li",{parentName:"ul"},"Note that this covers the entire class B 10.253.x.x network, so you\ncan add other WireGuard tunnels without having to modify your router\nsetup again.")),(0,i.kt)("p",null,"With these changes, your network should work normally. However, your\nWireGuard clients still may not be able to access Dockers on custom IPs\nor VMs. If you find a solution to this, please ask questions in the\nforum threads mentioned earlier."),(0,i.kt)("h5",{id:"troubleshooting-wireguard"},"Troubleshooting WireGuard"),(0,i.kt)("p",null,"WireGuard is not a chatty protocol, in fact, it is designed to be\ninvisible! There aren't really any error messages if things aren't\nworking, it either works or it doesn't. It cannot be detected by a port\nscanner."),(0,i.kt)("p",null,"If you can't connect, it will mainly be an exercise in double-checking\nyour work:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Confirm that the tunnel is active (!)"),(0,i.kt)("li",{parentName:"ul"},'Confirm that your DDNS is pointed at your current public IP address,\nand is assigned to your "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},'Confirm that you forwarded the correct UDP port through your router\nto Unraid, and assigned that same port to the "Local endpoint"'),(0,i.kt)("li",{parentName:"ul"},"If you made any changes to your configuration after setting up your\nclients, you will need to set the clients up again so they have the\nlatest config."),(0,i.kt)("li",{parentName:"ul"},'Be sure you save your changes before you press "View Peer Config",\notherwise your QR codes/files will not have the latest data.')),(0,i.kt)("p",null,"A few other ideas:"),(0,i.kt)("p",null,"-\xa0For\xa0your\xa0first\xa0client,\xa0setup\xa0a\xa0phone\xa0using\xa0its\xa0data\xa0connection\xa0(not\nwifi).\xa0This\xa0eliminates\xa0issues\xa0related\xa0to\xa0the\xa0client\xa0network,\xa0and\xa0the\xa0QR\ncode\xa0is\xa0the\xa0easiest\xa0way\xa0to\xa0transfer\xa0settings.\xa0Once\xa0you\xa0have\xa0it\xa0working\nfrom\xa0your\xa0phone,\xa0move\xa0on\xa0to\xa0other\xa0clients."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Disable any energy-saving features on the client, phones in particular\nmay not use VPNs properly when in low power mode. Also, you may need to\ndisable any "Data Saver" features on the phone so that VPN is not\nthrottled. See this post.\n-\xa0If\xa0your\xa0"Peer\xa0type\xa0of\xa0connection"\xa0includes\xa0one\xa0of\xa0the\xa0LAN\xa0options\xa0but\nyou\xa0can\xa0only\xa0access\xa0Unraid,\xa0go\xa0to\xa0Settings\xa0->\xa0Network\xa0Settings\xa0and\xa0see\nwhether\xa0"Enable\xa0bridging"\xa0is\xa0yes.\xa0\xa0If\xa0bridging\xa0is\xa0disabled,\xa0you\xa0will\xa0not\nbe\xa0able\xa0to\xa0access\xa0your\xa0LAN\xa0over\xa0WireGuard.'),(0,i.kt)("li",{parentName:"ul"},"If you are connecting from another network over the Internet, be\nsure that the networks on both sides use different subnets. You\ncan't connect two networks that both use 192.168.1.0/24, for\ninstance."),(0,i.kt)("li",{parentName:"ul"},'If you can connect from some locations but not others, keep in mind\nthat the "broken" remote locations may have a firewall that blocks\nUDP traffic. Hopefully, WireGuard will support TCP in the future,\nbut currently, there is no workaround for this.'),(0,i.kt)("li",{parentName:"ul"},'If nothing is working properly, switch to advanced mode and confirm\nthat the "Local tunnel network pool" is not already in use on your\nnetwork or on one of the networks you are connecting to. If there is\na conflict you will need to change it to a different private network\n(10.0.0.0 to 10.255.255.255 ',"|"," 172.16.0.0 to 172.31.255.255 ","|","\n192.168.0.0 to 192.168.255.255)"),(0,i.kt)("li",{parentName:"ul"},"If you can't reach the Unraid webgui for some reason and you need\nto prevent a WireGuard tunnel from automatically starting, delete\nthis file from your flash drive and reboot:")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"/boot/config/wireguard/autostart")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},'Note that if you have Dockers with custom IPs or VMs with strict\nnetworking requirements, you will likely have issues. Please see the\n"Complex Networks" section above.')),(0,i.kt)("h4",{id:"outgoing-vpn-connections"},"Outgoing VPN Connections"),(0,i.kt)("p",null,"This section explains how to make an outgoing WireGuard VPN connection\nfrom an Unraid server to a commercial VPN provider. If you are trying to\naccess your Unraid network from a remote location, see the section on\nmaking inbound connections. There is a ",(0,i.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"forum\nthread"),"\ndiscussing making an outbound VPN connection using WireGuard"),(0,i.kt)("h5",{id:"commercial-vpn-providers"},"Commercial VPN Providers"),(0,i.kt)("p",null,"Several commercial VPN providers now support WireGuard. A few are listed\nbelow but this is not intended to be an exhaustive list. No endorsement\nis implied, you need to research and determine which one meets your\nneeds."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tunsafe.com/vpn"},"TunSafe")," (currently free)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.azirevpn.com/cfg/wireguard"},"Azire VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://mullvad.net/en/guides/category/wireguard/"},"Mullvad")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.ivpn.net/setup/gnu-linux-wireguard.html"},"IVPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://torguard.net/blog/what-is-wireguard-vpn/"},"TorGuard VPN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://nordvpn.com/blog/nordlynx-protocol-wireguard/"},"NordVPN")," Not\nsure this works without using the NordLynx client so may not be\ncompatible with the Unraid implementation.")),(0,i.kt)("p",null,"Note that with the current state of WireGuard, VPN providers cannot\nguarantee the same amount of privacy as they can with OpenVPN. See\n",(0,i.kt)("a",{parentName:"p",href:"https://restoreprivacy.com/wireguard/"},"here")," for more detail.\nTypically the objections are not around security, but around the fact\nthat it is harder for them to guarantee that they cannot track you."),(0,i.kt)("h5",{id:"configuring-vpn-tunneled-access"},"Configuring VPN tunneled access"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Download a config file from your preferred commercial VPN provider"),(0,i.kt)("li",{parentName:"ul"},"On the Settings -",">",' VPN Manager page, click the "Import Config"\nbutton and select the file on your hard drive. This will create a\nnew tunnel specific to this provider.'),(0,i.kt)("li",{parentName:"ul"},"There are no settings to change, except perhaps to give it a name.\nClick Apply."),(0,i.kt)("li",{parentName:"ul"},"Note: You do not need to forward any ports through your router for\nthis type of connection"),(0,i.kt)("li",{parentName:"ul"},"Change the Inactive slider to Active"),(0,i.kt)("li",{parentName:"ul"},"Now ALL of your Unraid traffic will go through the commercial VPN\ntunnel.",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"In the future it may be possible to restrict it so that only\nspecific Dockers use the VPN tunnel. Until then, you may need to\ndisable the tunnel in order to check for plugin updates or\nperform other Unraid administrative tasks."),(0,i.kt)("li",{parentName:"ul"},"Note that currently, Unraid will ignore any DNS server that is\nspecified in the downloaded config file. Unraid's DNS should be\nset to something that will work whether the tunnel is up or\ndown, such as 8.8.8.8 and 8.8.4.4")))),(0,i.kt)("h5",{id:"testing-the-tunnel"},"Testing the tunnel"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Using Community Applications, install a browser such as the\njlesage/Firefox Docker container"),(0,i.kt)("li",{parentName:"ul"},"Accept all defaults"),(0,i.kt)("li",{parentName:"ul"},"Launch Firefox and visit ",(0,i.kt)("a",{parentName:"li",href:"https://whatismyipaddress.com/"},"https://whatismyipaddress.com/")," you should\nsee that your IP address is in the country you selected when you\nsigned up with the provider")),(0,i.kt)("h4",{id:"support"},"Support"),(0,i.kt)("p",null,"WireGuard is a new feature in Unraid so the forum is the place to\nask questions and get the most up-to-date information on using\nWireGuard with Unraid. The threads most likely to be of interest are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/"},"forum\nthread"),"\non the Dynamix WireGuard plugin"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84226-wireguard-quickstart/"},"forum\nthread"),"\ncovering setting up incoming connections."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/"},"Forum\nthread"),"\ncovering setting up outgoing connections.")),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.wireguard.com/"},'"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.')))}d.isMDXComponent=!0},1998:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Wireguard-help-f4ccb85ff47676e718b4d2a5226658b6.png"},2602:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},711:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},7079:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuMAAAA3CAYAAACmTUS0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAL8ElEQVR42u3dXVBUZ57H8S/93k130w00IK4vRANZcDAIW6Q2U47s6iyTqBmoNcmoRU2ZTFlT1sxulXORi1zMxV7MxWRqcrG1lZpKatdSaqMbLYOu1JpRSaCQDWpJre6CiAqOEWjohu7mtbvZCxB5EQU0cZTf587z8pyn/3Vafufp55yTcLv99hgiIiIiIvKdM6gEIiIiIiIK4yIiIiIiCuMiIiIiIqIwLiIiIiKiMC4iIiIiIgrjIiIiIiIK4yIiIiIisngmlUBEROTZdfHSRRVB5BmwoWCDwriIiMjzaO2abBVB5M9Y6/WWOddpmoqIiIiIyFOiMC4iIiIiojAuIiIiIqIwLiIiIiIiCuMiIiIiIgrjIiIiIiKiMC4iIiIi8nyY93PGu+uP8GFd8AFrVrPzV1vIfYKdulr1ByrZwj9tWz33Rr2X+PCTVtbv2cGm5EUe6DHbCHx9lA9qYPO75WzyzLXVTSp/exre+Bk7X5xvyyFqD/471fEi9lcU4NV5KiIiIrK0wzgAnnz2/CSftGkLjdiWaPG8BVt5LxdsiU+6ZRev7NjNy1hw6hwVERERURgHwGDBlWhXQJysngXnt/QOU5NVdRYRERFRGF+Ia6d5/zjs/McNhE6d4dS1IFGDg9wflrMz1z6x0Qgd9Wc4/N8dBEbHA61vRQFvvpHPsqm9iQ/QVl/N4YYOwlEjzqwCdm0tYIX1Icfva+VYVR2X744QxYhzeR7l5cVkWx/e7WhPK8c+/5IL/hiYPRT+XSllL7km19+bNvP+hk4O/EcT7YYc9vxiIy/c+7xTp+lEOqg6cpqGibZyf5BFdGah44O0nDlBZVOQKEa8qwrIjjXSYL8/NWfmVJ17//518QCH//M8V/0xTK7VlO3cwnrXlM/S1UTlsUZaQjFM9hTWv+ylrd5P4b2pOF2NfHDwEhSXs//VFH0DRERERJ6ib+EGzjsc/eg45835vLOnnLJVUa7+8Wva7oXFa3V8XB9kZcl29v/8bfaWrsV0q4GPz3XOCPZ1HL7t5Udvvc2+N/JIu9vIv/3XTaJzHTZ+h2MHz9KWXEBFxW7279pI3mgTB45eJfzQ/gY5d/ISfK+Ufe9up+zFGBdOVHOud8Zm7TX8/nM/K18r572Kv2LlXG19Wk1DNIuyXW+z78c52C820TJjq46a4xxoipG3eTv7d5dSnNjKhfZ5lLa9ht9UXsG+4XX2V2zkhehNqurv3F8/3EzlwQbavXnsrHibd/52OYGmVgJT27A78CU6cFmMOvtFRJaInl4/bTdaGRiITFs+ODRI243rBIIBFUnkKVnYyHhvIx/+tnHaotxZNyZayXutnLIsCwArXnmJ04faae+FF5LB9GIJ7/8yhsk0Hga9L73K9m9u8tGNO3STju9eM2tK+FXZ2okOFlMxHODX1f/H5dLVFJof0LfrV7gQz6GiNJ8XDABr2balhyuH2mkezX3wPgC42LRzB5snJsIve62E7o7POX+5k00l6VNC7Fp27Xr14SPzt5qo7U2hdG8JhS6AfMp+6mDwd2enXDTc5KtLIZb9YDc78sd/Lfh+6Q5cw3/gyKPqb8nizXc3Toz0p1OS28hHNzrpJhMf0H2xiRZzDhV/X0y2AUgrZk+qkQ/+9caUj5tLxd5cnfkiIkuI25VEKBSiv78Ph+P+jU6hUD8GgwFnoiZGijwbYfwBN3CaZoXTFHImgvh4Nrdgn3lQEwwFO2m/G2Iw0sPljgeMd5tM0zpnykzHRzOBPiB19ubd/iAMBznwu+aZnSYUAuZ8WooR07QqpLMyE2r7Q8CUMO5b/vAgDnTf6WTIk0XOlGkjGGaUOBigO+4ib9X0qpjn8xtFxsppU25sNsvsGqwsGA/ik8c3YtJ5LiKypJnNZhwOB5FImOGRYawWK8Mjw0QiYdzuJMxms4ok8kyE8SdxA+dwB1WHTtMQBGdaJmuSrQvYOURX4MFhfK6LBTBisy+inz0huuH+SP28azSf6R9GTN/WE94Nit4iIjJbkjuJSCRMOBzCmmwlHA4B4HSOjyDFYjH8/i7CkTBjY2OYTCZSklNxudwAjI2N0dPrp7+/j3g8jslkJjUldXJ/kaWi8X9aHrjc7XSwKjMdq2VhF7ffeXLrvniehsgKduzbwvqJHN5df4SW/33EjvEYUTxkPuyewxiYn8DTXkbjgM+78CA+0c9HixGNf0sFjkf1LRERkVmsVht2m51IJIzL6SISCZOY6MRqGf9j3O3vYnh4mDRfOhaLhWAwgL+nG7PZjM1mJxwen+bi8Xhx2B309ffR7e/CZDJhW9Sol8jzxe10LDiIw1N4A2e3PwiJqWRa7wfTUGTkkfuFb7UTMHhIm+PlOr5UD4T+xK3QlIXDg4QXmk3jHbS1T7S3QL5UDwTbaZ7ah2h0+k2nHhc+QrTfGZkWzkefQIb2JbvgbicdU4N+NIbiuYiIACR5vOMj4D1+YrEY7olR75HREYaGBkn2JuNyubFabaSk+jAajAwNDY3/SR0exmw2k+T2YLPZSU/LYNWqLAVxWXKK1mXPWpbosJHkXNyLZxY2Mh4fIRQZnDEH3Igt0TLvhlYuT4drNzh/bSUlSSFqa+o4/6cBcM/YsPkMH5qL2LbhRex9Fzla04Nt3SvkznX5sCaPQvtJqj89i/31InKMnZz6/CyXTUX8w08LHjLKHeSLT08yVFJEcQZcOXuGC6PpbFu38DB+rw/nTjWQvCkfb18Tp75oog3uP/rQkMXLOXVUfnWaavsrFDsDNNQ2UHsLyHnMMP6XOfjqGzlcncqbf53K6PUrVH3VTADPtOA/FBkBqx2bZrSIiCwpNqsNq8XKwEAEZ6JzMkhHR0eJx+N0dt2ls+vutH2i0fEhHavVSn9/Hz29fpKSPFgtVgwJBhVVBEhyOrDbrIvad2FxLNjEJ//SNGPh6unP2X4E58sb2XbjJKeOH6XB7CL7+6Xs/Ysz/PPMaSorcygcbebAwQaiGPHllrBvc+bcDRsyKdtdAlV1VB1q5RhGbBk57NhW8IjpJi7W53torzlJbSiGybWCzW/9DcWLmQJnyKTsrVcJfXaeygNNmFzpFJYUYzvRMO3iJfdHWyk9Xs0Xx49Sa3KQXVzCNstJqh73TEgu4J2yAT4+8SUfXQVTag5lrxdw7viUp6l808jvDzVB4Xbem/q0GBERee4lJCSQmOhkcGgQp8s9a116WsaskW6DYTxwu1xuYvEYgUAv/f19GI1GvN5kPEleFVaWnKJ12ZNzx+02C27n4l/HnnC7/faYSvq0xbjw2Seccr3O+z/MfLJNf9PAbw51UvLz7RQnqtIiIs+bi5cusnZN9ry37+/vw9/TTUb6ssnHHA4MROjsuovPlz6vxxyOjo4SCPYSDodI86XrJk5Zku6F8fRULysyHj7023q9hQ0FGx64Tr8vPQXdX5+msr6Ztq5BwsFOLtdUc+qGhbycxwziox1Uf1ZH7fVOApFBvrnVxJGTTYSXryVPQVxEROZgMptJIIHh4aHJZWNjY0Sjo9O2i4+N35RkNptJSU7FZDIxNGUfkaWkaF02FrNp0XPFJ79/KuVT+E8v2U205jwH6r4kCuOvrd9aTtmqx2w47sCX2MnpE1epHgUMRryriti7NRe9zkFEROZiMVuw2e309QXHp7I4nAQCPQwMDpCRkYnD7sDf0004FMLj8WK3O+jrDxKNRrHbHCqgLFnfy84iISFBYfxZ411TTMWa4iffsDWFwtJyCktVYxERWRhfahp+fxeBQC+9vT0YjUaSk1Nw2MfDtteTTCwapafXz9jY2OT6xET99CpL1+MGcYVxERGRJcbtTsLtTpq13Gg0kp6+jLlu7X/UehFZHM0ZFxERERFRGBcRERERURgXERERERGFcRERERERhXEREREREVEYFxERERFRGBcREREREYVxERERERGFcRERERERURgXEREREVEYFxERERERhXERERERkT8fJpVARETk2dZ6vUVFEHlGJdxuvz2mMoiIiIiIfPc0TUVERERERGFcRERERERhXEREREREFMZFRERERBTGRUREREREYVxERERERGFcREREREQew/8Did6U6uUxJ1oAAAAASUVORK5CYII="},6423:(e,t,n)=>{n.d(t,{Z:()=>a});const a="data:image/png;base64,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"},8169:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-add-498121333c50ccbd94376c1e45d45fa4.png"},3939:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-eye-adc75f91906b01fdcb6abc4de67e805b.png"},1967:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/peer-view-e2a9dc1b5d3d4e2259744396c16f1708.png"},4546:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-no-a793bff258fea68083fdbb799202ed64.png"},7098:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/upnp-yes-3236d81a0ccb7571f88c9052409b8124.png"},5372:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/wg0-735b349649b040dc4659d3b1355768a0.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/aed38285.8a87c0f9.js b/zh/assets/js/aed38285.8a87c0f9.js new file mode 100644 index 000000000..72985a341 --- /dev/null +++ b/zh/assets/js/aed38285.8a87c0f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1932],{4137:(e,r,a)=>{a.d(r,{Zo:()=>d,kt:()=>m});var t=a(7294);function n(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}function s(e,r){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),a.push.apply(a,t)}return a}function o(e){for(var r=1;r<arguments.length;r++){var a=null!=arguments[r]?arguments[r]:{};r%2?s(Object(a),!0).forEach((function(r){n(e,r,a[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(a,r))}))}return e}function i(e,r){if(null==e)return{};var a,t,n=function(e,r){if(null==e)return{};var a,t,n={},s=Object.keys(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||(n[a]=e[a]);return n}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(t=0;t<s.length;t++)a=s[t],r.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=t.createContext({}),u=function(e){var r=t.useContext(l),a=r;return e&&(a="function"==typeof e?e(r):o(o({},r),e)),a},d=function(e){var r=u(e.components);return t.createElement(l.Provider,{value:r},e.children)},h="mdxType",c={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},p=t.forwardRef((function(e,r){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),h=u(a),p=n,m=h["".concat(l,".").concat(p)]||h[p]||c[p]||s;return a?t.createElement(m,o(o({ref:r},d),{},{components:a})):t.createElement(m,o({ref:r},d))}));function m(e,r){var a=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=p;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[h]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<s;u++)o[u]=a[u];return t.createElement.apply(null,o)}return t.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3976:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>u});var t=a(7462),n=(a(7294),a(4137));const s={sidebar_position:0},o="Shares",i={unversionedId:"unraid-os/manual/shares/shares",id:"unraid-os/manual/shares/shares",title:"Shares",description:"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.",source:"@site/docs/unraid-os/manual/shares/shares.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/",permalink:"/zh/unraid-os/manual/shares/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/shares.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/zh/category/manual"},next:{title:"User shares",permalink:"/zh/unraid-os/manual/shares/user-shares"}},l={},u=[],d={toc:u},h="wrapper";function c(e){let{components:r,...a}=e;return(0,n.kt)(h,(0,t.Z)({},d,a,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"shares"},"Shares"),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.")),(0,n.kt)("p",null,"One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives."),(0,n.kt)("p",null,"There are two types of shares in Unraid:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/zh/unraid-os/manual/shares/user-shares"},"User Shares")," that rely on Linux FUSE and represent folders in the overall file system."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/zh/unraid-os/manual/shares/disk-shares"},"Disk Shares")," that rely on the drives' ",(0,n.kt)("a",{parentName:"li",href:"https://docs.unraid.net/unraid-os/manual/storage-management#creating-a-file-system-format"},"file system")," to share the disk as a whole.")),(0,n.kt)("p",null,"It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder."),(0,n.kt)("p",null,"When you first initialize your array, Unraid automatically creates a ",(0,n.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/shares/user-shares#default-shares"},"handful of user shares"),". These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data."),(0,n.kt)("p",null,"You manage shares from the ",(0,n.kt)("strong",{parentName:"p"},"Shares")," tab in Unraid. You enable or disable shares in ",(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"},"Settings > Global Share Settings")),", with user shares being enabled by default."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/b13723e0.ec19028c.js b/zh/assets/js/b13723e0.e966e613.js similarity index 58% rename from zh/assets/js/b13723e0.ec19028c.js rename to zh/assets/js/b13723e0.e966e613.js index b88bd9e21..e6e736c35 100644 --- a/zh/assets/js/b13723e0.ec19028c.js +++ b/zh/assets/js/b13723e0.e966e613.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/zh/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/zh/category/getting-started"},next:{title:"Manual Install Method",permalink:"/zh/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/security"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4567],{4137:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},h="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),h=u(n),c=o,m=h["".concat(l,".").concat(c)]||h[c]||p[c]||r;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[h]="string"==typeof e?e:o,i[1]=s;for(var u=2;u<r;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var a=n(7462),o=(n(7294),n(4137));const r={},i="Getting Started",s={unversionedId:"unraid-os/manual/getting-started/getting-started",id:"unraid-os/manual/getting-started/getting-started",title:"Getting Started",description:"In this guide, we will be covering how to prepare your flash device,",source:"@site/docs/unraid-os/manual/getting-started/getting-started.md",sourceDirName:"unraid-os/manual/getting-started",slug:"/unraid-os/manual/getting-started/",permalink:"/zh/unraid-os/manual/getting-started/",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Getting Started",permalink:"/zh/category/getting-started"},next:{title:"Manual Install Method",permalink:"/zh/unraid-os/manual/getting-started/manual-install-method"}},l={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Quick Install Guide",id:"quick-install-guide",level:2},{value:"Initial Setup",id:"initial-setup",level:2},{value:"Connecting to the Unraid webGui",id:"connecting-to-the-unraid-webgui",level:3},{value:"Setting a Root Password",id:"setting-a-root-password",level:2},{value:"Registering and Installing Your Key",id:"registering-and-installing-your-key",level:3},{value:"Utilizing Unraid Connect",id:"utilizing-unraid-connect",level:2},{value:"Assigning Devices to the Array and Pool(s)",id:"assigning-devices-to-the-array-and-pools",level:2},{value:"Starting the Array and Formatting Your Devices",id:"starting-the-array-and-formatting-your-devices",level:2},{value:"Stopping Array, Shutting Down, and Rebooting",id:"stopping-array-shutting-down-and-rebooting",level:2},{value:"Important Considerations",id:"important-considerations",level:2},{value:"Backing Up the Flash Drive",id:"backing-up-the-flash-drive",level:3},{value:"Using the built-in help",id:"using-the-built-in-help",level:3},{value:"Security Best Practices",id:"security-best-practices",level:3},{value:"Advanced BIOS Configuration Guide",id:"advanced-bios-configuration-guide",level:2},{value:"Boot Mode Selector (Syslinux)",id:"boot-mode-selector-syslinux",level:2},{value:"Privacy",id:"privacy",level:2},{value:"F.A.Q",id:"faq",level:2}],d={toc:u},h="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(h,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"getting-started"},"Getting Started"),(0,o.kt)("p",null,"In this guide, we will be covering how to prepare your flash device,\nboot the system, and configure your first array. The entire process\nshould take less than 15 minutes."),(0,o.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,o.kt)("p",null,"Before we begin:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You should have your server assembled and connected via power and\nEthernet."),(0,o.kt)("li",{parentName:"ul"},"You should have a monitor and keyboard attached for the initial\nconfiguration and to be ready to alter configuration settings in your\nBIOS."),(0,o.kt)("li",{parentName:"ul"},"You will also need a high-quality, name brand USB flash device that is\n2GB or larger that must contain a unique GUID (Globally Unique\nIdentifier)."),(0,o.kt)("li",{parentName:"ul"},"Your system must be capable of booting from a USB device.")),(0,o.kt)("p",null,"For full hardware requirements, visit our ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/product"},"product\npage"),"."),(0,o.kt)("h2",{id:"quick-install-guide"},"Quick Install Guide"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Insert a quality USB flash device into your Mac or PC."),(0,o.kt)("li",{parentName:"ul"},"Download the ",(0,o.kt)("a",{parentName:"li",href:"https://unraid.net/download"},"USB Flash Creator")," and use\nit to install Unraid OS onto your USB flash device, or use the\n",(0,o.kt)("a",{parentName:"li",href:"./manual-install-method"},"Manual Install method"),"."),(0,o.kt)("li",{parentName:"ul"},"Remove the flash device from your PC and plug it into your server."),(0,o.kt)("li",{parentName:"ul"},"Boot into your server's BIOS settings and make the following changes:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"Configure the system to boot from the USB flash device."),(0,o.kt)("li",{parentName:"ul"},"Enable virtualization-specific features (including IOMMU).")))),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Save your BIOS configuration changes and exit to boot Unraid OS.")),(0,o.kt)("h2",{id:"initial-setup"},"Initial Setup"),(0,o.kt)("p",null,"Once Unraid OS has booted, you can now bring up the browser-based\nManagement Utility, a.k.a., the ",(0,o.kt)("em",{parentName:"p"},"webGui"),", and complete the process of\nconfiguring your system."),(0,o.kt)("h3",{id:"connecting-to-the-unraid-webgui"},"Connecting to the Unraid webGui"),(0,o.kt)("p",null,"There are two methods to connect to the webGui in Unraid:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Boot Unraid in GUI mode and login (username is ",(0,o.kt)("inlineCode",{parentName:"li"},"root"),", no password by\ndefault); or"),(0,o.kt)("li",{parentName:"ul"},"Open a web browser from your Mac or PC and navigate to\n",(0,o.kt)("inlineCode",{parentName:"li"},"http://tower.local")," Note: if you configured a different host name in\nthe USB Flash Creator, use that name instead of ",(0,o.kt)("inlineCode",{parentName:"li"},"tower"),".")),(0,o.kt)("h2",{id:"setting-a-root-password"},"Setting a Root Password"),(0,o.kt)("p",null,"Once you are connected to the webGui, you will immediately be prompted\nto set a strong root password (as of version 6.10):\n",(0,o.kt)("img",{src:n(1726).Z,width:"518",height:"655"}),"\nStrong passwords are unique (not reused), have at least 8 characters (the more the better),\nare a combination of alphabetic, numeric, and special characters, and\nare not common dictionary words. Better yet, use a password manager."),(0,o.kt)("p",null,"If you happen to forget your root password, the steps to reset it can be\nfound ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/blog/unraid-new-users-blog-series"},"here"),"."),(0,o.kt)("h3",{id:"registering-and-installing-your-key"},"Registering and Installing Your Key"),(0,o.kt)("p",null,"Once a root password is set, you will be logged into the webGui. Now you\nneed to sign in to Unraid.net and obtain a key."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Sign in or Sign up under the Get Started section in the top-right of\nthe webGui.\n",(0,o.kt)("img",{alt:"UPC getting started",src:n(1914).Z,width:"575",height:"322"}))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Upon signing in, a registration key will be downloaded and installed\nto your system automatically."))),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"UPC installing a trial key",src:n(3749).Z,width:"597",height:"866"}),"\nThe purpose of the sign-in is to provide a way for you to manage your registration\nkeys for Unraid OS (obtain a Trial key, purchase a paid key, recover a\nlost key, replace your key with a new flash device, or upgrade a key\nfrom one edition to another)."),(0,o.kt)("p",null,"When signing up we ",(0,o.kt)("strong",{parentName:"p"},"highly recommend")," you enable 2FA for your\nUnraid.net Account. Click\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/topic/104007-enhanced-forum-account-security-2fa/"},"here"),"\nfor how to set this up."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: On versions 6.9 and earlier, registering for a Trial, installing\na key, or purchasing a key is done from the webGui Tools ",">"," Registration\npage.")),(0,o.kt)("h2",{id:"utilizing-unraid-connect"},"Utilizing Unraid Connect"),(0,o.kt)("p",null,"Once you have installed the ",(0,o.kt)("a",{parentName:"p",href:"/zh/connect/about"},"Unraid Connect")," plugin\nand signed in with your Unraid.net account, you will be able to manage\nyour server through the ",(0,o.kt)("a",{parentName:"p",href:"https://connect.myunraid.net/"},"Unraid Connect Dashboard"),"."),(0,o.kt)("h2",{id:"assigning-devices-to-the-array-and-pools"},"Assigning Devices to the Array and Pool(s)"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(4557).Z,width:"1648",height:"859"})," After installing a\nregistration key, you are ready to begin assigning devices for Unraid to\nmanage. Click on the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab from the Unraid webGui and follow\nthese guidelines when assigning disks:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Always pick the largest storage device available to act as your\nparity device(s)"),". When expanding your array in the future (adding\nmore devices to data disk slots), you cannot assign a data disk that\nis larger than your parity device(s). For this reason, it is highly\nrecommended to purchase the largest HDD available for use as your\ninitial parity device, so future expansions aren\u2019t limited to small\ndevice sizes. If assigning dual parity disks, your two parity disks\ncan vary in size, but the same rule holds true that no data disk in\nthe array can be larger than your smallest parity device.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD support in the array is experimental"),". Some SSDs may not be\nideal for use in the array due to how TRIM/Discard may be implemented.\nUsing SSDs as data/parity devices may have unexpected/undesirable\nresults. This does NOT apply to the cache / cache pool.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Using a pool as a cache will improve array performance"),". It does\nthis by redirecting write operations to a dedicated disk (or pool of\ndisks in Unraid 6) and moves that data to the array on a schedule that\nyou define (by default, once per day at 3:40AM). Data written to a\ncache pool is still presented through your user shares, making use of\nthis function completely transparent. You control at the User Share\nlevel which shares should use a pool for cache purposes and which pool\nthat should be.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Creating a multi-device pool adds protection for cached data"),". If\nyou only assign one device to the cache pool, data residing there\nbefore being moved to the array on a schedule is not protected from\ndata loss. To ensure data remains protected at all times (both on data\nand cache disks), you must assign more than one device to the pool,\ncreating what is typically called a cache-pool. Cache pools can be\nexpanded on demand, similar to the array.")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"SSD-based pools are ideal for applications and virtual machines"),".\nApps and VMs benefit from SSDs as they can leverage their raw IO\npotential to perform faster when interacting with them. Use SSDs in a\npool for the ultimate combination of functionality, performance, and\nprotection.")),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Your array will not start if you have attached more storage\ndevices than your license key allows.")),(0,o.kt)("h2",{id:"starting-the-array-and-formatting-your-devices"},"Starting the Array and Formatting Your Devices"),(0,o.kt)("p",null,"Once you have all your devices assigned, you can click the ",(0,o.kt)("strong",{parentName:"p"},"Start"),"\nbutton under Array Operation. This will mount your devices and start the\narray. New devices added to disk or cache device slots will appear as\n'Unformatted' and will be unusable for storing files until you format\nthem. Unraid 6 defaults to using the XFS filesystem for all devices, but\nif you define a cache pool then BTRFS will automatically be used for\nthose devices (you can change the default file system under\n",(0,o.kt)("em",{parentName:"p"},"Settings-",">","System Settings-",">","Disk Settings"),")."),(0,o.kt)("p",null,"To format your devices for use, you must click the check box under\n\u2018Array Operation\u2019 that says ",(0,o.kt)("strong",{parentName:"p"},"Format"),", acknowledge the resulting prompt\n(read it carefully), and then click the ",(0,o.kt)("strong",{parentName:"p"},"Format")," button."),(0,o.kt)("p",null,"Even before the devices are formatted, a ",(0,o.kt)("em",{parentName:"p"},"parity sync")," will be performed\nin the background to initialize the protection of the array. Until the\nsync is completed, the array will operate but in an unprotected state.\nIt is recommended to wait until the initial parity sync completes before\nadding data to the array."),(0,o.kt)("h2",{id:"stopping-array-shutting-down-and-rebooting"},"Stopping Array, Shutting Down, and Rebooting"),(0,o.kt)("p",null,"In order to perform one of these operations, visit the ",(0,o.kt)("strong",{parentName:"p"},"Main")," tab and\nscroll down to the section titled ",(0,o.kt)("em",{parentName:"p"},"Array Operation")," and click on the\nbutton appropriate to the operation you wish to carry out."),(0,o.kt)("h2",{id:"important-considerations"},"Important Considerations"),(0,o.kt)("p",null,"Once you've completed your initial setup, there are a few more things\nyou should know how to do on your server."),(0,o.kt)("h3",{id:"backing-up-the-flash-drive"},"Backing Up the Flash Drive"),(0,o.kt)("p",null,"It is a good idea to have your Unraid flash device backed up any time\nyou make a significant configuration change. Regular flash backups are\nhighly recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"On the ",(0,o.kt)("strong",{parentName:"li"},"Main")," tab, click on your Flash and Click ",(0,o.kt)("strong",{parentName:"li"},"Flash Backup"),".\nPlease make sure to store your backups off of your Unraid array so it\nis easily accessible even if the array is not operational."),(0,o.kt)("li",{parentName:"ul"},"If you are running Unraid 6.10.0 (or later) install the ",(0,o.kt)("a",{parentName:"li",href:"/zh/connect/about"},"Unraid Connect"),"\nplugin which provides for automated backups of the flash drive to\nLimeTech cloud-based servers.")),(0,o.kt)("h3",{id:"using-the-built-in-help"},"Using the built-in help"),(0,o.kt)("p",null,"Unraid has extensive help text for all major settings built into the\nwebGui. When enabled the Help text will be displayed under the relevant\nsetting."),(0,o.kt)("p",null,'The help text can be toggled on/off at the global level by clicking the\n"',(0,o.kt)("strong",{parentName:"p"},'?"')," icon at the top right of the Unraid GUI. It can be switched\non/off at the individual field level by clicking on the name of the\nfield."),(0,o.kt)("p",null,"It is ",(0,o.kt)("strong",{parentName:"p"},"strongly")," recommended that you make use of this feature as the\ninformation available via that route is likely to be more extensive and\nup-to-date than any documentation."),(0,o.kt)("h3",{id:"security-best-practices"},"Security Best Practices"),(0,o.kt)("p",null,"Your Unraid server is likely to end up containing data that is valuable\nto you so it can be a good idea to review the ",(0,o.kt)("a",{parentName:"p",href:"../security.md"},"Security Good\nPractices")," part of the documentation to\nensure you are not doing something that may leave your system open to\nattack while leaving your valuable data at risk."),(0,o.kt)("h2",{id:"advanced-bios-configuration-guide"},"Advanced BIOS Configuration Guide"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(3258).Z,width:"300",height:"187"}),"\nConfiguring your motherboard BIOS (as well as your storage controller) correctly is an important step to\nensuring a solid experience using Unraid. The basic guidelines are as\nfollows:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must configure the USB flash device as the primary boot device\n(most motherboards support this)."),(0,o.kt)("li",{parentName:"ul"},"Your storage controller should support AHCI and SATA connections and\nbe configured in standard HBA mode (not RAID mode)."),(0,o.kt)("li",{parentName:"ul"},"Enable any and all virtualization support in your BIOS if your\nhardware supports it or you wish to create virtual machines (Intel\nVT-x / AMD-V)."),(0,o.kt)("li",{parentName:"ul"},"Enable IOMMU support in your BIOS if your hardware supports it or you\nwish to assign physical PCI devices (GPUs, media controllers, USB\ncontrollers, etc.) to virtual machines."),(0,o.kt)("li",{parentName:"ul"},"Avoid using front panel USB ports in favor of ports available directly\non the motherboard I/O panel.")),(0,o.kt)("p",null,"If after configuring your BIOS you cannot get Unraid to boot properly,\ntry the following:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Set the boot order to as follows: Forced-FDD, USB-HDD, USB-ZIP"),(0,o.kt)("li",{parentName:"ul"},"Try disabling USB 2.0/3.0 support (this will default to USB 1.1)."),(0,o.kt)("li",{parentName:"ul"},"Try switching on or off any ",(0,o.kt)("em",{parentName:"li"},"Fast Boot")," feature."),(0,o.kt)("li",{parentName:"ul"},"Try Switching on or off ",(0,o.kt)("em",{parentName:"li"},"USB keyboard")," support.")),(0,o.kt)("p",null,"If you still are unable to boot the OS, please post a message in our\n",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general support"),"\nforum."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"NOTE: Many motherboards support only up to 12 hard drives for purposes\nof boot selection. This is normally not an issue for Unraid\xae OS;\nhowever, if your Flash device is recognized by the bios as a hard drive,\nyou may not be able to boot from the Flash after installing your 12th\n\u201creal\u201d hard drive. To avoid this, if possible set up your bios so that\nthe Flash is treated as a removable device.")),(0,o.kt)("h2",{id:"boot-mode-selector-syslinux"},"Boot Mode Selector (Syslinux)"),(0,o.kt)("p",null,"After configuring your BIOS and booting from the Unraid flash drive, you\nwill be prompted with the Unraid Server OS boot menu on a directly\nattached monitor (or via IPMI if your server supports that feature)."),(0,o.kt)("p",null,"There are a number of standard options available for you to select:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS (Headless)"))),(0,o.kt)("p",null,"The standard boot mode for Unraid Server OS, headless mode utilizes less\nmemory than desktop mode but relies on the use of another device capable\nof running a web browser to access the webGui for management. If a\nmonitor is attached then a console login will be displayed that can be\nused to access the Linux command line on the server."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Mode"))),(0,o.kt)("p",null,"Loads a lightweight desktop interface on a directly attached monitor\nwith a quick-launch menu for accessing the webGui, product\ndocumentation, and useful Linux utilities including a bash shell,\nmidnight commander, and htop. This mode may be helpful for users trying\nto diagnose network connectivity problems or for users that don't have a\nseparate device to use for connecting to the webGui."),(0,o.kt)("p",null,"The management interface presented in this mode is the same one that is\ndisplayed when running the system in ",(0,o.kt)("em",{parentName:"p"},"headless")," mode and accessing the\nserver remotely using a web browser."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS Safe Mode (no plugins, no GUI)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Unraid OS GUI Safe Mode (no plugins)"))),(0,o.kt)("p",null,"In this mode, Unraid suppresses loading any plugins that the user may\nhave installed. Use this boot mode to diagnose if plugins are causing\nstability issues on your system."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Memtest86+"))),(0,o.kt)("p",null,"If you suspect faulty RAM on your system, you can use Memtest86+ to test\nit. Please post in the ",(0,o.kt)("a",{parentName:"p",href:"https://forums.unraid.net/forum/index.php?board=71.0"},"general\nsupport")," forum\nfor assistance in using this tool."),(0,o.kt)("p",null,"The ",(0,o.kt)("em",{parentName:"p"},"memtest86+")," tool supplied with Unraid will only work correctly if\nyou are booting in non-UEFI (legacy) mode. If you want a version that\ncan be run when booting in UEFI mode then you need to download your own\ncopy from the memtest86+ ",(0,o.kt)("a",{parentName:"p",href:"http://www.memtest.org/"},"web site"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Note:")," If you use EEC RAM in your Unraid server then memtest86+ will\nnot normally detect faulty RAM modules unless you have disabled the EEC\nfeature in the BIOS (since the EEC feature automatically corrects any\nRAM error it detects)."),(0,o.kt)("p",null,"The user can change the boot menu to add additional options or amend\nexisting ones by editing the ",(0,o.kt)("em",{parentName:"p"},"syslinux/syslinux.cfg")," file on the flash\ndrive or by clicking on the ",(0,o.kt)("em",{parentName:"p"},"flash")," drive on the Main tab within the\nManagement interface and using the ",(0,o.kt)("em",{parentName:"p"},"Syslinux Configuration")," section on\nthe resulting dialog."),(0,o.kt)("h2",{id:"privacy"},"Privacy"),(0,o.kt)("p",null,"Signing in with your Unraid.net account from the webGui sends the\nfollowing information using a secure connection to our cloud servers:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Your email address and password used to sign in to Unraid.net."),(0,o.kt)("li",{parentName:"ul"},"The GUID of your flash device."),(0,o.kt)("li",{parentName:"ul"},"The key file on your flash device if present."),(0,o.kt)("li",{parentName:"ul"},"The server's hostname and description."),(0,o.kt)("li",{parentName:"ul"},"The server's LAN IP address."),(0,o.kt)("li",{parentName:"ul"},"The version number of Unraid OS you are running.")),(0,o.kt)("h2",{id:"faq"},"F.A.Q"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm unable to get the USB Flash Creator to install Unraid to my flash\ndevice. What do I do?")),(0,o.kt)("p",null,"In the event the flash creator doesn't see or can't install Unraid to\nthe device, it could be for one of many reasons. The simplest solution\nwould be to try an alternate device, but if that is not an option for\nyou, you can try installing Unraid using the legacy ",(0,o.kt)("a",{parentName:"p",href:"./manual-install-method"},"manual method documented here"),"."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I can't seem to connect to the webGui using ",(0,o.kt)("a",{parentName:"strong",href:"http://tower"},"http://tower")," or\n",(0,o.kt)("a",{parentName:"strong",href:"http://tower.local"},"http://tower.local"),". What do I do?")),(0,o.kt)("p",null,"Sometimes your local DNS server won't resolve by hostname and if that is\nthe case here, you can try connecting to the server by IP address. You\ncan discover the IP address of the server in multiple ways (by manually\nsetting it during the creation of the flash device, reviewing your\nrouter/switch DHCP address pool, or by connecting a monitor to the\nserver)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How do I change the hostname of my server?")),(0,o.kt)("p",null,"You can change the name used for your Unraid server from the webGui by\ngoing to Settings-",">","System Settings-",">","Identification"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"My flash drive is reporting an invalid GUID. What do I do?")),(0,o.kt)("p",null,"The USB Flash device ",(0,o.kt)("strong",{parentName:"p"},"must")," be one that has a unique hardware GUID\n(serial number) built into it. Some manufacturers re-use the same GUID\non the drives they manufacture, use a GUID that is all zeroes, or use an\nobviously made-up number. These drives are not able to be used as an\nUnraid boot device. Although it is difficult to generalize, drives from\nmost major manufacturers ",(0,o.kt)("strong",{parentName:"p"},"do")," satisfy the requirement of having a\nunique GUID."),(0,o.kt)("p",null,"Note: SSDs, USB card readers, SD card readers, or other devices cannot\nbe used to boot Unraid at this time."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"The USB flash creator tool isn't detecting my flash drive. What do I\ndo?")),(0,o.kt)("p",null,"In the event this tool doesn't work for you, we have additionally\ndocumented a manual process by which you can also create your flash\ndevice. As an FYI, the manual method only works for devices 32GB and\n",(0,o.kt)("em",{parentName:"p"},"smaller"),"."),(0,o.kt)("p",null,"USB flash devices and the Flash Creator tool are discussed further in\nthis New Users Blog."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I need to configure my system to boot using UEFI. How do I do this?")),(0,o.kt)("p",null,"UEFI boot mode can be configured in 3 ways. When creating the flash\ndevice using the flash creator, there is an option to enable UEFI boot\nmode. After booting in legacy mode, you can change to UEFI boot from the\nFlash Device Settings page. And lastly, you can always rename the folder\non the flash drive called ",(0,o.kt)("strong",{parentName:"p"},"efi~")," to ",(0,o.kt)("strong",{parentName:"p"},"efi")," (i.e. removing the\ntrailing ",(0,o.kt)("strong",{parentName:"p"},"~")," character)."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"I'm having issues using my web browser with the Unraid webGui. What\ncan I do?")),(0,o.kt)("p",null,"Unraid's management interface (the webGui) is incompatible with most\nad-blocker solutions. It is for this reason that we strongly suggest\nthat users leveraging an ad-blocker in their browser first add the\nUnraid server to the ad-blocker whitelist to ensure the ad-blocker\ndoesn't affect the webGui. Failure to do so is likely to result in parts\nof the webGui not displaying correctly."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"How Do I Extend My Unraid Trial?")),(0,o.kt)("p",null,"Did you know that you can extend the ",(0,o.kt)("a",{parentName:"p",href:"https://unraid.net/download"},"30 day free\ntrial"),' of Unraid? Hardware can be\nill-suited. Things break. Life happens. We get it. To try out Unraid a\nlittle longer, once your original trial shows "expired" in the upper\nleft of the header, ',(0,o.kt)("em",{parentName:"p"},"Stop the array"),"."),(0,o.kt)("p",null,"Next, go to the ",(0,o.kt)("em",{parentName:"p"},"Registration")," page, and now a button shows up where you\ncan click for a 15 day extension. You can do this a total of two times\nbefore you must decide if you would like to purchase Unraid or not."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You cannot change the USB flash device for Unraid Trials if you\nwish to continue where you left off.")))}p.isMDXComponent=!0},3258:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg"},4557:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Configuringarray1-b563b7a09206ee11573eb77ad400c45c.png"},1726:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Set_root_password-4ff6b82e5658cb5c8fb377baf3f53a8e.png"},1914:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_get_started-4630213996717795a6d0c89481d61bdd.png"},3749:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Upc_install_trial_key-441ac5223d84cf58dfa291d8814f1c62.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/ba2ffba3.8cafea63.js b/zh/assets/js/ba2ffba3.ae642b32.js similarity index 99% rename from zh/assets/js/ba2ffba3.8cafea63.js rename to zh/assets/js/ba2ffba3.ae642b32.js index 5dbe1d72c..145a50617 100644 --- a/zh/assets/js/ba2ffba3.8cafea63.js +++ b/zh/assets/js/ba2ffba3.ae642b32.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/zh/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/zh/connect/help"},next:{title:"Legacy Documentation",permalink:"/zh/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/security#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4321],{4137:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=l(n),d=r,h=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var l=2;l<o;l++)s[l]=n[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5510:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=n(7462),r=(n(7294),n(4137));const o={},s="Remote Access",i={unversionedId:"connect/remote-access",id:"connect/remote-access",title:"Remote Access",description:"The Remote Access feature",source:"@site/docs/connect/remote-access.md",sourceDirName:"connect",slug:"/connect/remote-access",permalink:"/zh/connect/remote-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md",tags:[],version:"current",frontMatter:{},sidebar:"unraidSidebar",previous:{title:"Unraid Connect Help",permalink:"/zh/connect/help"},next:{title:"Legacy Documentation",permalink:"/zh/category/legacy-documentation"}},c={},l=[{value:"Remote Access - <strong>Initial Setup</strong>",id:"remote-access---initial-setup",level:2},{value:"Remote Access - <strong>Choose Remote Access Type</strong>",id:"remote-access---choose-remote-access-type",level:3},{value:"<strong>Dynamic Remote Access</strong>",id:"dynamic-remote-access",level:2},{value:"Dynamic Remote Access Usage",id:"dynamic-remote-access-usage",level:4},{value:"Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)",id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp",level:3},{value:"Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)",id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward",level:3}],p={toc:l},m="wrapper";function u(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"remote-access"},"Remote Access"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8225).Z,width:"812",height:"283"})),(0,r.kt)("p",null,"The Remote Access feature\nallows you to access your Unraid webgui from the Internet. If you need\naccess to Docker containers, network drives, or other devices on your\nnetwork, you'll want to ",(0,r.kt)("a",{parentName:"p",href:"/unraid-os/manual/security.md#vpn"},"setup a\nVPN")," instead."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note: Before enabling remote access, consider your root password. Is\nit sufficiently complex? Update your root password on the Users page.")),(0,r.kt)("p",null,"Also note: ",(0,r.kt)("strong",{parentName:"p"},"Remote Access is an optional feature"),", and is not required\nto use the rest of Unraid Connect."),(0,r.kt)("h2",{id:"remote-access---initial-setup"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h2"},"Initial Setup")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"From Unraid webGUI Navigate to ",(0,r.kt)("strong",{parentName:"li"},"Settings")," \u2192 ",(0,r.kt)("strong",{parentName:"li"},"Management Access")),(0,r.kt)("li",{parentName:"ol"},"Note the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port"),", it defaults to port 443. If you have Docker\ncontainers running on this port, choose an unused port over 1000\nsuch as 3443, 4443, 5443, etc."),(0,r.kt)("li",{parentName:"ol"},"If you changed any of the above settings, hit ",(0,r.kt)("strong",{parentName:"li"},"Apply")," for them to\ntake effect."),(0,r.kt)("li",{parentName:"ol"},"In the ",(0,r.kt)("strong",{parentName:"li"},"CA-signed certificate file")," area, click ",(0,r.kt)("strong",{parentName:"li"},"Provision"))),(0,r.kt)("h3",{id:"remote-access---choose-remote-access-type"},"Remote Access - ",(0,r.kt)("strong",{parentName:"h3"},"Choose Remote Access Type")),(0,r.kt)("p",null,"There are two kinds of Remote Access provided through Unraid Connect:\n",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," and ",(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," enables access to your webGUI from the\ninternet only when needed, and leaves the webGUI inaccessible from WAN\notherwise. This feature works with both UPNP as well as static port\nforwarding and uses an API call through the Unraid Connect plugin to\nopen your webGUI to internet traffic, closing it automatically when not\nneeded. This helps to prevent automated attacks."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Static Remote Access")," enables your server to listen to WAN traffic at\nall times, allowing your server to be accessed from the internet."),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(8881).Z,width:"860",height:"511"})),(0,r.kt)("h2",{id:"dynamic-remote-access"},(0,r.kt)("strong",{parentName:"h2"},"Dynamic Remote Access")),(0,r.kt)("p",null,"To use Dynamic Remote access, first set the type you would like to use\nin the ",(0,r.kt)("strong",{parentName:"p"},"Management Access \u2192 Unraid Connect")," settings page. Choose one\nof the Dynamic settings in the Remote Access dropdown:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - UPNP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nas well as automatically opening and closing a random port on\nnetwork with UPNP. To use this option your router must have UPNP\nenabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"Dynamic - Manual Port Forward"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"This option enables dynamic access through the Connect dashboard,\nbut requires manual port forwarding.")))),(0,r.kt)("h4",{id:"dynamic-remote-access-usage"},"Dynamic Remote Access Usage"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Navigate to ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid Connect"),", then to\neither the management page or the server details view")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"You will be presented with a new ",(0,r.kt)("strong",{parentName:"p"},"Dynamic Remote Access")," card,\nwith a button that will be enabled if your server is not accessible\nfrom your current\nlocation."),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{src:n(9085).Z,width:"626",height:"346"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Clicking the button will trigger your server to enable wan access,\nand if using UPNP, create a new UPNP port forward lease on your\nrouter. This can take up to a minute to complete"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, a 30 minute lease will be created, which will be\nrenewed automatically while Dynamic Remote Access is enabled."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"After enabling, the card will report the status of the enabling\nprocess, and what the current state of UPNP is.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},'After ten minutes of inactivity, or clicking "Disable Remote\nAccess", your server will automatically turn off access from WAN\ntraffic.'),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"When using UPNP, your server will also attempt to remove the UPNP\nlease from your router.")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Active Remote Access Card",src:n(9254).Z,width:"602",height:"337"})),(0,r.kt)("h3",{id:"configuring-upnp-applies-to-dynamic---upnp--always-on---upnp"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"UPNP")," (Applies to Dynamic - UPNP / Always On - UPNP)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Ensure your router supports UPNP and has it enabled."),(0,r.kt)("li",{parentName:"ol"},"Navigate to Settings -",">",' Management Access and set "Use UPnP" to\nYes.'),(0,r.kt)("li",{parentName:"ol"},"On the Unraid Connect settings page, set the remote access option to\nUPNP (either Dynamic or Always On) and Apply."),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid\nConnect"),"."))),(0,r.kt)("li",{parentName:"ol"},'Note: If the setting changes from UPnP to "Manual Port Forward" when\nyou reload the page, then we were not able to communicate with your\nrouter to enable UPnP. It may need to be enabled on your router, or\nperhaps the router needs a firmware update to use it.')),(0,r.kt)("h3",{id:"configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward"},"Configuring ",(0,r.kt)("strong",{parentName:"h3"},"Manual Port Forwarding")," (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Set the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you want to use. We highly recommend you choose\na random port over 1000 rather than using the default of 443. i.e.\nsomething like 13856, 48653, etc"),(0,r.kt)("li",{parentName:"ol"},"Click ",(0,r.kt)("strong",{parentName:"li"},"Apply")),(0,r.kt)("li",{parentName:"ol"},"Setup your router to port forward the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," you specified to\nthe ",(0,r.kt)("strong",{parentName:"li"},"HTTPS port")," used by the server. There is a note on the screen\ntelling you the exact ports and IP to use.",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: some routers require that the ",(0,r.kt)("strong",{parentName:"li"},"WAN port")," match the ",(0,r.kt)("strong",{parentName:"li"},"HTTPS\nport"),". In that case, we'd recommend setting both to the same high\nrandom number."))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("strong",{parentName:"li"},"(Always on Forwarding Only)")," : Press the ",(0,r.kt)("strong",{parentName:"li"},"Check"),' button. If the\nport is forwarded correctly you will see a message saying "Your\nUnraid Server is reachable from the Internet"',(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Note: When using Dynamic forwarding, you will not be able to\naccess your server from this manual port forward unless you click\nthe Enable Dynamic Remote access button in ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")))),(0,r.kt)("li",{parentName:"ol"},"To access your server using Remote Access, login to ",(0,r.kt)("a",{parentName:"li",href:"/zh/connect/help#unraid-connect-dashboard"},"Unraid\nConnect")," and click the Manage link")),(0,r.kt)("p",null,"===Optional step for secure local access=== If you want to use secure\nhttps for local access to your server as well, navigate to Settings -",">","\nManagement Access. In the CA-signed certificate area, if there are no\nwarnings about DNS Rebinding then go ahead and set ",(0,r.kt)("strong",{parentName:"p"},"Use SSL/TLS")," to\n",(0,r.kt)("strong",{parentName:"p"},"Strict"),". If there are warnings about DNS Rebinding see ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/help#a-note-regarding-dns-rebinding-protection"},"A note\nregarding DNS Rebinding\nProtection"),"."),(0,r.kt)("p",null,"Note that once SSL is set to Strict, your client computers will need\naccess to DNS in order to access your server. This means if your\nInternet connection drops you will likely lose access to your server's\nwebgui. See ",(0,r.kt)("a",{parentName:"p",href:"/zh/connect/help#how-to-access-your-server-when-dns-is-down"},"How to access your server when DNS is\ndown"),"."))}u.isMDXComponent=!0},8225:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png"},9085:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enable-card-608cc524c166e04f012d7e3d9e200f9b.png"},9254:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote-access-enabled-static-edce311be0363ac9f5bcaae906fbaf59.png"},8881:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/Remote_access_settings-70262cb6b2dc73e9a87c65a28973223b.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/f0844d9f.58191536.js b/zh/assets/js/f0844d9f.58191536.js deleted file mode 100644 index e5c86d321..000000000 --- a/zh/assets/js/f0844d9f.58191536.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=d(a),p=i,m=c["".concat(l,".").concat(p)]||c[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/zh/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Manual",permalink:"/zh/category/manual"},next:{title:"Storage Management",permalink:"/zh/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],h={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/f0844d9f.e045a212.js b/zh/assets/js/f0844d9f.e045a212.js new file mode 100644 index 000000000..08e119438 --- /dev/null +++ b/zh/assets/js/f0844d9f.e045a212.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2697],{4137:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>m});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,n,i=function(e,t){if(null==e)return{};var a,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),d=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},h=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),c=d(a),p=i,m=c["".concat(l,".").concat(p)]||c[p]||u[p]||r;return a?n.createElement(m,o(o({ref:t},h),{},{components:a})):n.createElement(m,o({ref:t},h))}));function m(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,o=new Array(r);o[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<r;d++)o[d]=a[d];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},3630:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var n=a(7462),i=(a(7294),a(4137));const r={sidebar_position:1,sidebar_label:"Overview"},o="What is Unraid?",s={unversionedId:"unraid-os/manual/what-is-unraid",id:"unraid-os/manual/what-is-unraid",title:"What is Unraid?",description:"Unraid\xae is an embedded operating system that is designed to provide you",source:"@site/docs/unraid-os/manual/what-is-unraid.md",sourceDirName:"unraid-os/manual",slug:"/unraid-os/manual/what-is-unraid",permalink:"/zh/unraid-os/manual/what-is-unraid",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/what-is-unraid.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,sidebar_label:"Overview"},sidebar:"unraidSidebar",previous:{title:"Delete a share",permalink:"/zh/unraid-os/manual/shares/delete-a-share"},next:{title:"Storage Management",permalink:"/zh/unraid-os/manual/storage-management"}},l={},d=[{value:"Network Attached Storage",id:"network-attached-storage",level:2},{value:"Parity-Protected Array",id:"parity-protected-array",level:3},{value:"User Shares",id:"user-shares",level:3},{value:"Cache",id:"cache",level:3},{value:"Application Server",id:"application-server",level:2},{value:"The Engine",id:"the-engine",level:3},{value:"The Hub",id:"the-hub",level:3},{value:"Containers",id:"containers",level:3},{value:"Virtualization Host",id:"virtualization-host",level:2},{value:"Assignable Devices",id:"assignable-devices",level:3},{value:"Simplified Management",id:"simplified-management",level:2}],h={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"what-is-unraid"},"What is Unraid?"),(0,i.kt)("p",null,"Unraid\xae is an embedded operating system that is designed to provide you\nwith the ultimate control over your hardware. In addition to performing\nthe duties of a robust NAS (network-attached storage), Unraid is also\ncapable of acting as an application server and virtual machine host.\nUnraid installs to and boots from a USB flash device and loads into a\nroot RAM file system. By using a modern Linux kernel with up-to-date\nhardware drivers, Unraid can operate on nearly any 64 bit system\n(x86_64) with minimal consumption of system memory. All configuration\ndata relating to the operating system is stored on the flash device and\nloaded at the same time as the operating system itself. Management of\nyour Unraid system is accomplished through an intuitive web interface\nthat offers basic controls for common tasks as well as advanced tuning\noptions for the more savvy user. Unraid automatically chooses default\nsettings that should work for most people's needs, but also allows you\nto tweak settings to your liking. This makes Unraid intuitive where you\nwant it, and tunable where you need it. By combining the benefits of\nboth hardware and software agnosticism into a single OS, Unraid provides\na wide variety of ways to store, protect, serve, and play the content\nyou download or create."),(0,i.kt)("p",null,"The capabilities of Unraid are separated into three core parts:\nsoftware-defined NAS, application server, and localized virtualization"),(0,i.kt)("h2",{id:"network-attached-storage"},"Network Attached Storage"),(0,i.kt)("p",null,"At its core, Unraid is a hardware-agnostic solution that can turn almost\nany 64-bit capable system into a NAS. Unraid can manage an array of\ndrives (connected via IDE, SATA, or SAS) that vary in size, speed,\nbrand, and filesystem. In addition, by eliminating the use of\ntraditional RAID-based technologies, we can scale on-demand by adding\nmore drives and without needing to rebalance existing data. Unraid's\nNAS functionality consists of a parity-protected array, user shares, and\nan optional cache pool."),(0,i.kt)("h3",{id:"parity-protected-array"},"Parity-Protected Array"),(0,i.kt)("p",null,"The primary purpose of an Unraid array is to manage and protect the data\nof any group of drives (JBOD) by adding a dedicated ",(0,i.kt)("em",{parentName:"p"},"parity drive"),". A\nparity drive provides a way to reconstruct all of the data from a failed\ndrive onto a replacement. Amazing as it seems, a single parity drive can\nadd protection for all of the others! In Unraid parity is always\nmaintained in real-time and a bit more detail on the access pattern to\nthe drives is described under ",(0,i.kt)("a",{parentName:"p",href:"/zh/unraid-os/manual/storage-management"},"Manual/Storage\nManagement")," with their performance\nimplications."),(0,i.kt)("p",null,"The contents of a hard drive can be thought of as a very long stream of\nbits, each of which can only be a zero or a one. If you sum the values\nof the nth bit on every drive and determine whether that sum is even or\nodd, then you can force the corresponding nth parity bit to also be even\nor odd (zero or one). If a data drive fails, that parity information can\nnow be used to deduce the exact bit values of the failed drive, and\nperfectly rebuild it on a replacement drive. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(815).Z,width:"1000",height:"418"})),(0,i.kt)("p",null,"In the picture above, we have three drives and each has a stream of bits\nthat vary in count based on the device size. By themselves, these\ndevices are unprotected and should any of them fail, data will be lost.\nTo protect ourselves from failure, we must add a fourth disk to serve as\nparity. The parity disk must be of equal or greater size than the\nlargest data disk. To calculate the value of each bit on the parity\ndisk, we only need to know the sum total for each column. If the sum of\na column is an even number, the parity bit should be a 0. If the sum of\na column is an odd number, the parity bit should be a 1. Here's the\nsame image as before, but with parity calculated per frame:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7170).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"Now let's pretend that drive 2 in our example has suffered a failure\nand a new drive has been purchased to replace it:"),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4497).Z,width:"1000",height:"542"})),(0,i.kt)("p",null,"To rebuild the data on the newly replaced disk, we use the same method\nas before, but instead of solving for the parity bit, we solve for the\nmissing bit. For column 1, the sum would be 0, an even number, so the\nmissing bit must be a 0 as well. For column 6, the sum would be 1, an\nodd number, so therefore the missing bit must also be a 1."),(0,i.kt)("p",null,"The ability to rebuild a disk using parity provides protection from data\nloss. Parity protection also provides fault-tolerance by allowing full\nusage of the system while keeping all data accessible, even when a drive\nhas failed."),(0,i.kt)("h3",{id:"user-shares"},"User Shares"),(0,i.kt)("p",null,"Unlike most RAID systems, Unraid saves data to individual drives. To\nsimplify manageability, users can create ",(0,i.kt)("em",{parentName:"p"},"shares")," that allow files\nwritten to them to be spread across multiple drives. Each share can be\nthought of as a top-level folder on a drive. When browsing through a\nshare, all data from all drives that participate in that share will be\ndisplayed together. Users do not need to know which disk a file is on in\norder to access it under a share. Shares can be tuned to include/exclude\nspecific disks and to use various methods for determining how files are\nallocated across those disks. In addition to controlling how data is\ndistributed across drives, users can also control what network protocols\nthe share is visible through as well as define user-level security\npolicy. When accessing your Unraid server over a network protocol, all\nshares exported through that protocol will be visible, but you can\ntoggle protocols for both individual shares as well as at a global\nsetting level. Should you have private data on your system that you wish\nto protect from anonymous access, user accounts can be created and\npolicies defined to limit access to only trusted individuals.\n",(0,i.kt)("img",{src:a(7130).Z,width:"1000",height:"1044"}),"\n",(0,i.kt)("img",{src:a(7661).Z,width:"1000",height:"1100"})),(0,i.kt)("h3",{id:"cache"},"Cache"),(0,i.kt)("p",null,'The cache-drive feature of Unraid provides faster data capture.\nGenerally speaking, by using a cache alongside an array of three or more\ndrives, you can achieve up to 3x write performance. When data is written\nto a user share that has been configured to use the cache drive, all of\nthat data is initially written directly to the dedicated cache drive.\nBecause this drive is not a part of the array, the write speed is\nunimpeded by parity updates. Then an Unraid process called "the mover"\ncopies the data from the cache to the array at a time and frequency of\nyour choosing (typically in the middle of the night). Once the mover\ncompletes, the space consumed previously on the cache drive is freed up.'),(0,i.kt)("p",null,"With a single cache drive, data captured there is at risk, as a parity\ndrive only protects the array, not the cache. However, you can build a\ncache with multiple drives both to increase your cache capacity as well\nas to add protection for that data. The grouping of multiple drives in a\ncache is referred to as building a ",(0,i.kt)("em",{parentName:"p"},"cache pool"),". The Unraid cache pool\nis created through a unique twist on traditional RAID 1, using a BTRFS\nfeature that provides both the data redundancy of RAID 1 plus the\ncapacity expansion of RAID 0."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1860).Z,width:"1000",height:"746"})),(0,i.kt)("h2",{id:"application-server"},"Application Server"),(0,i.kt)("p",null,"Traditional NAS solutions to application support come with three primary\nlimitations:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"They cannot support applications written for other operating\nsystems."),(0,i.kt)("li",{parentName:"ol"},"They can be cumbersome to install and even more difficult to remove."),(0,i.kt)("li",{parentName:"ol"},'They don\'t always "play nice" with other applications in the same\nOS.')),(0,i.kt)("p",null,"Docker addresses these problems in a number of key ways:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"It allows for the use of any Linux operating system to empower a\ngiven application (no longer limited by the operating system of the\nhost itself)."),(0,i.kt)("li",{parentName:"ul"},'It removes the "installation" process that applications have to go\nthrough by providing pre-installed ',(0,i.kt)("em",{parentName:"li"},"images")," that ensure a consistent\nrun-time experience for the user and making them easier to remove\nwhen the user is done with them."),(0,i.kt)("li",{parentName:"ul"},"It enables applications that would normally have issues with\ncoexistence to live in harmony in the same operating environment.")),(0,i.kt)("p",null,"Docker is made up of three primary components: the Engine, the Hub, and\nContainers."),(0,i.kt)("h3",{id:"the-engine"},"The Engine"),(0,i.kt)("p",null,"The Docker Engine represents the management component that is built into\nUnraid 6. Using the engine, we can control application access to vital\nsystem resources, interact with the Docker Hub, and isolate applications\nfrom conflicts."),(0,i.kt)("p",null,"From a storage perspective, the engine leverages the copy-on-write\ncapabilities of the BTRFS filesystem combined with Docker images\nprovided through the hub. The images are essentially tar files with a\nhierarchy so that other images which depend upon a common layer don't\nneed to replicate storage for the layer they share. The shared layers\nare put in a read-only state, while changes made to them are reflected\nonly in the instance for the application that changed it. In simpler\nterms, this means that applications can be efficient in their use of\nboth system performance and storage capacity."),(0,i.kt)("p",null,"This differs from virtual machines where the entirety of the guest\noperating system is emulated. The overhead required to support a virtual\nmachine is therefore much higher than the equivalent overhead for a\ncontainer. Docker containers that feature common libraries and binaries\ndo not replicate those shared resources and instead, leverage the\nefficiency of Linux and a copy-on-write filesystem to minimize the\noverhead."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(4081).Z,width:"1000",height:"898"})),(0,i.kt)("h3",{id:"the-hub"},"The Hub"),(0,i.kt)("p",null,"One of biggest advantages Docker provides over both traditional Linux\ncontainers (LXCs) and virtual machines (VMs) is in its application\nrepository: the Docker Hub. Many traditional Linux operating systems\nnowadays come with a component in their framework known as a ",(0,i.kt)("em",{parentName:"p"},"package\nmanager"),". The job of the package manager is to let people easily install\napplications written for a particular operating system from catalogs\nthat are known as ",(0,i.kt)("em",{parentName:"p"},"repositories"),". While package managers do their job\nfairly well, they come with all the limitations mentioned earlier. Linux\ncontainers and virtual machines, while competent at providing a way to\ncontrol resources allocated to an application, still rely on traditional\npackage managers for software retrieval and installation into their\nrun-time environments."),(0,i.kt)("p",null,"In contrast, the Docker Hub provides all the benefits without the\nlimitations of a traditional package manager. Using the Docker engine,\npre-built applications can be downloaded automatically and, thanks to\nthe copy-on-write benefits we've already covered, the only data that is\nactually downloaded is data not already present on your system. The hub\ncontains over 14,000 Dockerized apps, so finding what you're looking for\nshouldn't be a problem. In addition, thanks to some of our loyal\ncommunity members, users can quickly add many of the most popular\ncontainers through the use of templates in Unraid 6. These forum members\nhave taken it upon themselves to build and maintain these templates and\nthe list of available templates continues to grow."),(0,i.kt)("p",null,"The Docker Hub can be accessed at ",(0,i.kt)("a",{parentName:"p",href:"http://registry.hub.docker.com"},"http://registry.hub.docker.com"),"."),(0,i.kt)("h3",{id:"containers"},"Containers"),(0,i.kt)("p",null,"The cornerstone of Docker is in its ability to use Linux control groups,\nnamespace isolation, and images to create isolated execution\nenvironments in the form of Docker containers. Docker controls the\nresources allocated to the Containers and isolates them from conflicting\nwith other applications on the same system. This provides all the\nbenefits of traditional virtual machines, but with none of the overhead\nassociated with emulating hardware, making containers ridiculously\nefficient and in some studies, barely distinguishable from bare-metal\nequivalents."),(0,i.kt)("p",null,"Docker works by allowing applications access to the system resources of\nthe host operating system, such as CPU, memory, disk, and network, but\nisolates them into their own run-time environments. Unlike virtual\nmachines, containers do not require hardware emulation, which eliminates\noverhead, hardware requirements, and provides near bare-metal\nperformance."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(1873).Z,width:"1000",height:"858"})),(0,i.kt)("h2",{id:"virtualization-host"},"Virtualization Host"),(0,i.kt)("p",null,"Virtualization technology has advanced greatly since it was first\nintroduced and provides a wealth of benefits to users. By supporting the\nuse of virtual machines on Unraid 6, we can run an even wider array of\napplications in isolated environments. While Docker containers are the\npreferred method for running Linux-based headless applications, virtual\nmachines offer these unique benefits:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Run non-Linux operating systems (e.g. Windows)."),(0,i.kt)("li",{parentName:"ol"},"Support drivers for physical devices independently of Unraid OS."),(0,i.kt)("li",{parentName:"ol"},"Customize and tune the guest operating systems.")),(0,i.kt)("p",null,"Unraid Server OS is designed to run as a virtualization host, leveraging\na hypervisor to partition resources to virtualized guests in a secure\nand isolated manner. To simplify, virtual machines can be assigned a\nwider array of resources than Docker containers but still offer the same\nbenefits of isolated access to those resources. This enables Unraid\nservers to handle a variety of other tasks, more than just\nnetwork-attached storage."),(0,i.kt)("h3",{id:"assignable-devices"},"Assignable Devices"),(0,i.kt)("p",null,"Our implementation of KVM includes modern versions of QEMU, libvirt,\nVFIO","*",", VirtIO, and VirtFS. We also support Open Virtual Machine\nFirmware (OVMF) which enables UEFI support for virtual machines (adding\nSecureBoot support as well as simplified GPU pass through support). This\nallows for a wide array of resources to be assigned to virtual machines\nranging from the basics (storage, compute, network, and memory) to the\nadvanced (full PCI / USB devices). We can emulate multiple machine types\n(i440fx and Q35), support CPU pinning, optimize for SSDs, and much more.\nBest of all, these virtualization technologies prevent their use from\nimpacting the reliability of the host operating system."),(0,i.kt)("p",null,(0,i.kt)("img",{src:a(7795).Z,width:"1000",height:"1090"})),(0,i.kt)("h2",{id:"simplified-management"},"Simplified Management"),(0,i.kt)("p",null,"Management of your Unraid system is accomplished through an intuitive\nweb interface that offers basic controls for common tasks as well as\nadvanced tuning options for the more savvy user. Unraid automatically\nchooses default settings that should work for most people's needs, but\nalso allows you to tweak settings to your liking. This makes Unraid\nintuitive where you want it, and tunable where you need it."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Dashboard View"),". With indicators for disk health, temperatures,\nresource utilization, and application states, the dashboard provides\na 50,000 foot view of what's happening on your system."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Array Operation"),". Assign devices for use in either the array or\ncache, spin up and down individual disks, start and stop the array,\nand even perform an on-the-fly parity check, all from a single page."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Share Management"),". Setting up shares on Unraid is easy. Give the\nshare a name, optionally apply policies to access and distribution\ncontrols, and click create!"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Disk Tuning"),". Control how and when devices spin down, the default\nfile system format, and other advanced settings."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network Controls"),". Enable NIC bonding and bridging, set time\nservers, and more."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"APC UPS Safe Shutdown"),". When connected to an APC UPS, Unraid can\nsafely shut down the system in the event of a power loss."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System Notifications"),". Unraid can alert you to important events\nhappening on your system through the web management console as well\nas e-mail and other notification systems."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Task Scheduler"),". Choose if and when you want to have an automatic\nparity check occur as well how often the mover script should\ntransfer files from the cache to the array."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Docker Containers"),". Manage application controls from a single\npane of glass. Add applications with minimal effort using\ncommunity-provided templates."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Machines"),". Choose between pre-created virtual machine\nimages or create your own custom VM from scratch.")))}u.isMDXComponent=!0},1860:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Cache-pool-450c7d3f273b54b368f043b57c5c27af.gif"},4081:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker-vs-VM@2x-4e0f358c796fdcd3872d42484b0a4a97.png"},1873:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Docker@2x-34a68141bdeab34e896d69277795592d.png"},4497:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Drive_failure@2x-22bf648fee323c52d951d70cd8668328.png"},7795:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/KVM@2x-9d51dccfc0f854d6fe791273e5c01664.png"},815:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/No_parity@2x-59d66b6c69ee318d1b8596c7dc61c39a.png"},7170:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/Parity@2x-d76efc1d324be1a15e99448f5c9dbc03.png"},7661:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_access@2x-43a230464e536f6c049d4b00e3ba1f74.png"},7130:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/User_shares_-_distribution@2x-102f25c294db601892c3a5a862ec1d88.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/f7b0b541.beb81f22.js b/zh/assets/js/f7b0b541.beb81f22.js new file mode 100644 index 000000000..806f81939 --- /dev/null +++ b/zh/assets/js/f7b0b541.beb81f22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2454],{4137:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var a=r(7294);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,s=function(e,t){if(null==e)return{};var r,a,s={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,s=e.mdxType,n=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),d=s,m=p["".concat(l,".").concat(d)]||p[d]||h[d]||n;return r?a.createElement(m,o(o({ref:t},u),{},{components:r})):a.createElement(m,o({ref:t},u))}));function m(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var n=r.length,o=new Array(n);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:s,o[1]=i;for(var c=2;c<n;c++)o[c]=r[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7088:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var a=r(7462),s=(r(7294),r(4137));const n={sidebar_position:4},o="Network access",i={unversionedId:"unraid-os/manual/shares/network-access",id:"unraid-os/manual/shares/network-access",title:"Network access",description:"Communication protocols",source:"@site/docs/unraid-os/manual/shares/network-access.md",sourceDirName:"unraid-os/manual/shares",slug:"/unraid-os/manual/shares/network-access",permalink:"/zh/unraid-os/manual/shares/network-access",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/shares/network-access.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"unraidSidebar",previous:{title:"Disk shares",permalink:"/zh/unraid-os/manual/shares/disk-shares"},next:{title:"Create a new share",permalink:"/zh/unraid-os/manual/shares/create-a-share"}},l={},c=[{value:"Communication protocols",id:"communication-protocols",level:2},{value:"Protocol selection",id:"protocol-selection",level:2},{value:"Access permissions at share level",id:"access-permissions-at-share-level",level:2},{value:"Share security",id:"share-security",level:2}],u={toc:c},p="wrapper";function h(e){let{components:t,...r}=e;return(0,s.kt)(p,(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"network-access"},"Network access"),(0,s.kt)("h2",{id:"communication-protocols"},"Communication protocols"),(0,s.kt)("p",null,"For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"SMB"),", or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"NFS"),", or Network File System, is a widely-used protocol on Unix-compatible systems."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"FTP"),", or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.")),(0,s.kt)("admonition",{type:"important"},(0,s.kt)("p",{parentName:"admonition"},"As of Unraid 6.9, ",(0,s.kt)("strong",{parentName:"p"},"AFP")," support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in ",(0,s.kt)("strong",{parentName:"p"},(0,s.kt)("em",{parentName:"strong"},"Settings > SMB"))," set the ",(0,s.kt)("strong",{parentName:"p"},"Enhanced macOS interoperability")," parameter to ",(0,s.kt)("em",{parentName:"p"},"Yes"),".")),(0,s.kt)("h2",{id:"protocol-selection"},"Protocol selection"),(0,s.kt)("p",null,"Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases."),(0,s.kt)("p",null,"For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer."),(0,s.kt)("h2",{id:"access-permissions-at-share-level"},"Access permissions at share level"),(0,s.kt)("p",null,"Each protocol can be configured at the share level. On the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled ",(0,s.kt)("strong",{parentName:"p"},"Export")," and has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes")," - The share will be visible across the network."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Yes (Hidden)")," - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"No")," - This will disable network access through that protocol, for that share.")),(0,s.kt)("h2",{id:"share-security"},"Share security"),(0,s.kt)("p",null,"Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available."),(0,s.kt)("p",null,"For example, you may configure a ",(0,s.kt)("inlineCode",{parentName:"p"},"movies")," share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials."),(0,s.kt)("p",null,"When you select an existing share on the ",(0,s.kt)("strong",{parentName:"p"},"Shares")," tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols ",(0,s.kt)("a",{parentName:"p",href:"#access-permissions-at-share-level"},"you have enabled"),"."),(0,s.kt)("p",null,"The ",(0,s.kt)("strong",{parentName:"p"},"Security")," setting has the following options:"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Public")," - The share is unsecured and all users have both read and write access to the contents of the share."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Secure")," - The share is secured and all users, including guests, have read access. You can select which of your users have write access."),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},"Private")," - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.")),(0,s.kt)("admonition",{title:"Windows 'Gotcha'",type:"caution"},(0,s.kt)("p",{parentName:"admonition"},"There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails."),(0,s.kt)("p",{parentName:"admonition"},"If you have any shares on the server set to ",(0,s.kt)("em",{parentName:"p"},"Private")," or ",(0,s.kt)("em",{parentName:"p"},"Secure")," access, it is important that you connect to that share first, before any shares set for ",(0,s.kt)("em",{parentName:"p"},"Public")," access."),(0,s.kt)("p",{parentName:"admonition"},"As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/fee3ac30.dc3e06e8.js b/zh/assets/js/fee3ac30.dc3e06e8.js new file mode 100644 index 000000000..617aee27a --- /dev/null +++ b/zh/assets/js/fee3ac30.dc3e06e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7328],{4137:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,h=p["".concat(c,".").concat(y)]||p[y]||d[y]||i;return n?r.createElement(h,o(o({ref:t},u),{},{components:n})):r.createElement(h,o({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,o[1]=s;for(var l=2;l<i;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},8330:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(4137));const i={sidebar_position:3},o="Data Encryption",s={unversionedId:"unraid-os/manual/security/data-encryption",id:"unraid-os/manual/security/data-encryption",title:"Data Encryption",description:"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.",source:"@site/docs/unraid-os/manual/security/data-encryption.md",sourceDirName:"unraid-os/manual/security",slug:"/unraid-os/manual/security/data-encryption",permalink:"/zh/unraid-os/manual/security/data-encryption",draft:!1,editUrl:"https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/security/data-encryption.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"unraidSidebar",previous:{title:"Securing webGUI connections (SSL)",permalink:"/zh/unraid-os/manual/security/secure-webgui-ssl"},next:{title:"Flash Drive",permalink:"/zh/unraid-os/manual/security/flash-drive"}},c={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"data-encryption"},"Data Encryption"),(0,a.kt)("p",null,"Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup"},"Linux Unified Key System"),") encryption modules."),(0,a.kt)("p",null,"LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly."),(0,a.kt)("p",null,"The home page for LUKS can be found ",(0,a.kt)("a",{parentName:"p",href:"https://gitlab.com/cryptsetup/cryptsetup"},"here")),(0,a.kt)("p",null,"Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive."),(0,a.kt)("p",null,"The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives."),(0,a.kt)("hr",null),(0,a.kt)("p",null,"To encrypt a drive (Note that this will erase any content already on the drive)."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Go to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab."),(0,a.kt)("li",{parentName:"ol"},"Stop the array."),(0,a.kt)("li",{parentName:"ol"},"Select the drive."),(0,a.kt)("li",{parentName:"ol"},"In ",(0,a.kt)("strong",{parentName:"li"},"File system type")," change the file system to the encrypted type that you want."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Apply")," to commit the change."),(0,a.kt)("li",{parentName:"ol"},"Select ",(0,a.kt)("strong",{parentName:"li"},"Done")," to return to the ",(0,a.kt)("strong",{parentName:"li"},"Main")," tab. The drive will now show as unmountable and the option to format unmountable drives will be present."),(0,a.kt)("li",{parentName:"ol"},"Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.")),(0,a.kt)("p",null,"Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/main.54b490a9.js b/zh/assets/js/main.54b490a9.js deleted file mode 100644 index 21ac4829d..000000000 --- a/zh/assets/js/main.54b490a9.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.54b490a9.js.LICENSE.txt */ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"073d1822":[()=>n.e(4787).then(n.bind(n,7556)),"@site/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/faq/redeem-license-activation-code.md",7556],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"11f09efe":[()=>n.e(2811).then(n.t.bind(n,3552,19)),"~docs/default/category-zh-unraidsidebar-category-tutorial-basics-943.json",3552],"1217ffab":[()=>n.e(6047).then(n.t.bind(n,7931,19)),"~docs/default/category-zh-unraidsidebar-category-contribute-66e.json",7931],"14e9ad4a":[()=>n.e(9799).then(n.t.bind(n,6961,19)),"~docs/default/category-zh-unraidsidebar-category-zfs-3b1.json",6961],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"41ecef38":[()=>n.e(1409).then(n.t.bind(n,5726,19)),"~docs/default/category-zh-unraidsidebar-category-manual-afe.json",5726],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"56369e62":[()=>n.e(2450).then(n.t.bind(n,4793,19)),"~docs/default/category-zh-unraidsidebar-category-faq-46a.json",4793],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"779ec84f":[()=>n.e(8760).then(n.t.bind(n,5652,19)),"~docs/default/category-zh-unraidsidebar-category-unraid-connect-d11.json",5652],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"90126b70":[()=>n.e(79).then(n.bind(n,8693)),"@site/docs/unraid-os/manual/shares.md",8693],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9405f2e8":[()=>n.e(5352).then(n.t.bind(n,9324,19)),"~docs/default/category-zh-unraidsidebar-category-tutorial-extras-da4.json",9324],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],a01c28fc:[()=>n.e(7712).then(n.t.bind(n,7667,19)),"~docs/default/category-zh-unraidsidebar-category-getting-started-400.json",7667],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],a2ddc900:[()=>n.e(2922).then(n.t.bind(n,6637,19)),"~docs/default/category-zh-unraidsidebar-category-legacy-documentation-8e4.json",6637],a777e5e5:[()=>n.e(7899).then(n.t.bind(n,9949,19)),"~docs/default/category-zh-unraidsidebar-category-guides-825.json",9949],a78d85c7:[()=>n.e(7328).then(n.bind(n,5536)),"@site/docs/unraid-os/manual/security.md",5536],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],bf6429c6:[()=>n.e(4482).then(n.t.bind(n,7324,19)),"~docs/default/category-zh-unraidsidebar-category-unraid-os-de0.json",7324],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f570bbeb:[()=>n.e(8076).then(n.t.bind(n,4012,19)),"~docs/default/category-zh-unraidsidebar-category-release-notes-723.json",4012],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/zh/search/",component:f("/zh/search/","d52"),exact:!0},{path:"/zh/",component:f("/zh/","d20"),routes:[{path:"/zh/",component:f("/zh/","3c2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/contribute/",component:f("/zh/category/contribute/","ace"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/faq/",component:f("/zh/category/faq/","97e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/getting-started/",component:f("/zh/category/getting-started/","bb2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/guides/",component:f("/zh/category/guides/","f96"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/legacy-documentation/",component:f("/zh/category/legacy-documentation/","5e9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/manual/",component:f("/zh/category/manual/","12a"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/release-notes/",component:f("/zh/category/release-notes/","d0c"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/tutorial---basics/",component:f("/zh/category/tutorial---basics/","faa"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/tutorial---extras/",component:f("/zh/category/tutorial---extras/","3b0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/unraid-connect/",component:f("/zh/category/unraid-connect/","80d"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/unraid-os/",component:f("/zh/category/unraid-os/","2b5"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/zfs/",component:f("/zh/category/zfs/","9e0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/connect/about/",component:f("/zh/connect/about/","0b8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/connect/help/",component:f("/zh/connect/help/","b28"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/connect/remote-access/",component:f("/zh/connect/remote-access/","17e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/intro/",component:f("/zh/contribute-to-docs/intro/","87f"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/congratulations/",component:f("/zh/contribute-to-docs/tutorial-basics/congratulations/","5f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:f("/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/","cae"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/create-a-document/",component:f("/zh/contribute-to-docs/tutorial-basics/create-a-document/","4a9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/create-a-page/",component:f("/zh/contribute-to-docs/tutorial-basics/create-a-page/","8f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/markdown-features/",component:f("/zh/contribute-to-docs/tutorial-basics/markdown-features/","66e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:f("/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/","f46"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-extras/translate-your-site/",component:f("/zh/contribute-to-docs/tutorial-extras/translate-your-site/","ef1"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/Articles/dual-boot-unraid-and-windows/",component:f("/zh/legacy/Articles/dual-boot-unraid-and-windows/","19a"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:f("/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/","3f7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/Articles/upgrading-to-unraid-6/",component:f("/zh/legacy/Articles/upgrading-to-unraid-6/","0d3"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/cache-disk/",component:f("/zh/legacy/FAQ/cache-disk/","a84"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/check-disk-filesystems/",component:f("/zh/legacy/FAQ/check-disk-filesystems/","d60"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/check-harddrive-speed/",component:f("/zh/legacy/FAQ/check-harddrive-speed/","ed7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/console/",component:f("/zh/legacy/FAQ/console/","9ba"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/parity-swap-procedure/",component:f("/zh/legacy/FAQ/parity-swap-procedure/","29e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/Parity/",component:f("/zh/legacy/FAQ/Parity/","3d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/replacing-a-data-drive/",component:f("/zh/legacy/FAQ/replacing-a-data-drive/","ef6"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/replacing-multiple-data-drives/",component:f("/zh/legacy/FAQ/replacing-multiple-data-drives/","138"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:f("/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","2f4"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:f("/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/","ebf"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/shrink-array/",component:f("/zh/legacy/FAQ/shrink-array/","100"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/terminal-access/",component:f("/zh/legacy/FAQ/terminal-access/","fb3"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:f("/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","e03"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/transferring-files-within-the-unraid-server/",component:f("/zh/legacy/FAQ/transferring-files-within-the-unraid-server/","de2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/understanding-smart-reports/",component:f("/zh/legacy/FAQ/understanding-smart-reports/","6f7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/usb-flash-drive-preparation/",component:f("/zh/legacy/FAQ/usb-flash-drive-preparation/","5e1"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/licensing-faq/",component:f("/zh/unraid-os/faq/licensing-faq/","460"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/os-faq/",component:f("/zh/unraid-os/faq/os-faq/","b74"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/redeem-license-activation-code/",component:f("/zh/unraid-os/faq/redeem-license-activation-code/","e32"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/unraid-account/",component:f("/zh/unraid-os/faq/unraid-account/","023"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/guides/configuring-time-machine/",component:f("/zh/unraid-os/guides/configuring-time-machine/","8f6"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/guides/wol-setup-for-unraid/",component:f("/zh/unraid-os/guides/wol-setup-for-unraid/","ef2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/additional-settings/",component:f("/zh/unraid-os/manual/additional-settings/","315"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/applications/",component:f("/zh/unraid-os/manual/applications/","938"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/changing-the-flash-device/",component:f("/zh/unraid-os/manual/changing-the-flash-device/","6a9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/docker-management/",component:f("/zh/unraid-os/manual/docker-management/","914"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/getting-started/",component:f("/zh/unraid-os/manual/getting-started/","731"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/getting-started/manual-install-method/",component:f("/zh/unraid-os/manual/getting-started/manual-install-method/","d35"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/multi-language/",component:f("/zh/unraid-os/manual/multi-language/","9e4"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/security/",component:f("/zh/unraid-os/manual/security/","a3c"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/shares/",component:f("/zh/unraid-os/manual/shares/","761"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/storage-management/",component:f("/zh/unraid-os/manual/storage-management/","b58"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/tools/",component:f("/zh/unraid-os/manual/tools/","8d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/troubleshooting/",component:f("/zh/unraid-os/manual/troubleshooting/","1e3"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/upgrade-instructions/",component:f("/zh/unraid-os/manual/upgrade-instructions/","026"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/users/",component:f("/zh/unraid-os/manual/users/","ad7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/vm-management/",component:f("/zh/unraid-os/manual/vm-management/","0c2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/vm-support/",component:f("/zh/unraid-os/manual/vm-support/","aac"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/what-is-unraid/",component:f("/zh/unraid-os/manual/what-is-unraid/","b8d"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/zfs/placeholder/",component:f("/zh/unraid-os/manual/zfs/placeholder/","a18"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.0/",component:f("/zh/unraid-os/release-notes/6.10.0/","10a"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.1/",component:f("/zh/unraid-os/release-notes/6.10.1/","ead"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.2/",component:f("/zh/unraid-os/release-notes/6.10.2/","054"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.3/",component:f("/zh/unraid-os/release-notes/6.10.3/","0d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.0/",component:f("/zh/unraid-os/release-notes/6.11.0/","a74"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.1/",component:f("/zh/unraid-os/release-notes/6.11.1/","161"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.2/",component:f("/zh/unraid-os/release-notes/6.11.2/","c9d"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.3/",component:f("/zh/unraid-os/release-notes/6.11.3/","595"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.4/",component:f("/zh/unraid-os/release-notes/6.11.4/","3f8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.5/",component:f("/zh/unraid-os/release-notes/6.11.5/","367"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.0/",component:f("/zh/unraid-os/release-notes/6.12.0/","4f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.1/",component:f("/zh/unraid-os/release-notes/6.12.1/","184"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.2/",component:f("/zh/unraid-os/release-notes/6.12.2/","cfa"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.3/",component:f("/zh/unraid-os/release-notes/6.12.3/","607"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.9.0/",component:f("/zh/unraid-os/release-notes/6.9.0/","9fb"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.9.1/",component:f("/zh/unraid-os/release-notes/6.9.1/","a58"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.9.2/",component:f("/zh/unraid-os/release-notes/6.9.2/","c95"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:f("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const z=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function P(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class N extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),P(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(z,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const O=N,I="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${I}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function j(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:I}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(j,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(O,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),P(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;P(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/zh/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/zh/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/zh/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/zh/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/zh/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/zh/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/zh/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/zh/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/zh/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/zh/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/zh/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/zh/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/zh/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/zh/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/zh/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/zh/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/zh/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/zh/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/zh/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/zh/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/zh/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/zh/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/zh/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/zh/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/zh/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/zh/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/zh/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/zh/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/zh/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/zh/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/zh/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/zh/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/zh/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/zh/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/zh/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/zh/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/zh/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/zh/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/zh/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/zh/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security","path":"/zh/unraid-os/manual/security","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares","path":"/zh/unraid-os/manual/shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/zh/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/zh/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/zh/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/zh/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/zh/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/zh/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/zh/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/zh/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/zh/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/zh/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/zh/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/zh/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/zh/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/zh/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/zh/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/zh/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/zh/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/zh/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/zh/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/zh/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/zh/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/zh/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/zh/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/zh/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/zh/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/zh/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/zh/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/zh/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/zh/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/zh/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/zh/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/zh/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/zh/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/zh/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/zh/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/zh/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/zh/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/zh/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/zh/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"zh","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,z=u.Z.canUseIntersectionObserver,P=(0,a.useRef)(),N=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!z&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{z&&P.current&&P.current.disconnect()})),[P,T,z,_]);const O=T?.startsWith("#")??!1,I=!T||!_||O;return I||g||S.collectLink(T),I?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:N,onTouchStart:N,innerRef:e=>{E.current=e,z&&e&&_&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),P.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),R=n(2957);var z=n(3768),P=n(3086);const N=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,P.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,z.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(N.Provider,{value:n},t)}function I(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function D(){const e=(0,r.useContext)(N);if(!e)throw new z.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,P.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=D();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var F=n(9200),B=n(1048);function j(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,B.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(j,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,F.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let ze=null;function Pe(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Ne(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Oe(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>ze?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;ze=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Ne,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&ze&&h.current&&(0,Le.createPortal)(r.createElement(ze,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Pe,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function Ie(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Oe,e.themeConfig.algolia)}const De={searchBox:"searchBox_ZlJk"};function Me(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,De.searchBox)},t)}var Fe=n(9871),Be=n(3734);var je=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Me,{className:n},r.createElement(Ie,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),s=(0,Be.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),s=(0,Be.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,Be.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Fe.Iw)(n),m=(0,Fe.gB)(n),{savePreferredVersionName:h}=(0,je.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,Be.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=D();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(M,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Me,null,r.createElement(Ie,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function pt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,z.Qc)([F.S,k.pl,R.OC,je.L5,i.VC,function(e){let{children:t}=e;return r.createElement(P.n2,null,r.createElement(L.M,null,r.createElement(O,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(3734),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3734:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>f,jA:()=>h,xz:()=>p,hI:()=>x,lO:()=>k,vY:()=>E,oz:()=>S,s1:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432);function c(e){return Array.from(new Set(e))}var d=n(9003);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function z(){N(C(y()))}var P=!1;function N(e){if(P)P=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(P=!0,M(a))}(e)}))}}var O=C(y()),I=[O.key];function D(e){return _+f(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(v,z)):0===F&&(window.removeEventListener(b,R),o&&window.removeEventListener(v,z))}var j=!1;var U={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=I.indexOf(U.location.key),u=I.slice(0,s+1);u.push(o.key),I=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=I.indexOf(U.location.key);-1!==s&&(I[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),p(e)}var T=m();function A(e){(0,r.Z)(j,e),j.length=t.length,T.notifyListeners(j.location,j.action)}var L=!1,R=null;function z(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=j.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===f(a))return;R=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=j.location,n=I.lastIndexOf(f(t));-1===n&&(n=0);var r=I.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,D(a))}(e)}))}}(a)}}var P=x(),N=y(P);P!==N&&_(N);var O=C(),I=[f(O)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,z):0===M&&window.removeEventListener(k,z)}var B=!1;var j={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,j.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);if(x()!==a){R=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(f(j.location)),i=I.slice(0,o+1);i.push(t),I=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,j.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=y(b+t);x()!==a&&(R=t,_(a));var o=I.indexOf(f(j.location));-1!==o&&(I[o]=t),A({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return j}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return p(e,void 0,"string"==typeof e?h():e.key||h())})),v=f;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=f(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var m=0;m<p.length;++m){if(d&&d.cause==f+","+m)return;var h=p[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(L<A||"string"==typeof R.value);R=R.next)C++,L+=R.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var z=_[0],P=x.slice(0,T),N=x.slice(T+z.length),O=E+x.length;d&&O>d.reach&&(d.reach=O);var I=S.prev;if(P&&(I=s(t,I,P),E+=P.length),u(t,I,C),S=s(t,I,new a(f,g?r.tokenize(z,g):z,y,z)),N&&s(t,S,N),C>1){var D={cause:f+","+m,reach:O};i(e,t,n,S.prev,E,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),a.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in p(b))if(v in c){f[b]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(h,e)||!p.call(m,e)&&(f.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,R=60113,z=60120,P=60115,N=60116,O=60121,I=60128,D=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;S=B("react.element"),E=B("react.portal"),x=B("react.fragment"),_=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),A=B("react.context"),L=B("react.forward_ref"),R=B("react.suspense"),z=B("react.suspense_list"),P=B("react.memo"),N=B("react.lazy"),O=B("react.block"),B("react.scope"),I=B("react.opaque.id"),D=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var j,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===j)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);j=t&&t[1]||""}return"\n"+j+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case R:return"Suspense";case z:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case P:return V(e.type);case O:return V(e._render);case N:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Re(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function ze(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Pe(e,t){return e(t)}function Ne(e,t,n,r,a){return e(t,n,r,a)}function Oe(){}var Ie=Pe,De=!1,Me=!1;function Fe(){null===Te&&null===Ae||(Oe(),ze())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var je=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){je=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){je=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Rt=Ct("transitionend"),zt=new Map,Pt=new Map,Nt=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function Ot(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Pt.set(r,t),zt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var It=8;function Dt(e){if(0!=(1&e))return It=15,1;if(0!=(2&e))return It=14,2;if(0!=(4&e))return It=13,4;var t=24&e;return 0!==t?(It=12,t):0!=(32&e)?(It=11,32):0!==(t=192&e)?(It=10,t):0!=(256&e)?(It=9,256):0!==(t=3584&e)?(It=8,t):0!=(4096&e)?(It=7,4096):0!==(t=4186112&e)?(It=6,t):0!==(t=62914560&e)?(It=5,t):67108864&e?(It=4,67108864):0!=(134217728&e)?(It=3,134217728):0!==(t=805306368&e)?(It=2,t):0!=(1073741824&e)?(It=1,1073741824):(It=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return It=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=It=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Dt(s),a=It):0!==(l&=o)&&(r=Dt(l),a=It)}else 0!==(o=n&~i)?(r=Dt(o),a=It):0!==l&&(r=Dt(l),a=It);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Dt(t),a<=It)return t;It=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=jt(24&~t))?Bt(10,t):e;case 10:return 0===(e=jt(192&~t))?Bt(8,t):e;case 8:return 0===(e=jt(3584&~t))&&(0===(e=jt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=jt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function jt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){De||Oe();var a=Yt,o=De;De=!0;try{Ne(a,e,t,n,r)}finally{(De=o)||Fe()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<ft.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Or(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Or(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=a({},dn,{view:0,detail:0}),mn=ln(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},pn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Rn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),zn=ln(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Pn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),On=ln(Nn),In=[9,13,27,32],Dn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!Dn||Mn&&8<Mn&&11>=Mn),jn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==In.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Dr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,De)e(t);else{De=!0;try{Pe(e,t)}finally{De=!1,Fe()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Dr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}Ot("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Ot("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Ot(Nt,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Pt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Nr(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function zr(e){e[Rr]||(e[Rr]=!0,l.forEach((function(t){Cr.has(t)||Pr(t,!1,e,null),Pr(t,!0,e,null)})))}function Pr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Nr(o,e,a,t),i.add(l))}function Nr(e,t,n,r){var a=Pt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!je||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Or(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Ie(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=o,a=_e(n),i=[];e:{var l=zt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=zn;break;case Tt:case At:case Lt:s=yn;break;case Rt:s=Pn;break;case"scroll":s=mn;break;case"wheel":s=On;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Rn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==f&&(null!=(h=Be(m,f))&&c.push(Ir(m,h,p)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",f="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Rn,h="onPointerLeave",f="onPointerEnter",m="pointer"),d=null==s?l:ra(s),p=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=p,h=null,ta(a)===r&&((c=new c(f,m+"enter",u,n,a)).target=p,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(f=u,m=0,p=c=s;p;p=Mr(p))m++;for(p=0,h=f;h;h=Mr(h))p++;for(;0<m-p;)c=Mr(c),m--;for(;0<p-m;)f=Mr(f),p--;for(;m--;){if(c===f||null!==f&&c===f.alternate)break e;c=Mr(c),f=Mr(f)}c=null}else c=null;null!==s&&Fr(i,l,s,c,!1),null!==u&&null!==d&&Fr(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Dn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Dr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Fn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,jn);case"textInput":return(e=t.data)===jn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Dn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Dr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Ir(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Be(e,n))&&r.unshift(Ir(e,o,a)),null!=(o=Be(e,t))&&r.push(Ir(e,o,a))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Be(n,o))&&i.unshift(Ir(n,s,l)):a||null!=(s=Be(n,o))&&i.push(Ir(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var jr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},fa=sa(da),pa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(pa),ua(fa)}function va(e,t,n){if(fa.current!==da)throw Error(i(168));ca(fa,t),ca(pa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=fa.current,ca(fa,e),ca(pa,pa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(fa),ca(fa,e)):ua(pa),ca(pa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Ra=o.unstable_getCurrentPriorityLevel,za=o.unstable_ImmediatePriority,Pa=o.unstable_UserBlockingPriority,Na=o.unstable_NormalPriority,Oa=o.unstable_LowPriority,Ia=o.unstable_IdlePriority,Da={},Ma=void 0!==Aa?Aa:function(){},Fa=null,Ba=null,ja=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Ra()){case za:return 99;case Pa:return 98;case Na:return 97;case Oa:return 96;case Ia:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return za;case 98:return Pa;case 97:return Na;case 96:return Oa;case 95:return Ia;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==Ba){var e=Ba;Ba=null,Ca(e)}Qa()}function Qa(){if(!ja&&null!==Fa){ja=!0;var e=0;try{var t=Fa;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fa=null}catch(n){throw null!==Fa&&(Fa=Fa.slice(e+1)),_a(za,Va),n}finally{ja=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Di=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=o.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,s);break e}f=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(p,f,s):m))break e;f=a({},f,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=f),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=f}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),a=ps(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:fa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:fa.current,a.context=ha(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=p(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=f(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=p(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=f(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Ro=sa(Ao),zo=sa(Ao);function Po(e){if(e===Ao)throw Error(i(174));return e}function No(e,t){switch(ca(zo,t),ca(Ro,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Oo(){ua(Lo),ua(Ro),ua(zo)}function Io(e){Po(zo.current);var t=Po(Lo.current),n=pe(t,e.type);t!==n&&(ca(Ro,e),ca(Lo,n))}function Do(e){Ro.current===e&&(ua(Lo),ua(Ro))}var Mo=sa(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Bo=null,jo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=jo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(Bo=e);$o(Bo,n)}Bo=e,jo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,Bo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Bo=e}function Zo(e){if(e!==Bo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=jo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){jo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}jo=null}}else jo=Bo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){jo=Bo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Pi:Ni,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Oi,e=n(r,a)}while(ri)}if(Ko.current=zi,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Di=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Nl;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return fi(a,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,m=p.getSnapshot,h=f.source;f=f.subscribe;var g=Jo;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Ri.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=fi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return pi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Ri.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ri(e,t,n){var r=fs(),a=ps(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var zi={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Pi={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:I,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Ii=k.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Fi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Di?(t.flags|=1,Mi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Bi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,ji(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function ji(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Di=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Di=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Mi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:fa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Di?(t.flags|=1,Mi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:fa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var f=t.memoizedState;i.state=f,po(t,r,i,a),s=t.memoizedState,l!==r||f!==s||pa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:fa.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wo(t,i,r,s),io=!1,f=t.memoizedState,i.state=f,po(t,r,i,a);var m=t.memoizedState;l!==d||f!==m||pa.current||io?("function"==typeof p&&(go(t,n,p,r),m=t.memoizedState),(u=io||vo(t,n,u,r,f,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Ii.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Mi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),No(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Mo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Mo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Mo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Mo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Fo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Oo(),ua(pa),ua(fa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Do(t);var o=Po(zo.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Po(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Br)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Po(zo.current),Po(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Mo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Mo.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Nl||0==(134217727&Ul)&&0==(134217727&$l)||vs(Nl,Il))),(r||n)&&(t.flags|=4),null);case 4:return Oo(),Qi(t),null===e&&zr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Mo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Fo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Mo,1&Mo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Mo.current,ca(Mo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Oo(),ua(pa),ua(fa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Do(e),null;case 13:return ua(Mo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Mo),null;case 4:return Oo(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Po(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===I?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function pl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){js(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Ms(n,e),Ds(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Ms(t,n);else{r=t;try{a()}catch(o){js(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){js(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Rl=k.ReactCurrentDispatcher,zl=k.ReactCurrentOwner,Pl=0,Nl=null,Ol=null,Il=0,Dl=0,Ml=sa(0),Fl=0,Bl=null,jl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Pl)?$a():-1!==ls?ls:ls=$a()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=jl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Pl)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Nl&&($l|=t,4===Fl&&vs(e,Il));var r=qa();1===t?0!=(8&Pl)&&0==(48&Pl)?ys(e):(gs(e,n),0===Pl&&(Vl(),Va())):(0==(4&Pl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Dt(u);var d=It;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Mt(e,e===Nl?Il:0),t=It,0===r)null!==n&&(n!==Da&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Da&&Ca(n)}15===t?(n=ys.bind(null,e),null===Fa?(Fa=[n],Ba=_a(za,Qa)):Fa.push(n),n=Da):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Pl))throw Error(i(327));var t=e.callbackNode;if(Is()&&e.callbackNode!==t)return null;var n=Mt(e,e===Nl?Il:0);if(0===n)return null;var r=n,a=Pl;Pl|=16;var o=Cs();for(Nl===e&&Il===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Rl.current=o,Pl=a,null!==Ol?r=0:(Nl=null,Il=0,r=Fl),0!=(jl&$l))xs(e,0);else if(0!==r){if(2===r&&(Pl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ps(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Mt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ps.bind(null,e),r);break}Ps(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ps.bind(null,e),n);break}Ps(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Pl))throw Error(i(327));if(Is(),e===Nl&&0!=(e.expiredLanes&Il)){var t=Il,n=Ts(e,t);0!=(jl&$l)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Pl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ps(e),gs(e,$a()),null}function ws(e,t){var n=Pl;Pl|=1;try{return e(t)}finally{0===(Pl=n)&&(Vl(),Va())}}function ks(e,t){var n=Pl;Pl&=-2,Pl|=8;try{return e(t)}finally{0===(Pl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Ml,Dl),Dl|=t,jl|=t}function Es(){Dl=Ml.current,ua(Ml)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Ol)for(n=Ol.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Oo(),ua(pa),ua(fa),Wo();break;case 5:Do(r);break;case 4:Oo();break;case 13:case 19:ua(Mo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Nl=e,Ol=Zs(e.current,null),Il=Dl=jl=t,Fl=0,Bl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Ol;try{if(to(),Ko.current=zi,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,zl.current=null,null===n||null===n.return){Fl=1,Bl=t,Ol=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Il,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Mo.current),f=i;do{var p;if(p=13===f.tag){var m=f.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=f.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var b=new Set;b.add(u),f.updateQueue=b}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:o=s,f.flags|=4096,t&=-t,f.lanes|=t,fo(f,fl(0,o,t));break e;case 1:o=s;var k=f.type,S=f.stateNode;if(0==(64&f.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){f.flags|=4096,t&=-t,f.lanes|=t,fo(f,pl(f,o,t));break e}}f=f.return}while(null!==f)}zs(n)}catch(E){t=E,Ol===n&&null!==n&&(Ol=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=zi,null===e?zi:e}function Ts(e,t){var n=Pl;Pl|=16;var r=Cs();for(Nl===e&&Il===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Pl=n,Rl.current=r,null!==Ol)throw Error(i(261));return Nl=null,Il=0,Fl}function As(){for(;null!==Ol;)Rs(Ol)}function Ls(){for(;null!==Ol&&!Ta();)Rs(Ol)}function Rs(e){var t=Ql(e.alternate,e,Dl);e.memoizedProps=e.pendingProps,null===t?zs(e):Ol=t,zl.current=null}function zs(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Dl)))return void(Ol=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Dl)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Ol=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ol=t);Ol=t=e}while(null!==t);0===Fl&&(Fl=5)}function Ps(e){var t=qa();return Ha(99,Ns.bind(null,e,t)),null}function Ns(e,t){do{Is()}while(null!==es);if(0!=(48&Pl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Nl&&(Ol=Nl=null,Il=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Pl,Pl|=32,zl.current=null,jr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(f=d+o),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(f=d),b===u&&++h===c&&(p=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Os()}catch(C){if(null===Wl)throw Error(i(330));js(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));js(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=pr(y,S),o=pr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!jr,Ur=jr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));js(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Ma(),Pl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Pl)||Va(),null}function Os(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Is(),null}))),Wl=Wl.nextEffect}}function Is(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Fs)}return!1}function Ds(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Is(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Is(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Pl))throw Error(i(331));var t=Pl;Pl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));js(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));js(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Pl=t,Va(),!0}function Bs(e,t,n){co(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function js(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=pl(n,e=ul(t,e),1);if(co(n,a),a=fs(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Nl===e&&(Il&n)===n&&(4===Fl||3===Fl&&(62914560&Il)===Il&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=jl),0===(t=jt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case D:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case R:return(e=Gs(13,n,t,a)).type=R,e.elementType=R,e.lanes=o,e;case z:return(e=Gs(19,n,t,a)).elementType=z,e.lanes=o,e;case M:return Ws(n,a,o,t);case F:return(e=Gs(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case P:l=14;break e;case N:l=16,r=null;break e;case O:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=fs(),l=ps(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,zr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Di=!0;else{if(0==(n&r)){switch(Di=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Io(t);break;case 1:ga(t.type)&&wa(t);break;case 4:No(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Mo,1&Mo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Mo,1&Mo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Mo,Mo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Di=0!=(16384&e.flags)}else Di=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,fa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Mi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===P)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Fi(null,t,a,e,n);break e;case 14:t=Bi(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(jo=Vr(t.stateNode.containerInfo.firstChild),Bo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Vo();t=t.child}return t;case 5:return Io(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return No(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Fi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!pa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),Bi(e,t,a,o=Ka(a.type,o),r,n);case 15:return ji(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Pe=ws,Ne=function(e,t,n,r,a){var o=Pl;Pl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Pl=o)&&(Vl(),Va())}},Oe=function(){0==(49&Pl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Is())},Ie=function(e,t){var n=Pl;Pl|=2;try{return e(t)}finally{0===(Pl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,Re,ze,Is,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},z=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},P=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=D(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=z(e.metaTags,y),o=z(t,b),i=z(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,a.priority),M(g.LINK,o.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=m.priorityMethods,c=m.linkTags,d=m.metaTags,f=m.scriptTags}return{priority:p,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,c,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,f,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:u},r)}},j=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?j:n.instances},add:function(e){(n.canUseDOM?j:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?j:n.instances).indexOf(e);(n.canUseDOM?j:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(c,d);var f={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},p={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,p,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):B&&(a=B(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(P(this.props,"helmetData"),P(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,f({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},m=o.forwardRef;void 0===m&&(m=p);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),R="function"==typeof m?m(L):m,z="function"==typeof E?E(L):E;L&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,c),z=(0,l.Z)({},z,p));var P=(0,l.Z)({"aria-current":L&&a||null,className:R,style:z,to:i},C);return b!==v?P.ref=t||_:P.innerRef=_,o.createElement(g,P)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>N,k6:()=>P,rs:()=>R,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),f=(n(9864),n(3366)),p=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var z=a.useContext;function P(){return z(b)}function N(){return z(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function z(){var e=R.current;if(null===e)throw Error(p(321));return e}var P={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return z().useCallback(e,t)},t.useContext=function(e,t){return z().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return z().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return z().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return z().useLayoutEffect(e,t)},t.useMemo=function(e,t){return z().useMemo(e,t)},t.useReducer=function(e,t,n){return z().useReducer(e,t,n)},t.useRef=function(e){return z().useRef(e)},t.useState=function(e){return z().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=f((function(){e(t.unstable_now())}),n)},a=function(){p(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,R=3,z=!1,P=!1,N=!1;function O(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function I(e){if(N=!1,O(e),!P)if(null!==E(C))P=!0,n(D);else{var t=E(T);null!==t&&r(I,t.startTime-e)}}function D(e,n){P=!1,N&&(N=!1,a()),z=!0;var o=R;try{for(O(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,R=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),O(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(I,u.startTime-n),s=!1}return s}finally{L=null,R=o,z=!1}}var M=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){P||z||(P=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(N?a():N=!0,r(I,i-l))):(e.sortIndex=s,S(C,e),P||z||(P=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/zh/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"\u5173\u95ed","theme.BackToTopButton.buttonAriaLabel":"\u56de\u5230\u9876\u90e8","theme.CodeBlock.copied":"\u590d\u5236\u6210\u529f","theme.CodeBlock.copy":"\u590d\u5236","theme.CodeBlock.copyButtonAriaLabel":"\u590d\u5236\u4ee3\u7801\u5230\u526a\u8d34\u677f","theme.CodeBlock.wordWrapToggle":"\u5207\u6362\u81ea\u52a8\u6362\u884c","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"\u6253\u5f00/\u6536\u8d77\u4fa7\u8fb9\u680f\u83dc\u5355\u300c{label}\u300d","theme.ErrorPageContent.title":"\u9875\u9762\u5df2\u5d29\u6e83\u3002","theme.ErrorPageContent.tryAgain":"\u91cd\u8bd5","theme.NavBar.navAriaLabel":"\u4e3b\u5bfc\u822a","theme.NotFound.p1":"\u6211\u4eec\u627e\u4e0d\u5230\u60a8\u8981\u627e\u7684\u9875\u9762\u3002","theme.NotFound.p2":"\u8bf7\u8054\u7cfb\u539f\u59cb\u94fe\u63a5\u6765\u6e90\u7f51\u7ad9\u7684\u6240\u6709\u8005\uff0c\u5e76\u544a\u77e5\u4ed6\u4eec\u94fe\u63a5\u5df2\u635f\u574f\u3002","theme.NotFound.title":"\u627e\u4e0d\u5230\u9875\u9762","theme.TOCCollapsible.toggleButtonLabel":"\u672c\u9875\u603b\u89c8","theme.admonition.caution":"\u8b66\u544a","theme.admonition.danger":"\u5371\u9669","theme.admonition.info":"\u4fe1\u606f","theme.admonition.note":"\u5907\u6ce8","theme.admonition.tip":"\u63d0\u793a","theme.blog.archive.description":"\u5386\u53f2\u535a\u6587","theme.blog.archive.title":"\u5386\u53f2\u535a\u6587","theme.blog.paginator.navAriaLabel":"\u535a\u6587\u5217\u8868\u5206\u9875\u5bfc\u822a","theme.blog.paginator.newerEntries":"\u8f83\u65b0\u7684\u535a\u6587","theme.blog.paginator.olderEntries":"\u8f83\u65e7\u7684\u535a\u6587","theme.blog.post.paginator.navAriaLabel":"\u535a\u6587\u5206\u9875\u5bfc\u822a","theme.blog.post.paginator.newerPost":"\u8f83\u65b0\u4e00\u7bc7","theme.blog.post.paginator.olderPost":"\u8f83\u65e7\u4e00\u7bc7","theme.blog.post.plurals":"{count} \u7bc7\u535a\u6587","theme.blog.post.readMore":"\u9605\u8bfb\u66f4\u591a","theme.blog.post.readMoreLabel":"\u9605\u8bfb {title} \u7684\u5168\u6587","theme.blog.post.readingTime.plurals":"\u9605\u8bfb\u9700 {readingTime} \u5206\u949f","theme.blog.sidebar.navAriaLabel":"\u6700\u8fd1\u535a\u6587\u5bfc\u822a","theme.blog.tagTitle":"{nPosts} \u542b\u6709\u6807\u7b7e\u300c{tagName}\u300d","theme.colorToggle.ariaLabel":"\u5207\u6362\u6d45\u8272/\u6697\u9ed1\u6a21\u5f0f\uff08\u5f53\u524d\u4e3a{mode}\uff09","theme.colorToggle.ariaLabel.mode.dark":"\u6697\u9ed1\u6a21\u5f0f","theme.colorToggle.ariaLabel.mode.light":"\u6d45\u8272\u6a21\u5f0f","theme.common.editThisPage":"\u7f16\u8f91\u6b64\u9875","theme.common.headingLinkTitle":"{heading}\u7684\u76f4\u63a5\u94fe\u63a5","theme.common.skipToMainContent":"\u8df3\u5230\u4e3b\u8981\u5185\u5bb9","theme.docs.DocCard.categoryDescription":"{count} \u4e2a\u9879\u76ee","theme.docs.breadcrumbs.home":"\u4e3b\u9875\u9762","theme.docs.breadcrumbs.navAriaLabel":"\u9875\u9762\u8def\u5f84","theme.docs.paginator.navAriaLabel":"\u6587\u4ef6\u9009\u9879\u5361","theme.docs.paginator.next":"\u4e0b\u4e00\u9875","theme.docs.paginator.previous":"\u4e0a\u4e00\u9875","theme.docs.sidebar.closeSidebarButtonAriaLabel":"\u5173\u95ed\u5bfc\u822a\u680f","theme.docs.sidebar.collapseButtonAriaLabel":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.collapseButtonTitle":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonAriaLabel":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonTitle":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.navAriaLabel":"\u6587\u6863\u4fa7\u8fb9\u680f","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"\u5207\u6362\u5bfc\u822a\u680f","theme.docs.tagDocListPageTitle":"{nDocsTagged}\u300c{tagName}\u300d","theme.docs.tagDocListPageTitle.nDocsTagged":"{count} \u7bc7\u6587\u6863\u5e26\u6709\u6807\u7b7e","theme.docs.versionBadge.label":"\u7248\u672c\uff1a{versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\u6700\u65b0\u7248\u672c","theme.docs.versions.latestVersionSuggestionLabel":"\u6700\u65b0\u7684\u6587\u6863\u8bf7\u53c2\u9605 {latestVersionLink} ({versionLabel})\u3002","theme.docs.versions.unmaintainedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u7684\u6587\u6863\uff0c\u73b0\u5df2\u4e0d\u518d\u79ef\u6781\u7ef4\u62a4\u3002","theme.docs.versions.unreleasedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u5c1a\u672a\u53d1\u884c\u7684\u6587\u6863\u3002","theme.lastUpdated.atDate":"\u4e8e {date} ","theme.lastUpdated.byUser":"\u7531 {user} ","theme.lastUpdated.lastUpdatedAtBy":"\u6700\u540e{byUser}{atDate}\u66f4\u65b0","theme.navbar.mobileLanguageDropdown.label":"\u9009\u62e9\u8bed\u8a00","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 \u56de\u5230\u4e3b\u83dc\u5355","theme.navbar.mobileVersionsDropdown.label":"\u9009\u62e9\u7248\u672c","theme.tags.tagsListLabel":"\u6807\u7b7e\uff1a","theme.tags.tagsPageLink":"\u67e5\u770b\u6240\u6709\u6807\u7b7e","theme.tags.tagsPageTitle":"\u6807\u7b7e","theme.SearchBar.label":"\u641c\u7d22","theme.SearchBar.seeAll":"\u67e5\u770b\u5168\u90e8 {count} \u4e2a\u7ed3\u679c","theme.SearchModal.errorScreen.helpText":"\u4f60\u53ef\u80fd\u9700\u8981\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\u3002","theme.SearchModal.errorScreen.titleText":"\u65e0\u6cd5\u83b7\u53d6\u7ed3\u679c","theme.SearchModal.footer.closeKeyAriaLabel":"Esc \u952e","theme.SearchModal.footer.closeText":"\u5173\u95ed","theme.SearchModal.footer.navigateDownKeyAriaLabel":"\u5411\u4e0b\u952e","theme.SearchModal.footer.navigateText":"\u5bfc\u822a","theme.SearchModal.footer.navigateUpKeyAriaLabel":"\u5411\u4e0a\u952e","theme.SearchModal.footer.searchByText":"\u641c\u7d22\u63d0\u4f9b","theme.SearchModal.footer.selectKeyAriaLabel":"Enter \u952e","theme.SearchModal.footer.selectText":"\u9009\u4e2d","theme.SearchModal.noResultsScreen.noResultsText":"\u6ca1\u6709\u7ed3\u679c\uff1a","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"\u8bf7\u544a\u77e5\u6211\u4eec\u3002","theme.SearchModal.noResultsScreen.reportMissingResultsText":"\u8ba4\u4e3a\u8fd9\u4e2a\u67e5\u8be2\u5e94\u8be5\u6709\u7ed3\u679c\uff1f","theme.SearchModal.noResultsScreen.suggestedQueryText":"\u8bd5\u8bd5\u641c\u7d22","theme.SearchModal.placeholder":"\u641c\u7d22\u6587\u6863","theme.SearchModal.searchBox.cancelButtonText":"\u53d6\u6d88","theme.SearchModal.searchBox.resetButtonTitle":"\u6e05\u9664\u67e5\u8be2","theme.SearchModal.startScreen.favoriteSearchesTitle":"\u6536\u85cf","theme.SearchModal.startScreen.noRecentSearchesText":"\u6ca1\u6709\u6700\u8fd1\u641c\u7d22","theme.SearchModal.startScreen.recentSearchesTitle":"\u6700\u8fd1\u641c\u7d22","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"\u4ece\u6536\u85cf\u5217\u8868\u4e2d\u5220\u9664\u8fd9\u4e2a\u641c\u7d22","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"\u4ece\u5386\u53f2\u8bb0\u5f55\u4e2d\u5220\u9664\u8fd9\u4e2a\u641c\u7d22","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"\u4fdd\u5b58\u8fd9\u4e2a\u641c\u7d22","theme.SearchPage.algoliaLabel":"\u901a\u8fc7 Algolia \u641c\u7d22","theme.SearchPage.documentsFound.plurals":"\u627e\u5230 {count} \u4efd\u6587\u4ef6","theme.SearchPage.emptyResultsTitle":"\u5728\u6587\u6863\u4e2d\u641c\u7d22","theme.SearchPage.existingResultsTitle":"\u300c{query}\u300d\u7684\u641c\u7d22\u7ed3\u679c","theme.SearchPage.fetchingNewResults":"\u6b63\u5728\u83b7\u53d6\u65b0\u7684\u641c\u7d22\u7ed3\u679c...","theme.SearchPage.inputLabel":"\u641c\u7d22","theme.SearchPage.inputPlaceholder":"\u5728\u6b64\u8f93\u5165\u641c\u7d22\u5b57\u8bcd","theme.SearchPage.noResultsText":"\u672a\u627e\u5230\u4efb\u4f55\u7ed3\u679c","theme.IdealImageMessage.404error":"\u672a\u627e\u5230\u56fe\u7247","theme.IdealImageMessage.error":"\u51fa\u73b0\u9519\u8bef\uff0c\u70b9\u51fb\u91cd\u8bd5","theme.IdealImageMessage.load":"\u70b9\u51fb\u52a0\u8f7d\u56fe\u7247{sizeMessage}","theme.IdealImageMessage.loading":"\u52a0\u8f7d\u4e2d\u2026\u2026","theme.IdealImageMessage.offline":"\u4f60\u7684\u6d4f\u89c8\u5668\u5904\u4e8e\u79bb\u7ebf\u72b6\u6001\u3002\u56fe\u7247\u672a\u52a0\u8f7d"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/zh/search/-d52":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/zh/-d20":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/zh/-3c2":{"__comp":"17896441","content":"6e7e0dfd"},"/zh/category/contribute/-ace":{"__comp":"14eb3368","categoryGeneratedIndex":"1217ffab"},"/zh/category/faq/-97e":{"__comp":"14eb3368","categoryGeneratedIndex":"56369e62"},"/zh/category/getting-started/-bb2":{"__comp":"14eb3368","categoryGeneratedIndex":"a01c28fc"},"/zh/category/guides/-f96":{"__comp":"14eb3368","categoryGeneratedIndex":"a777e5e5"},"/zh/category/legacy-documentation/-5e9":{"__comp":"14eb3368","categoryGeneratedIndex":"a2ddc900"},"/zh/category/manual/-12a":{"__comp":"14eb3368","categoryGeneratedIndex":"41ecef38"},"/zh/category/release-notes/-d0c":{"__comp":"14eb3368","categoryGeneratedIndex":"f570bbeb"},"/zh/category/tutorial---basics/-faa":{"__comp":"14eb3368","categoryGeneratedIndex":"11f09efe"},"/zh/category/tutorial---extras/-3b0":{"__comp":"14eb3368","categoryGeneratedIndex":"9405f2e8"},"/zh/category/unraid-connect/-80d":{"__comp":"14eb3368","categoryGeneratedIndex":"779ec84f"},"/zh/category/unraid-os/-2b5":{"__comp":"14eb3368","categoryGeneratedIndex":"bf6429c6"},"/zh/category/zfs/-9e0":{"__comp":"14eb3368","categoryGeneratedIndex":"14e9ad4a"},"/zh/connect/about/-0b8":{"__comp":"17896441","content":"bd5544b1"},"/zh/connect/help/-b28":{"__comp":"17896441","content":"54fe4512"},"/zh/connect/remote-access/-17e":{"__comp":"17896441","content":"ba2ffba3"},"/zh/contribute-to-docs/intro/-87f":{"__comp":"17896441","content":"9c8e01a5"},"/zh/contribute-to-docs/tutorial-basics/congratulations/-5f0":{"__comp":"17896441","content":"06cd2fd6"},"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/-cae":{"__comp":"17896441","content":"e62fd64a"},"/zh/contribute-to-docs/tutorial-basics/create-a-document/-4a9":{"__comp":"17896441","content":"73c1707a"},"/zh/contribute-to-docs/tutorial-basics/create-a-page/-8f0":{"__comp":"17896441","content":"6937eda1"},"/zh/contribute-to-docs/tutorial-basics/markdown-features/-66e":{"__comp":"17896441","content":"fd47d4b7"},"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/-f46":{"__comp":"17896441","content":"0993abe5"},"/zh/contribute-to-docs/tutorial-extras/translate-your-site/-ef1":{"__comp":"17896441","content":"f568d666"},"/zh/legacy/Articles/dual-boot-unraid-and-windows/-19a":{"__comp":"17896441","content":"c5b893f4"},"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/-3f7":{"__comp":"17896441","content":"69f90a2c"},"/zh/legacy/Articles/upgrading-to-unraid-6/-0d3":{"__comp":"17896441","content":"39304afb"},"/zh/legacy/FAQ/cache-disk/-a84":{"__comp":"17896441","content":"88a1b883"},"/zh/legacy/FAQ/check-disk-filesystems/-d60":{"__comp":"17896441","content":"5034631f"},"/zh/legacy/FAQ/check-harddrive-speed/-ed7":{"__comp":"17896441","content":"039cd775"},"/zh/legacy/FAQ/console/-9ba":{"__comp":"17896441","content":"2dd62328"},"/zh/legacy/FAQ/parity-swap-procedure/-29e":{"__comp":"17896441","content":"f2577e9f"},"/zh/legacy/FAQ/Parity/-3d8":{"__comp":"17896441","content":"54f4a7b0"},"/zh/legacy/FAQ/replacing-a-data-drive/-ef6":{"__comp":"17896441","content":"74287a25"},"/zh/legacy/FAQ/replacing-multiple-data-drives/-138":{"__comp":"17896441","content":"d441ea6d"},"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-2f4":{"__comp":"17896441","content":"6618ba01"},"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/-ebf":{"__comp":"17896441","content":"036bad42"},"/zh/legacy/FAQ/shrink-array/-100":{"__comp":"17896441","content":"9d093beb"},"/zh/legacy/FAQ/terminal-access/-fb3":{"__comp":"17896441","content":"e624f8a6"},"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-e03":{"__comp":"17896441","content":"67a4e8b6"},"/zh/legacy/FAQ/transferring-files-within-the-unraid-server/-de2":{"__comp":"17896441","content":"38c3fa26"},"/zh/legacy/FAQ/understanding-smart-reports/-6f7":{"__comp":"17896441","content":"dec1eefe"},"/zh/legacy/FAQ/usb-flash-drive-preparation/-5e1":{"__comp":"17896441","content":"79722de7"},"/zh/unraid-os/faq/licensing-faq/-460":{"__comp":"17896441","content":"26113f5d"},"/zh/unraid-os/faq/os-faq/-b74":{"__comp":"17896441","content":"81b28c9f"},"/zh/unraid-os/faq/redeem-license-activation-code/-e32":{"__comp":"17896441","content":"073d1822"},"/zh/unraid-os/faq/unraid-account/-023":{"__comp":"17896441","content":"5565d3f9"},"/zh/unraid-os/guides/configuring-time-machine/-8f6":{"__comp":"17896441","content":"f9ab548b"},"/zh/unraid-os/guides/wol-setup-for-unraid/-ef2":{"__comp":"17896441","content":"0a18b2d8"},"/zh/unraid-os/manual/additional-settings/-315":{"__comp":"17896441","content":"1942e1e1"},"/zh/unraid-os/manual/applications/-938":{"__comp":"17896441","content":"7b378cd1"},"/zh/unraid-os/manual/changing-the-flash-device/-6a9":{"__comp":"17896441","content":"0ca4c500"},"/zh/unraid-os/manual/docker-management/-914":{"__comp":"17896441","content":"4caccc33"},"/zh/unraid-os/manual/getting-started/-731":{"__comp":"17896441","content":"b13723e0"},"/zh/unraid-os/manual/getting-started/manual-install-method/-d35":{"__comp":"17896441","content":"18ade0c5"},"/zh/unraid-os/manual/multi-language/-9e4":{"__comp":"17896441","content":"6b42df2b"},"/zh/unraid-os/manual/security/-a3c":{"__comp":"17896441","content":"a78d85c7"},"/zh/unraid-os/manual/shares/-761":{"__comp":"17896441","content":"90126b70"},"/zh/unraid-os/manual/storage-management/-b58":{"__comp":"17896441","content":"55054ac6"},"/zh/unraid-os/manual/tools/-8d8":{"__comp":"17896441","content":"7c081f1b"},"/zh/unraid-os/manual/troubleshooting/-1e3":{"__comp":"17896441","content":"104dd0b4"},"/zh/unraid-os/manual/upgrade-instructions/-026":{"__comp":"17896441","content":"7436a388"},"/zh/unraid-os/manual/users/-ad7":{"__comp":"17896441","content":"40147886"},"/zh/unraid-os/manual/vm-management/-0c2":{"__comp":"17896441","content":"3d3d1f9d"},"/zh/unraid-os/manual/vm-support/-aac":{"__comp":"17896441","content":"88941ca4"},"/zh/unraid-os/manual/what-is-unraid/-b8d":{"__comp":"17896441","content":"f0844d9f"},"/zh/unraid-os/manual/zfs/placeholder/-a18":{"__comp":"17896441","content":"5df36282"},"/zh/unraid-os/release-notes/6.10.0/-10a":{"__comp":"17896441","content":"798531cc"},"/zh/unraid-os/release-notes/6.10.1/-ead":{"__comp":"17896441","content":"b3a9d7ab"},"/zh/unraid-os/release-notes/6.10.2/-054":{"__comp":"17896441","content":"caa9baff"},"/zh/unraid-os/release-notes/6.10.3/-0d8":{"__comp":"17896441","content":"54219b20"},"/zh/unraid-os/release-notes/6.11.0/-a74":{"__comp":"17896441","content":"096fb135"},"/zh/unraid-os/release-notes/6.11.1/-161":{"__comp":"17896441","content":"6b97f0f9"},"/zh/unraid-os/release-notes/6.11.2/-c9d":{"__comp":"17896441","content":"a0c90937"},"/zh/unraid-os/release-notes/6.11.3/-595":{"__comp":"17896441","content":"d31ea43a"},"/zh/unraid-os/release-notes/6.11.4/-3f8":{"__comp":"17896441","content":"c8335b6e"},"/zh/unraid-os/release-notes/6.11.5/-367":{"__comp":"17896441","content":"ae93aaeb"},"/zh/unraid-os/release-notes/6.12.0/-4f0":{"__comp":"17896441","content":"e1256ee6"},"/zh/unraid-os/release-notes/6.12.1/-184":{"__comp":"17896441","content":"98a2ad9f"},"/zh/unraid-os/release-notes/6.12.2/-cfa":{"__comp":"17896441","content":"0ba4e87b"},"/zh/unraid-os/release-notes/6.12.3/-607":{"__comp":"17896441","content":"7a2d53ea"},"/zh/unraid-os/release-notes/6.9.0/-9fb":{"__comp":"17896441","content":"06988216"},"/zh/unraid-os/release-notes/6.9.1/-a58":{"__comp":"17896441","content":"49332cbb"},"/zh/unraid-os/release-notes/6.9.2/-c95":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/zh/assets/js/main.818d5412.js b/zh/assets/js/main.818d5412.js new file mode 100644 index 000000000..660534824 --- /dev/null +++ b/zh/assets/js/main.818d5412.js @@ -0,0 +1,2 @@ +/*! For license information please see main.818d5412.js.LICENSE.txt */ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},4334:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},7459:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"036bad42":[()=>n.e(5078).then(n.bind(n,85)),"@site/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md",85],"039cd775":[()=>n.e(9114).then(n.bind(n,9798)),"@site/docs/legacy/FAQ/check-harddrive-speed.md",9798],"06988216":[()=>n.e(322).then(n.bind(n,6873)),"@site/docs/unraid-os/release-notes/6.9.0.md",6873],"06cd2fd6":[()=>n.e(6279).then(n.bind(n,7067)),"@site/docs/contribute-to-docs/tutorial-basics/congratulations.md",7067],"073d1822":[()=>n.e(4787).then(n.bind(n,7556)),"@site/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/faq/redeem-license-activation-code.md",7556],"096fb135":[()=>n.e(6299).then(n.bind(n,6798)),"@site/docs/unraid-os/release-notes/6.11.0.md",6798],"0993abe5":[()=>n.e(9554).then(n.bind(n,4887)),"@site/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md",4887],"0a18b2d8":[()=>n.e(1377).then(n.bind(n,9618)),"@site/docs/unraid-os/guides/wol-setup-for-unraid.md",9618],"0a1bdeaa":[()=>n.e(967).then(n.bind(n,3940)),"@site/docs/unraid-os/manual/security/secure-webgui-ssl.md",3940],"0ba4e87b":[()=>n.e(8868).then(n.bind(n,3845)),"@site/docs/unraid-os/release-notes/6.12.2.md",3845],"0ca4c500":[()=>n.e(4618).then(n.bind(n,4893)),"@site/docs/unraid-os/manual/changing-the-flash-device.md",4893],"104dd0b4":[()=>n.e(4262).then(n.bind(n,4505)),"@site/docs/unraid-os/manual/troubleshooting.md",4505],"10869db1":[()=>n.e(3563).then(n.bind(n,2127)),"@site/docs/unraid-os/manual/security/flash-drive.md",2127],"11f09efe":[()=>n.e(2811).then(n.t.bind(n,3552,19)),"~docs/default/category-zh-unraidsidebar-category-tutorial-basics-943.json",3552],"1217ffab":[()=>n.e(6047).then(n.t.bind(n,7931,19)),"~docs/default/category-zh-unraidsidebar-category-contribute-66e.json",7931],"14e9ad4a":[()=>n.e(9799).then(n.t.bind(n,6961,19)),"~docs/default/category-zh-unraidsidebar-category-zfs-3b1.json",6961],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,9711)),"@theme/DocItem",9711],"18ade0c5":[()=>n.e(53).then(n.bind(n,5691)),"@site/docs/unraid-os/manual/getting-started/manual-install-method.md",5691],"1942e1e1":[()=>n.e(1317).then(n.bind(n,6932)),"@site/docs/unraid-os/manual/additional-settings.md",6932],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,1065)),"@theme/SearchPage",1065],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,1299)),"@theme/DocPage",1299],"1c36a847":[()=>n.e(5289).then(n.bind(n,7732)),"@site/docs/unraid-os/manual/security/vpn.md",7732],"247783bb":[()=>n.e(9334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"26113f5d":[()=>n.e(4813).then(n.bind(n,6844)),"@site/docs/unraid-os/faq/licensing-faq.md",6844],"277cf690":[()=>n.e(9821).then(n.bind(n,3593)),"@site/docs/unraid-os/manual/security/security.md",3593],"2dd62328":[()=>n.e(8145).then(n.bind(n,817)),"@site/docs/legacy/FAQ/console.md",817],"313b9001":[()=>n.e(559).then(n.bind(n,3283)),"@site/docs/unraid-os/manual/security/good-practices.md",3283],"38c3fa26":[()=>n.e(4077).then(n.bind(n,2256)),"@site/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md",2256],"39304afb":[()=>n.e(8298).then(n.bind(n,8372)),"@site/docs/legacy/Articles/upgrading-to-unraid-6.md",8372],"3d3d1f9d":[()=>n.e(6461).then(n.bind(n,7242)),"@site/docs/unraid-os/manual/vm-management.md",7242],40147886:[()=>n.e(9185).then(n.bind(n,6860)),"@site/docs/unraid-os/manual/users.md",6860],"41ecef38":[()=>n.e(1409).then(n.t.bind(n,5726,19)),"~docs/default/category-zh-unraidsidebar-category-manual-afe.json",5726],"49332cbb":[()=>n.e(1698).then(n.bind(n,7930)),"@site/docs/unraid-os/release-notes/6.9.1.md",7930],"4caccc33":[()=>n.e(3967).then(n.bind(n,9749)),"@site/docs/unraid-os/manual/docker-management.md",9749],"5034631f":[()=>n.e(7054).then(n.bind(n,1309)),"@site/docs/legacy/FAQ/check-disk-filesystems.md",1309],"54219b20":[()=>n.e(5236).then(n.bind(n,3950)),"@site/docs/unraid-os/release-notes/6.10.3.md",3950],"54f4a7b0":[()=>n.e(2926).then(n.bind(n,4874)),"@site/docs/legacy/FAQ/Parity.md",4874],"54fe4512":[()=>n.e(2269).then(n.bind(n,6959)),"@site/docs/connect/help.md",6959],"55054ac6":[()=>n.e(7537).then(n.bind(n,8836)),"@site/docs/unraid-os/manual/storage-management.md",8836],"5565d3f9":[()=>n.e(496).then(n.bind(n,7761)),"@site/docs/unraid-os/faq/unraid-account.md",7761],"56369e62":[()=>n.e(2450).then(n.t.bind(n,4793,19)),"~docs/default/category-zh-unraidsidebar-category-faq-46a.json",4793],"59b068d1":[()=>n.e(6385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5df36282":[()=>n.e(1791).then(n.bind(n,9924)),"@site/docs/unraid-os/manual/zfs/placeholder.md",9924],"5f60a020":[()=>n.e(4863).then(n.bind(n,6260)),"@site/docs/unraid-os/manual/shares/disk-shares.md",6260],"6618ba01":[()=>n.e(563).then(n.bind(n,5846)),"@site/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md",5846],"67a4e8b6":[()=>n.e(3203).then(n.bind(n,5851)),"@site/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md",5851],"6937eda1":[()=>n.e(3923).then(n.bind(n,690)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-page.md",690],"69f90a2c":[()=>n.e(6305).then(n.bind(n,9747)),"@site/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md",9747],"6b42df2b":[()=>n.e(7044).then(n.bind(n,3966)),"@site/docs/unraid-os/manual/multi-language.md",3966],"6b97f0f9":[()=>n.e(4472).then(n.bind(n,6563)),"@site/docs/unraid-os/release-notes/6.11.1.md",6563],"6e6b2999":[()=>n.e(3659).then(n.bind(n,3943)),"@site/docs/unraid-os/release-notes/6.9.2.md",3943],"6e7e0dfd":[()=>n.e(2121).then(n.bind(n,6354)),"@site/docs/docs-home.md",6354],"73c1707a":[()=>n.e(7317).then(n.bind(n,9026)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-document.md",9026],"74287a25":[()=>n.e(8078).then(n.bind(n,8615)),"@site/docs/legacy/FAQ/replacing-a-data-drive.md",8615],"7436a388":[()=>n.e(4710).then(n.bind(n,5245)),"@site/docs/unraid-os/manual/upgrade-instructions.md",5245],"779ec84f":[()=>n.e(8760).then(n.t.bind(n,5652,19)),"~docs/default/category-zh-unraidsidebar-category-unraid-connect-d11.json",5652],"79722de7":[()=>n.e(9725).then(n.bind(n,3543)),"@site/docs/legacy/FAQ/usb-flash-drive-preparation.md",3543],"798531cc":[()=>n.e(7748).then(n.bind(n,6238)),"@site/docs/unraid-os/release-notes/6.10.0.md",6238],"7a2d53ea":[()=>n.e(5833).then(n.bind(n,8542)),"@site/docs/unraid-os/release-notes/6.12.3.md",8542],"7b378cd1":[()=>n.e(1367).then(n.bind(n,6582)),"@site/docs/unraid-os/manual/applications.md",6582],"7c081f1b":[()=>n.e(5069).then(n.bind(n,634)),"@site/docs/unraid-os/manual/tools.md",634],"81b28c9f":[()=>n.e(6617).then(n.bind(n,9582)),"@site/docs/unraid-os/faq/os-faq.md",9582],"88941ca4":[()=>n.e(9401).then(n.bind(n,8339)),"@site/docs/unraid-os/manual/vm-support.md",8339],"88a1b883":[()=>n.e(1036).then(n.bind(n,7421)),"@site/docs/legacy/FAQ/cache-disk.md",7421],"8944547a":[()=>Promise.all([n.e(532),n.e(5450)]).then(n.bind(n,3135)),"@site/docs/unraid-os/manual/shares/user-shares.md",3135],"8a89048a":[()=>n.e(1770).then(n.bind(n,8829)),"@site/docs/unraid-os/manual/shares/create-a-share.md",8829],"935f2afb":[()=>n.e(2197).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9405f2e8":[()=>n.e(5352).then(n.t.bind(n,9324,19)),"~docs/default/category-zh-unraidsidebar-category-tutorial-extras-da4.json",9324],"98a2ad9f":[()=>n.e(4579).then(n.bind(n,7804)),"@site/docs/unraid-os/release-notes/6.12.1.md",7804],"9c8e01a5":[()=>n.e(4399).then(n.bind(n,2255)),"@site/docs/contribute-to-docs/intro.md",2255],"9d093beb":[()=>n.e(7124).then(n.bind(n,847)),"@site/docs/legacy/FAQ/shrink-array.md",847],"9d23aec8":[()=>n.e(1754).then(n.bind(n,6419)),"@site/docs/unraid-os/manual/shares/delete-a-share.md",6419],a01c28fc:[()=>n.e(7712).then(n.t.bind(n,7667,19)),"~docs/default/category-zh-unraidsidebar-category-getting-started-400.json",7667],a0c90937:[()=>n.e(5275).then(n.bind(n,4306)),"@site/docs/unraid-os/release-notes/6.11.2.md",4306],a2ddc900:[()=>n.e(2922).then(n.t.bind(n,6637,19)),"~docs/default/category-zh-unraidsidebar-category-legacy-documentation-8e4.json",6637],a777e5e5:[()=>n.e(7899).then(n.t.bind(n,9949,19)),"~docs/default/category-zh-unraidsidebar-category-guides-825.json",9949],ae93aaeb:[()=>n.e(7415).then(n.bind(n,9561)),"@site/docs/unraid-os/release-notes/6.11.5.md",9561],aed38285:[()=>n.e(1932).then(n.bind(n,3976)),"@site/docs/unraid-os/manual/shares/shares.md",3976],b13723e0:[()=>n.e(4567).then(n.bind(n,678)),"@site/docs/unraid-os/manual/getting-started/getting-started.md",678],b3a9d7ab:[()=>n.e(909).then(n.bind(n,2763)),"@site/docs/unraid-os/release-notes/6.10.1.md",2763],ba2ffba3:[()=>n.e(4321).then(n.bind(n,5510)),"@site/docs/connect/remote-access.md",5510],bd5544b1:[()=>n.e(335).then(n.bind(n,5575)),"@site/docs/connect/about.md",5575],bf6429c6:[()=>n.e(4482).then(n.t.bind(n,7324,19)),"~docs/default/category-zh-unraidsidebar-category-unraid-os-de0.json",7324],c5b893f4:[()=>n.e(7603).then(n.bind(n,7670)),"@site/docs/legacy/Articles/dual-boot-unraid-and-windows.md",7670],c8335b6e:[()=>n.e(347).then(n.bind(n,963)),"@site/docs/unraid-os/release-notes/6.11.4.md",963],caa9baff:[()=>n.e(5832).then(n.bind(n,4320)),"@site/docs/unraid-os/release-notes/6.10.2.md",4320],d31ea43a:[()=>n.e(8882).then(n.bind(n,81)),"@site/docs/unraid-os/release-notes/6.11.3.md",81],d441ea6d:[()=>n.e(879).then(n.bind(n,1075)),"@site/docs/legacy/FAQ/replacing-multiple-data-drives.md",1075],dec1eefe:[()=>n.e(6596).then(n.bind(n,1809)),"@site/docs/legacy/FAQ/understanding-smart-reports.md",1809],e1256ee6:[()=>n.e(8925).then(n.bind(n,1548)),"@site/docs/unraid-os/release-notes/6.12.0.md",1548],e624f8a6:[()=>n.e(9347).then(n.bind(n,4621)),"@site/docs/legacy/FAQ/terminal-access.md",4621],e62fd64a:[()=>n.e(7570).then(n.bind(n,3072)),"@site/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md",3072],f0844d9f:[()=>n.e(2697).then(n.bind(n,3630)),"@site/docs/unraid-os/manual/what-is-unraid.md",3630],f2577e9f:[()=>n.e(8894).then(n.bind(n,3808)),"@site/docs/legacy/FAQ/parity-swap-procedure.md",3808],f568d666:[()=>n.e(4149).then(n.bind(n,5317)),"@site/docs/contribute-to-docs/tutorial-extras/translate-your-site.md",5317],f570bbeb:[()=>n.e(8076).then(n.t.bind(n,4012,19)),"~docs/default/category-zh-unraidsidebar-category-release-notes-723.json",4012],f7b0b541:[()=>n.e(2454).then(n.bind(n,7088)),"@site/docs/unraid-os/manual/shares/network-access.md",7088],f9ab548b:[()=>n.e(4622).then(n.bind(n,9304)),"@site/docs/unraid-os/guides/configuring-time-machine.md",9304],fd47d4b7:[()=>n.e(4688).then(n.bind(n,7219)),"@site/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx",7219],fee3ac30:[()=>n.e(7328).then(n.bind(n,8330)),"@site/docs/unraid-os/manual/security/data-encryption.md",8330]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(5304),d=n(9656);function p(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4248).then(n.bind(n,4248)),modules:["@theme/NotFound"],webpack:()=>[4248],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],p={},f=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const f=[{path:"/zh/search/",component:p("/zh/search/","d52"),exact:!0},{path:"/zh/",component:p("/zh/","94f"),routes:[{path:"/zh/",component:p("/zh/","3c2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/contribute/",component:p("/zh/category/contribute/","ace"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/faq/",component:p("/zh/category/faq/","97e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/getting-started/",component:p("/zh/category/getting-started/","bb2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/guides/",component:p("/zh/category/guides/","f96"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/legacy-documentation/",component:p("/zh/category/legacy-documentation/","5e9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/manual/",component:p("/zh/category/manual/","12a"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/release-notes/",component:p("/zh/category/release-notes/","d0c"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/tutorial---basics/",component:p("/zh/category/tutorial---basics/","faa"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/tutorial---extras/",component:p("/zh/category/tutorial---extras/","3b0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/unraid-connect/",component:p("/zh/category/unraid-connect/","80d"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/unraid-os/",component:p("/zh/category/unraid-os/","2b5"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/category/zfs/",component:p("/zh/category/zfs/","9e0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/connect/about/",component:p("/zh/connect/about/","0b8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/connect/help/",component:p("/zh/connect/help/","b28"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/connect/remote-access/",component:p("/zh/connect/remote-access/","17e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/intro/",component:p("/zh/contribute-to-docs/intro/","87f"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/congratulations/",component:p("/zh/contribute-to-docs/tutorial-basics/congratulations/","5f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/",component:p("/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/","cae"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/create-a-document/",component:p("/zh/contribute-to-docs/tutorial-basics/create-a-document/","4a9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/create-a-page/",component:p("/zh/contribute-to-docs/tutorial-basics/create-a-page/","8f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-basics/markdown-features/",component:p("/zh/contribute-to-docs/tutorial-basics/markdown-features/","66e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/",component:p("/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/","f46"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/contribute-to-docs/tutorial-extras/translate-your-site/",component:p("/zh/contribute-to-docs/tutorial-extras/translate-your-site/","ef1"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/Articles/dual-boot-unraid-and-windows/",component:p("/zh/legacy/Articles/dual-boot-unraid-and-windows/","19a"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/",component:p("/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/","3f7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/Articles/upgrading-to-unraid-6/",component:p("/zh/legacy/Articles/upgrading-to-unraid-6/","0d3"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/cache-disk/",component:p("/zh/legacy/FAQ/cache-disk/","a84"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/check-disk-filesystems/",component:p("/zh/legacy/FAQ/check-disk-filesystems/","d60"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/check-harddrive-speed/",component:p("/zh/legacy/FAQ/check-harddrive-speed/","ed7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/console/",component:p("/zh/legacy/FAQ/console/","9ba"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/parity-swap-procedure/",component:p("/zh/legacy/FAQ/parity-swap-procedure/","29e"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/Parity/",component:p("/zh/legacy/FAQ/Parity/","3d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/replacing-a-data-drive/",component:p("/zh/legacy/FAQ/replacing-a-data-drive/","ef6"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/replacing-multiple-data-drives/",component:p("/zh/legacy/FAQ/replacing-multiple-data-drives/","138"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/",component:p("/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/","2f4"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/",component:p("/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/","ebf"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/shrink-array/",component:p("/zh/legacy/FAQ/shrink-array/","100"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/terminal-access/",component:p("/zh/legacy/FAQ/terminal-access/","fb3"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/",component:p("/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/","e03"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/transferring-files-within-the-unraid-server/",component:p("/zh/legacy/FAQ/transferring-files-within-the-unraid-server/","de2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/understanding-smart-reports/",component:p("/zh/legacy/FAQ/understanding-smart-reports/","6f7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/legacy/FAQ/usb-flash-drive-preparation/",component:p("/zh/legacy/FAQ/usb-flash-drive-preparation/","5e1"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/licensing-faq/",component:p("/zh/unraid-os/faq/licensing-faq/","460"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/os-faq/",component:p("/zh/unraid-os/faq/os-faq/","b74"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/redeem-license-activation-code/",component:p("/zh/unraid-os/faq/redeem-license-activation-code/","e32"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/faq/unraid-account/",component:p("/zh/unraid-os/faq/unraid-account/","023"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/guides/configuring-time-machine/",component:p("/zh/unraid-os/guides/configuring-time-machine/","8f6"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/guides/wol-setup-for-unraid/",component:p("/zh/unraid-os/guides/wol-setup-for-unraid/","ef2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/additional-settings/",component:p("/zh/unraid-os/manual/additional-settings/","315"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/applications/",component:p("/zh/unraid-os/manual/applications/","938"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/changing-the-flash-device/",component:p("/zh/unraid-os/manual/changing-the-flash-device/","6a9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/docker-management/",component:p("/zh/unraid-os/manual/docker-management/","914"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/getting-started/",component:p("/zh/unraid-os/manual/getting-started/","731"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/getting-started/manual-install-method/",component:p("/zh/unraid-os/manual/getting-started/manual-install-method/","d35"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/multi-language/",component:p("/zh/unraid-os/manual/multi-language/","9e4"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/security/",component:p("/zh/unraid-os/manual/security/","0f9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/security/data-encryption/",component:p("/zh/unraid-os/manual/security/data-encryption/","cee"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/security/flash-drive/",component:p("/zh/unraid-os/manual/security/flash-drive/","dff"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/security/good-practices/",component:p("/zh/unraid-os/manual/security/good-practices/","b10"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/security/secure-webgui-ssl/",component:p("/zh/unraid-os/manual/security/secure-webgui-ssl/","980"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/security/vpn/",component:p("/zh/unraid-os/manual/security/vpn/","727"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/shares/",component:p("/zh/unraid-os/manual/shares/","7d4"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/shares/create-a-share/",component:p("/zh/unraid-os/manual/shares/create-a-share/","e95"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/shares/delete-a-share/",component:p("/zh/unraid-os/manual/shares/delete-a-share/","5d9"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/shares/disk-shares/",component:p("/zh/unraid-os/manual/shares/disk-shares/","951"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/shares/network-access/",component:p("/zh/unraid-os/manual/shares/network-access/","d7c"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/shares/user-shares/",component:p("/zh/unraid-os/manual/shares/user-shares/","20f"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/storage-management/",component:p("/zh/unraid-os/manual/storage-management/","b58"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/tools/",component:p("/zh/unraid-os/manual/tools/","8d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/troubleshooting/",component:p("/zh/unraid-os/manual/troubleshooting/","1e3"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/upgrade-instructions/",component:p("/zh/unraid-os/manual/upgrade-instructions/","026"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/users/",component:p("/zh/unraid-os/manual/users/","ad7"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/vm-management/",component:p("/zh/unraid-os/manual/vm-management/","0c2"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/vm-support/",component:p("/zh/unraid-os/manual/vm-support/","aac"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/what-is-unraid/",component:p("/zh/unraid-os/manual/what-is-unraid/","b8d"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/manual/zfs/placeholder/",component:p("/zh/unraid-os/manual/zfs/placeholder/","a18"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.0/",component:p("/zh/unraid-os/release-notes/6.10.0/","10a"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.1/",component:p("/zh/unraid-os/release-notes/6.10.1/","ead"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.2/",component:p("/zh/unraid-os/release-notes/6.10.2/","054"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.10.3/",component:p("/zh/unraid-os/release-notes/6.10.3/","0d8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.0/",component:p("/zh/unraid-os/release-notes/6.11.0/","a74"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.1/",component:p("/zh/unraid-os/release-notes/6.11.1/","161"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.2/",component:p("/zh/unraid-os/release-notes/6.11.2/","c9d"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.3/",component:p("/zh/unraid-os/release-notes/6.11.3/","595"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.4/",component:p("/zh/unraid-os/release-notes/6.11.4/","3f8"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.11.5/",component:p("/zh/unraid-os/release-notes/6.11.5/","367"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.0/",component:p("/zh/unraid-os/release-notes/6.12.0/","4f0"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.1/",component:p("/zh/unraid-os/release-notes/6.12.1/","184"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.2/",component:p("/zh/unraid-os/release-notes/6.12.2/","cfa"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.12.3/",component:p("/zh/unraid-os/release-notes/6.12.3/","607"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.9.0/",component:p("/zh/unraid-os/release-notes/6.9.0/","9fb"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.9.1/",component:p("/zh/unraid-os/release-notes/6.9.1/","a58"),exact:!0,sidebar:"unraidSidebar"},{path:"/zh/unraid-os/release-notes/6.9.2/",component:p("/zh/unraid-os/release-notes/6.9.2/","c95"),exact:!0,sidebar:"unraidSidebar"}]},{path:"*",component:p("*")}]},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},654:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(6136);const s=[n(4313),n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),m=n(1514),h=n(9962),g=n(9524),b=n(107),v=n(9488),y=n(626),w=n(8181),k=n(246),S=n(3647);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8121),L=n(694);function z(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),z("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function P(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class N extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?z("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=z("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),P(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(R,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const O=N,I="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${I}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function j(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[F]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:I}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(j,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(3256);function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(O,{location:T(t)},e)))))}var H=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(5304);const Q=new Set,W=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!W.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!W.has(e))(e)&&(W.add(e),P(e))},X=Object.freeze(Y);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;P(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-CZENQ1ZPEH"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/zh/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/zh/","mainDocId":"docs-home","docs":[{"id":"connect/about","path":"/zh/connect/about","sidebar":"unraidSidebar"},{"id":"connect/help","path":"/zh/connect/help","sidebar":"unraidSidebar"},{"id":"connect/remote-access","path":"/zh/connect/remote-access","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/intro","path":"/zh/contribute-to-docs/intro","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/congratulations","path":"/zh/contribute-to-docs/tutorial-basics/congratulations","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-blog-post","path":"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-document","path":"/zh/contribute-to-docs/tutorial-basics/create-a-document","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/create-a-page","path":"/zh/contribute-to-docs/tutorial-basics/create-a-page","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-basics/markdown-features","path":"/zh/contribute-to-docs/tutorial-basics/markdown-features","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/manage-docs-versions","path":"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions","sidebar":"unraidSidebar"},{"id":"contribute-to-docs/tutorial-extras/translate-your-site","path":"/zh/contribute-to-docs/tutorial-extras/translate-your-site","sidebar":"unraidSidebar"},{"id":"docs-home","path":"/zh/","sidebar":"unraidSidebar"},{"id":"legacy/Articles/dual-boot-unraid-and-windows","path":"/zh/legacy/Articles/dual-boot-unraid-and-windows","sidebar":"unraidSidebar"},{"id":"legacy/Articles/expanding-windows-vm-vdisk-partitions","path":"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions","sidebar":"unraidSidebar"},{"id":"legacy/Articles/upgrading-to-unraid-6","path":"/zh/legacy/Articles/upgrading-to-unraid-6","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/cache-disk","path":"/zh/legacy/FAQ/cache-disk","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-disk-filesystems","path":"/zh/legacy/FAQ/check-disk-filesystems","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/check-harddrive-speed","path":"/zh/legacy/FAQ/check-harddrive-speed","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/console","path":"/zh/legacy/FAQ/console","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/Parity","path":"/zh/legacy/FAQ/Parity","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/parity-swap-procedure","path":"/zh/legacy/FAQ/parity-swap-procedure","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-a-data-drive","path":"/zh/legacy/FAQ/replacing-a-data-drive","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/replacing-multiple-data-drives","path":"/zh/legacy/FAQ/replacing-multiple-data-drives","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","path":"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/setup-sleep-and-wake-on-lan","path":"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/shrink-array","path":"/zh/legacy/FAQ/shrink-array","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/terminal-access","path":"/zh/legacy/FAQ/terminal-access","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-from-a-network-share-to-unraid","path":"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/transferring-files-within-the-unraid-server","path":"/zh/legacy/FAQ/transferring-files-within-the-unraid-server","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/understanding-smart-reports","path":"/zh/legacy/FAQ/understanding-smart-reports","sidebar":"unraidSidebar"},{"id":"legacy/FAQ/usb-flash-drive-preparation","path":"/zh/legacy/FAQ/usb-flash-drive-preparation","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/licensing-faq","path":"/zh/unraid-os/faq/licensing-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/os-faq","path":"/zh/unraid-os/faq/os-faq","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/redeem-license-activation-code","path":"/zh/unraid-os/faq/redeem-license-activation-code","sidebar":"unraidSidebar"},{"id":"unraid-os/faq/unraid-account","path":"/zh/unraid-os/faq/unraid-account","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/configuring-time-machine","path":"/zh/unraid-os/guides/configuring-time-machine","sidebar":"unraidSidebar"},{"id":"unraid-os/guides/wol-setup-for-unraid","path":"/zh/unraid-os/guides/wol-setup-for-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/additional-settings","path":"/zh/unraid-os/manual/additional-settings","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/applications","path":"/zh/unraid-os/manual/applications","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/changing-the-flash-device","path":"/zh/unraid-os/manual/changing-the-flash-device","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/docker-management","path":"/zh/unraid-os/manual/docker-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/getting-started","path":"/zh/unraid-os/manual/getting-started/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/getting-started/manual-install-method","path":"/zh/unraid-os/manual/getting-started/manual-install-method","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/multi-language","path":"/zh/unraid-os/manual/multi-language","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/data-encryption","path":"/zh/unraid-os/manual/security/data-encryption","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/flash-drive","path":"/zh/unraid-os/manual/security/flash-drive","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/good-practices","path":"/zh/unraid-os/manual/security/good-practices","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/secure-webgui-ssl","path":"/zh/unraid-os/manual/security/secure-webgui-ssl","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/security","path":"/zh/unraid-os/manual/security/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/security/vpn","path":"/zh/unraid-os/manual/security/vpn","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/create-a-share","path":"/zh/unraid-os/manual/shares/create-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/delete-a-share","path":"/zh/unraid-os/manual/shares/delete-a-share","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/disk-shares","path":"/zh/unraid-os/manual/shares/disk-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/network-access","path":"/zh/unraid-os/manual/shares/network-access","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/shares","path":"/zh/unraid-os/manual/shares/","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/shares/user-shares","path":"/zh/unraid-os/manual/shares/user-shares","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/storage-management","path":"/zh/unraid-os/manual/storage-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/tools","path":"/zh/unraid-os/manual/tools","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/troubleshooting","path":"/zh/unraid-os/manual/troubleshooting","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/upgrade-instructions","path":"/zh/unraid-os/manual/upgrade-instructions","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/users","path":"/zh/unraid-os/manual/users","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-management","path":"/zh/unraid-os/manual/vm-management","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/vm-support","path":"/zh/unraid-os/manual/vm-support","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/what-is-unraid","path":"/zh/unraid-os/manual/what-is-unraid","sidebar":"unraidSidebar"},{"id":"unraid-os/manual/zfs/placeholder","path":"/zh/unraid-os/manual/zfs/placeholder","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.0","path":"/zh/unraid-os/release-notes/6.10.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.1","path":"/zh/unraid-os/release-notes/6.10.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.2","path":"/zh/unraid-os/release-notes/6.10.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.10.3","path":"/zh/unraid-os/release-notes/6.10.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.0","path":"/zh/unraid-os/release-notes/6.11.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.1","path":"/zh/unraid-os/release-notes/6.11.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.2","path":"/zh/unraid-os/release-notes/6.11.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.3","path":"/zh/unraid-os/release-notes/6.11.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.4","path":"/zh/unraid-os/release-notes/6.11.4","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.11.5","path":"/zh/unraid-os/release-notes/6.11.5","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.0","path":"/zh/unraid-os/release-notes/6.12.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.1","path":"/zh/unraid-os/release-notes/6.12.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.2","path":"/zh/unraid-os/release-notes/6.12.2","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.12.3","path":"/zh/unraid-os/release-notes/6.12.3","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.0","path":"/zh/unraid-os/release-notes/6.9.0","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.1","path":"/zh/unraid-os/release-notes/6.9.1","sidebar":"unraidSidebar"},{"id":"unraid-os/release-notes/6.9.2","path":"/zh/unraid-os/release-notes/6.9.2","sidebar":"unraidSidebar"},{"id":"/category/unraid-os","path":"/zh/category/unraid-os","sidebar":"unraidSidebar"},{"id":"/category/release-notes","path":"/zh/category/release-notes","sidebar":"unraidSidebar"},{"id":"/category/faq","path":"/zh/category/faq","sidebar":"unraidSidebar"},{"id":"/category/guides","path":"/zh/category/guides","sidebar":"unraidSidebar"},{"id":"/category/manual","path":"/zh/category/manual","sidebar":"unraidSidebar"},{"id":"/category/getting-started","path":"/zh/category/getting-started","sidebar":"unraidSidebar"},{"id":"/category/zfs","path":"/zh/category/zfs","sidebar":"unraidSidebar"},{"id":"/category/unraid-connect","path":"/zh/category/unraid-connect","sidebar":"unraidSidebar"},{"id":"/category/legacy-documentation","path":"/zh/category/legacy-documentation","sidebar":"unraidSidebar"},{"id":"/category/contribute","path":"/zh/category/contribute","sidebar":"unraidSidebar"},{"id":"/category/tutorial---basics","path":"/zh/category/tutorial---basics","sidebar":"unraidSidebar"},{"id":"/category/tutorial---extras","path":"/zh/category/tutorial---extras","sidebar":"unraidSidebar"}],"draftIds":[],"sidebars":{"unraidSidebar":{"link":{"path":"/zh/","label":"docs-home"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","zh","es","fr","de"],"path":"i18n","currentLocale":"zh","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"},"fr":{"label":"Fran\xe7ais","direction":"ltr","htmlLang":"fr","calendar":"gregory","path":"fr"},"de":{"label":"Deutsch","direction":"ltr","htmlLang":"de","calendar":"gregory","path":"de"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(6136),o=n(1514),i=n(3905),l=n(241);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),a=n(7294),o=n(3727),i=n(3905),l=n(9962),s=n(2735),u=n(6136);const c=a.createContext({collectLink:()=>{}});var d=n(9524);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(c),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=p||f;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),z=n?o.OL:o.rU,R=u.Z.canUseIntersectionObserver,P=(0,a.useRef)(),N=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!R&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{R&&P.current&&P.current.disconnect()})),[P,T,R,_]);const O=T?.startsWith("#")??!1,I=!T||!_||O;return I||g||S.collectLink(T),I?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(z,(0,r.Z)({},v,{onMouseEnter:N,onTouchStart:N,innerRef:e=>{E.current=e,R&&e&&_&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),P.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=a.forwardRef(p)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(9962),o=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(694);function o(){return(0,r.useContext)(a._)}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8121);function o(){return(0,r.useContext)(a._)}},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},9871:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>p,yW:()=>g,gB:()=>h});var r=n(6550),a=n(9962),o=n(6875);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return l(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return u(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},4313:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},241:(e,t,n)=>{"use strict";n.d(t,{Z:()=>zt});var r=n(7294),a=n(4334),o=n(3256),i=n(9488),l=n(7462),s=n(6550),u=n(7325),c=n(3266);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(3702),b=n(8181);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(735),z=n(2957);var R=n(3768),P=n(3086);const N=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,P.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,R.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(N.Provider,{value:n},t)}function I(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function D(){const e=(0,r.useContext)(N);if(!e)throw new R.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,P.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=D();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var F=n(9200),B=n(1048);function j(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,B.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(j,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,F.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(6811);function Q(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(W,null))}var Y=n(3699),X=n(9524),J=n(2735),ee=n(1500),te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(a),f=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Y.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Y.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(4639),le=n(9003),se=n(9962);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var fe=n(626);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(s){l=!0,a=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],p=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(1514),Ce=n(5358),Te=n(2327),Ae=n(246);var Le=n(3935);const ze={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Re=null;function Pe(e){let{hit:t,children:n}=e;return r.createElement(Y.Z,{to:t.url},n)}function Ne(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Y.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Oe(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Re?Promise.resolve():Promise.all([n.e(9724).then(n.bind(n,9724)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(2153)]).then(n.bind(n,2153))]).then((e=>{let[{DocSearchModal:t}]=e;Re=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Ne,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:ze.button}),b&&Re&&h.current&&(0,Le.createPortal)(r.createElement(Re,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Pe,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:f,placeholder:ze.placeholder,translations:ze.modal})),h.current))}function Ie(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Oe,e.themeConfig.algolia)}const De={searchBox:"searchBox_ZlJk"};function Me(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,De.searchBox)},t)}var Fe=n(9871),Be=n(8259);var je=n(6409);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Me,{className:n},r.createElement(Ie,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),s=(0,Be.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),s=(0,Be.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,Be.lO)(a)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,Fe.Iw)(n),m=(0,Fe.gB)(n),{savePreferredVersionName:h}=(0,je.J)(n),g=[...o,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,Be.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=D();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(M,{header:r.createElement(K,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ze,null)}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function We(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ke(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,z.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!s&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(We,{onClick:i.toggle}),r.createElement(Ve,null))}var Ye=n(3905);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Ye.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(Q,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Me,null,r.createElement(Ie,null)))})}function ut(){return r.createElement(Ke,null,r.createElement(st,null))}function ct(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Y.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ct,{item:t}))}function pt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function ft(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(pt,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ct,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(ft,{columns:t}):r.createElement(gt,{links:t})}var vt=n(7909);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Y.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,R.Qc)([F.S,k.pl,z.OC,je.L5,i.VC,function(e){let{children:t}=e;return r.createElement(P.n2,null,r.createElement(L.M,null,r.createElement(O,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function zt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(3699),i=n(9524),l=n(9962),s=n(107),u=n(7909);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},f,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(1514);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},7909:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(4334),i=n(1048),l=n(9200);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},p)))))}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(6136),i=n(8986);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?u:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!o.Z.canUseDOM)return e?u:c}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(7294),a=n(1048),o=n(2560),i=n(3768),l=n(107);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(6136),o=n(3768),i=n(2560),l=n(107);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{c.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(9871),o=n(6875),i=n(107),l=n(8259),s=n(3768),u=n(2560);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(3768);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},735:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(7294),a=n(3086),o=n(3488),i=n(5238),l=n(107),s=n(3768);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(3768);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},5358:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(9962),o=n(5238);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(6136);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8259:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>p,hI:()=>x,jA:()=>h,lO:()=>k,oz:()=>S,s1:()=>w,vY:()=>E,xz:()=>f});var r=n(7294),a=n(6550),o=n(8790),i=n(9871),l=n(6409),s=n(8801),u=n(4432),c=n(3609),d=n(9003);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2733:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(9962);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},5238:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l,_X:()=>s});var r=n(7294),a=n(6550),o=n(1688),i=n(3768);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},3609:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},9488:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(7294),a=n(7459),o=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(2733);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(o,i)},t)}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1500:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(997),o=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d,o5:()=>p});var r=n(7294),a=n(6136),o=n(1048),i=n(3768);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(9871),a=n(9962),o=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(9962),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(3768);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){return(0,r.Z)().siteConfig.themeConfig}},7263:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(9962);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},2327:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(1500),o=n(9524),i=n(7263);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function z(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function R(){N(C(y()))}var P=!1;function N(e){if(P)P=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(P=!0,M(a))}(e)}))}}var O=C(y()),I=[O.key];function D(e){return _+p(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(b,z),o&&window.addEventListener(v,R)):0===F&&(window.removeEventListener(b,z),o&&window.removeEventListener(v,R))}var j=!1;var U={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=I.indexOf(U.location.key),u=I.slice(0,s+1);u.push(o.key),I=u,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=I.indexOf(U.location.key);-1!==s&&(I[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return j||(B(1),j=!0),function(){return j&&(j=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[u],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=c(e,b)),f(e)}var T=m();function A(e){(0,r.Z)(j,e),j.length=t.length,T.notifyListeners(j.location,j.action)}var L=!1,z=null;function R(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=j.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(z===p(a))return;z=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=j.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,D(a))}(e)}))}}(a)}}var P=x(),N=y(P);P!==N&&_(N);var O=C(),I=[p(O)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,R):0===M&&window.removeEventListener(k,R)}var B=!1;var j={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,j.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(x()!==a){z=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(p(j.location)),i=I.slice(0,o+1);i.push(t),I=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,j.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);x()!==a&&(z=t,_(a));var o=I.indexOf(p(j.location));-1!==o&&(I[o]=t),A({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return j}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{u(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},984:(e,t,n)=>{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in o=Object(arguments[s]))n.call(o,u)&&(l[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(l[i[c]]=o[i[c]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=l[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var p=s(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=c;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var z=S;z!==t.tail&&(L<A||"string"==typeof z.value);z=z.next)C++,L+=z.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var R=_[0],P=x.slice(0,T),N=x.slice(T+R.length),O=E+x.length;d&&O>d.reach&&(d.reach=O);var I=S.prev;if(P&&(I=s(t,I,P),E+=P.length),u(t,I,C),S=s(t,I,new a(p,g?r.tokenize(R,g):R,y,R)),N&&s(t,S,N),C>1){var D={cause:p+","+m,reach:O};i(e,t,n,S.prev,E,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],u=/language-(.+)/.exec(o);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),a.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&a.indexOf(u.content)>=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),f=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),u=l.alias,d=Array.isArray(u)?u[0]:u,f=e.languages[d];if(!f)continue;i[1]=c(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,z=60113,R=60120,P=60115,N=60116,O=60121,I=60128,D=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;S=B("react.element"),E=B("react.portal"),x=B("react.fragment"),_=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),A=B("react.context"),L=B("react.forward_ref"),z=B("react.suspense"),R=B("react.suspense_list"),P=B("react.memo"),N=B("react.lazy"),O=B("react.block"),B("react.scope"),I=B("react.opaque.id"),D=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var j,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===j)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);j=t&&t[1]||""}return"\n"+j+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case z:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case P:return V(e.type);case O:return V(e._render);case N:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function ze(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Re(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Pe(e,t){return e(t)}function Ne(e,t,n,r,a){return e(t,n,r,a)}function Oe(){}var Ie=Pe,De=!1,Me=!1;function Fe(){null===Te&&null===Ae||(Oe(),Re())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var je=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){je=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){je=!1}function $e(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function Qe(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ye(e){if(We(e)!==e)throw Error(i(188))}function Xe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=ft(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Xt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ut.forEach(vt),ct.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),zt=Ct("transitionend"),Rt=new Map,Pt=new Map,Nt=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",zt,"transitionEnd","waiting","waiting"];function Ot(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Pt.set(r,t),Rt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var It=8;function Dt(e){if(0!=(1&e))return It=15,1;if(0!=(2&e))return It=14,2;if(0!=(4&e))return It=13,4;var t=24&e;return 0!==t?(It=12,t):0!=(32&e)?(It=11,32):0!==(t=192&e)?(It=10,t):0!=(256&e)?(It=9,256):0!==(t=3584&e)?(It=8,t):0!=(4096&e)?(It=7,4096):0!==(t=4186112&e)?(It=6,t):0!==(t=62914560&e)?(It=5,t):67108864&e?(It=4,67108864):0!=(134217728&e)?(It=3,134217728):0!==(t=805306368&e)?(It=2,t):0!=(1073741824&e)?(It=1,1073741824):(It=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return It=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=It=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Dt(s),a=It):0!==(l&=o)&&(r=Dt(l),a=It)}else 0!==(o=n&~i)?(r=Dt(o),a=It):0!==l&&(r=Dt(l),a=It);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Dt(t),a<=It)return t;It=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=jt(24&~t))?Bt(10,t):e;case 10:return 0===(e=jt(192&~t))?Bt(8,t):e;case 8:return 0===(e=jt(3584&~t))&&(0===(e=jt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=jt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function jt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Qt=!0;function Wt(e,t,n,r){De||Oe();var a=Yt,o=De;De=!0;try{Ne(a,e,t,n,r)}finally{(De=o)||Fe()}}function Kt(e,t,n,r){Vt(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),ot.push(e);else{var o=Xt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<pt.indexOf(e))return e=ft(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Or(e,t,r,null,n)}}}function Xt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=We(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Or(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=ln(dn),fn=a({},dn,{view:0,detail:0}),mn=ln(fn),hn=a({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},fn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},fn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),zn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=ln(a({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Pn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),On=ln(Nn),In=[9,13,27,32],Dn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!Dn||Mn&&8<Mn&&11>=Mn),jn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==In.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){ze(r),0<(t=Dr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Wn=null;function Kn(e){Ar(e,0)}function Yn(e){if(Y(ra(e)))return e}function Xn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Wn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if(Vn(t,Wn,e,_e(e)),e=Kn,De)e(t);else{De=!0;try{Pe(e,t)}finally{De=!1,Fe()}}}}function or(e,t,n){"focusin"===e?(rr(),Wn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function lr(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==X(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Dr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}Ot("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Ot("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Ot(Nt,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Pt.set(Er[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Ge;qe=!1,Ge=null,He||(He=!0,Ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,u),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Nr(t,e,2,!1),n.add(r))}var zr="_reactListening"+Math.random().toString(36).slice(2);function Rr(e){e[zr]||(e[zr]=!0,l.forEach((function(t){Cr.has(t)||Pr(t,!1,e,null),Pr(t,!0,e,null)})))}function Pr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Nr(o,e,a,t),i.add(l))}function Nr(e,t,n,r){var a=Pt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Kt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!je||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Or(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Ie(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Rt.get(e);if(void 0!==l){var s=pn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":u="focus",s=vn;break;case"focusout":u="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Rn;break;case Tt:case At:case Lt:s=yn;break;case zt:s=Pn;break;case"scroll":s=mn;break;case"wheel":s=On;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=zn}var c=0!=(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Be(m,p))&&c.push(Ir(m,h,f)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(d=We(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=zn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:ra(s),f=null==u?l:ra(u),(l=new c(h,m+"leave",s,n,a)).target=d,l.relatedTarget=f,h=null,ta(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,h=c),d=h,s&&u)e:{for(p=u,m=0,f=c=s;f;f=Mr(f))m++;for(f=0,h=p;h;h=Mr(h))f++;for(;0<m-f;)c=Mr(c),m--;for(;0<f-m;)p=Mr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Mr(c),p=Mr(p)}c=null}else c=null;null!==s&&Fr(i,l,s,c,!1),null!==u&&null!==d&&Fr(i,d,u,c,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Xn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Dn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Dr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=Fn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,jn);case"textInput":return(e=t.data)===jn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Dn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Dr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Ir(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Be(e,n))&&r.unshift(Ir(e,o,a)),null!=(o=Be(e,t))&&r.push(Ir(e,o,a))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Be(n,o))&&i.unshift(Ir(n,s,l)):a||null!=(s=Be(n,o))&&i.push(Ir(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var jr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0;var Kr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Kr,Xr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Xr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ua(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ca(e,t){la++,ia[la]=e.current,e.current=t}var da={},pa=sa(da),fa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ua(fa),ua(pa)}function va(e,t,n){if(pa.current!==da)throw Error(i(168));ca(pa,t),ca(fa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=pa.current,ca(pa,e),ca(fa,fa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ua(fa),ua(pa),ca(pa,e)):ua(fa),ca(fa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,za=o.unstable_getCurrentPriorityLevel,Ra=o.unstable_ImmediatePriority,Pa=o.unstable_UserBlockingPriority,Na=o.unstable_NormalPriority,Oa=o.unstable_LowPriority,Ia=o.unstable_IdlePriority,Da={},Ma=void 0!==Aa?Aa:function(){},Fa=null,Ba=null,ja=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(za()){case Ra:return 99;case Pa:return 98;case Na:return 97;case Oa:return 96;case Ia:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Ra;case 98:return Pa;case 97:return Na;case 96:return Oa;case 95:return Ia;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==Ba){var e=Ba;Ba=null,Ca(e)}Qa()}function Qa(){if(!ja&&null!==Fa){ja=!0;var e=0;try{var t=Fa;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fa=null}catch(n){throw null!==Fa&&(Fa=Fa.slice(e+1)),_a(Ra,Va),n}finally{ja=!1}}}var Wa=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Xa=null,Ja=null,eo=null;function to(){eo=Ja=Xa=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Xa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Di=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Xa)throw Error(i(308));Ja=t,Xa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fo(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=c:p.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(p=o.baseState,l=0,d=c=u=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=a({},p,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=f,u=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(u=p),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=p}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:pa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:pa.current,a.context=ha(e,o)),fo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Ys(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Qs(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Ys(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Qs(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var u=null,c=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===c?u=b:c.sibling=b,c=b,d=g}if(h===l.length)return n(a,d),u;if(null===d){for(;h<l.length;h++)null!==(d=p(a,l[h],s))&&(i=o(d,i,h),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),u}function g(a,l,s,u){var c=$(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,u);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?c=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),c;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(a,v.value,u))&&(l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return c}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?c=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),c}return function(e,r,o,s){var u="object"==typeof o&&null!==o&&o.type===x&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case S:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===x){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===x?((r=Qs(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ys(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(c&&xo(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),zo=sa(Ao),Ro=sa(Ao);function Po(e){if(e===Ao)throw Error(i(174));return e}function No(e,t){switch(ca(Ro,t),ca(zo,e),ca(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),ca(Lo,t)}function Oo(){ua(Lo),ua(zo),ua(Ro)}function Io(e){Po(Ro.current);var t=Po(Lo.current),n=fe(t,e.type);t!==n&&(ca(zo,e),ca(Lo,n))}function Do(e){zo.current===e&&(ua(Lo),ua(zo))}var Mo=sa(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Bo=null,jo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=jo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(Bo=e);$o(Bo,n)}Bo=e,jo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,Bo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Bo=e}function Zo(e){if(e!==Bo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=jo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){jo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}jo=null}}else jo=Bo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){jo=Bo=null,Uo=!1}var Qo=[];function Wo(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Ko=k.ReactCurrentDispatcher,Yo=k.ReactCurrentBatchConfig,Xo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Xo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Pi:Ni,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Oi,e=n(r,a)}while(ri)}if(Ko.current=Ri,t=null!==ei&&null!==ei.next,Xo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,u=a;do{var c=u.lane;if((Xo&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=c,Ul|=c}u=u.next}while(null!==u&&u!==a);null===s?o=r:s.next=l,ur(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Di=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Xo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function fi(e,t,n,r){var a=Nl;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,u=s.useState((function(){return pi(a,t,n)})),c=u[1],d=u[0];u=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Jo;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=fs(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=zi.bind(null,Jo,e),u.queue=e,u.baseQueue=null,d=pi(a,t,n),u.memoizedState=u.baseState=d),d}function mi(e,t,n){return fi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=zi.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function zi(e,t,n){var r=ps(),a=fs(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,ur(s,l))return}catch(u){}ms(e,a,r)}}var Ri={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Pi={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=zi.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:I,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ci,useRef:vi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Ii=k.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function Fi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Di?(t.flags|=1,Mi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Bi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,ji(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function ji(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Di=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Di=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Mi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:pa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Di?(t.flags|=1,Mi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=oo(u):u=ha(t,u=ga(n)?ma:pa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wo(t,i,r,u),io=!1;var p=t.memoizedState;i.state=p,fo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||fa.current||io?("function"==typeof c&&(go(t,n,c,r),s=t.memoizedState),(l=io||vo(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ka(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:pa.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&wo(t,i,r,s),io=!1,p=t.memoizedState,i.state=p,fo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||fa.current||io?("function"==typeof f&&(go(t,n,f,r),m=t.memoizedState),(u=io||vo(t,n,u,r,p,m,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Ii.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Mi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),No(e,t.containerInfo)}var Vi,Qi,Wi,Ki,Yi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,a=t.pendingProps,o=Mo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Mo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Ws({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ws(t,a,0,null),n=Qs(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Qs(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Mo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Mo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Fo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Oo(),ua(fa),ua(pa),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Do(t);var o=Po(Ro.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Po(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Xr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var u in Ee(n,l),e=null,l)l.hasOwnProperty(u)&&(o=l[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Xr]=r,Vi(e,t,!1,!1),t.stateNode=e,u=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Br)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Po(Ro.current),Po(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Mo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Mo.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Nl||0==(134217727&Ul)&&0==(134217727&$l)||vs(Nl,Il))),(r||n)&&(t.flags|=4),null);case 4:return Oo(),Qi(t),null===e&&Rr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Mo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Fo(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Mo,1&Mo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fo(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Mo.current,ca(Mo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Oo(),ua(fa),ua(pa),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Do(e),null;case 13:return ua(Mo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Mo),null;case 4:return Oo(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Wi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Po(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Lr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===I?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Yl=r),cl(0,t)},n}function fl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return cl(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){js(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Ms(n,e),Ds(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Ms(t,n);else{r=t;try{a()}catch(o){js(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){js(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Xr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,zl=k.ReactCurrentDispatcher,Rl=k.ReactCurrentOwner,Pl=0,Nl=null,Ol=null,Il=0,Dl=0,Ml=sa(0),Fl=0,Bl=null,jl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Ql,Wl=null,Kl=!1,Yl=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function ps(){return 0!=(48&Pl)?$a():-1!==ls?ls:ls=$a()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=jl),0!==Wa.transition){0!==us&&(us=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Pl)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Nl&&($l|=t,4===Fl&&vs(e,Il));var r=qa();1===t?0!=(8&Pl)&&0==(48&Pl)?ys(e):(gs(e,n),0===Pl&&(Vl(),Va())):(0==(4&Pl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),u=1<<s,c=o[s];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Dt(u);var d=It;o[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Mt(e,e===Nl?Il:0),t=It,0===r)null!==n&&(n!==Da&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Da&&Ca(n)}15===t?(n=ys.bind(null,e),null===Fa?(Fa=[n],Ba=_a(Ra,Qa)):Fa.push(n),n=Da):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,us=ss=0,0!=(48&Pl))throw Error(i(327));var t=e.callbackNode;if(Is()&&e.callbackNode!==t)return null;var n=Mt(e,e===Nl?Il:0);if(0===n)return null;var r=n,a=Pl;Pl|=16;var o=Cs();for(Nl===e&&Il===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),zl.current=o,Pl=a,null!==Ol?r=0:(Nl=null,Il=0,r=Fl),0!=(jl&$l))xs(e,0);else if(0!==r){if(2===r&&(Pl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ps(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Mt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ps.bind(null,e),r);break}Ps(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ps.bind(null,e),n);break}Ps(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Pl))throw Error(i(327));if(Is(),e===Nl&&0!=(e.expiredLanes&Il)){var t=Il,n=Ts(e,t);0!=(jl&$l)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Pl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ps(e),gs(e,$a()),null}function ws(e,t){var n=Pl;Pl|=1;try{return e(t)}finally{0===(Pl=n)&&(Vl(),Va())}}function ks(e,t){var n=Pl;Pl&=-2,Pl|=8;try{return e(t)}finally{0===(Pl=n)&&(Vl(),Va())}}function Ss(e,t){ca(Ml,Dl),Dl|=t,jl|=t}function Es(){Dl=Ml.current,ua(Ml)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Ol)for(n=Ol.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Oo(),ua(fa),ua(pa),Wo();break;case 5:Do(r);break;case 4:Oo();break;case 13:case 19:ua(Mo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Nl=e,Ol=Zs(e.current,null),Il=Dl=jl=t,Fl=0,Bl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Ol;try{if(to(),Ko.current=Ri,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Xo=0,ti=ei=Jo=null,ri=!1,Rl.current=null,null===n||null===n.return){Fl=1,Bl=t,Ol=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Il,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Mo.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(u),p.updateQueue=b}else g.add(u);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,co(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,u,l);u.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=ul(s,l),p=i;do{switch(p.tag){case 3:o=s,p.flags|=4096,t&=-t,p.lanes|=t,po(p,pl(0,o,t));break e;case 1:o=s;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,po(p,fl(p,o,t));break e}}p=p.return}while(null!==p)}Rs(n)}catch(E){t=E,Ol===n&&null!==n&&(Ol=n=n.return);continue}break}}function Cs(){var e=zl.current;return zl.current=Ri,null===e?Ri:e}function Ts(e,t){var n=Pl;Pl|=16;var r=Cs();for(Nl===e&&Il===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Pl=n,zl.current=r,null!==Ol)throw Error(i(261));return Nl=null,Il=0,Fl}function As(){for(;null!==Ol;)zs(Ol)}function Ls(){for(;null!==Ol&&!Ta();)zs(Ol)}function zs(e){var t=Ql(e.alternate,e,Dl);e.memoizedProps=e.pendingProps,null===t?Rs(e):Ol=t,Rl.current=null}function Rs(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Dl)))return void(Ol=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Dl)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Ol=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ol=t);Ol=t=e}while(null!==t);0===Fl&&(Fl=5)}function Ps(e){var t=qa();return Ha(99,Ns.bind(null,e,t)),null}function Ns(e,t){do{Is()}while(null!==es);if(0!=(48&Pl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,l[u]=-1,s[u]=-1,o&=~c}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Nl&&(Ol=Nl=null,Il=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Pl,Pl|=32,Rl.current=null,jr=Qt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(p=d+o),g!==u||0!==c&&3!==g.nodeType||(f=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(p=d),b===u&&++h===c&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Qt=!1,cs=null,ds=!1,Wl=r;do{try{Os()}catch(C){if(null===Wl)throw Error(i(330));js(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);cs=null,Wl=r;do{try{for(l=e;null!==Wl;){var y=Wl.flags;if(16&y&&be(Wl.stateNode,""),128&y){var w=Wl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Wl),Wl.flags&=-3;break;case 6:Sl(Wl),Wl.flags&=-3,Cl(Wl.alternate,Wl);break;case 1024:Wl.flags&=-1025;break;case 1028:Wl.flags&=-1025,Cl(Wl.alternate,Wl);break;case 4:Cl(Wl.alternate,Wl);break;case 8:_l(l,s=Wl);var S=s.alternate;wl(s),null!==S&&wl(S)}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));js(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=fr(y,S),o=fr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Qt=!!jr,Ur=jr=null,e.current=n,Wl=r;do{try{for(y=e;null!==Wl;){var E=Wl.flags;if(36&E&&bl(y,Wl.alternate,Wl),128&E){w=void 0;var x=Wl.ref;if(null!==x){var _=Wl.stateNode;Wl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Wl=Wl.nextEffect}}catch(C){if(null===Wl)throw Error(i(330));js(Wl,C),Wl=Wl.nextEffect}}while(null!==Wl);Wl=null,Ma(),Pl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Wl=r;null!==Wl;)t=Wl.nextEffect,Wl.nextEffect=null,8&Wl.flags&&((E=Wl).sibling=null,E.stateNode=null),Wl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Yl,Yl=null,e;return 0!=(8&Pl)||Va(),null}function Os(){for(;null!==Wl;){var e=Wl.alternate;ds||null===cs||(0!=(8&Wl.flags)?Je(Wl,cs)&&(ds=!0):13===Wl.tag&&Al(e,Wl)&&Je(Wl,cs)&&(ds=!0));var t=Wl.flags;0!=(256&t)&&gl(e,Wl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Is(),null}))),Wl=Wl.nextEffect}}function Is(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,Fs)}return!1}function Ds(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Is(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Is(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Pl))throw Error(i(331));var t=Pl;Pl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===o)throw Error(i(330));js(o,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(u){if(null===o)throw Error(i(330));js(o,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Pl=t,Va(),!0}function Bs(e,t,n){co(e,t=pl(0,t=ul(n,t),1)),t=ps(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function js(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var a=fl(n,e=ul(t,e),1);if(co(n,a),a=ps(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Nl===e&&(Il&n)===n&&(4===Fl||3===Fl&&(62914560&Il)===Il&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=jl),0===(t=jt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Qs(n.children,a,o,t);case D:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case z:return(e=Gs(13,n,t,a)).type=z,e.elementType=z,e.lanes=o,e;case R:return(e=Gs(19,n,t,a)).elementType=R,e.lanes=o,e;case M:return Ws(n,a,o,t);case F:return(e=Gs(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case P:l=14;break e;case N:l=16,r=null;break e;case O:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Qs(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ws(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Ys(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=ps(),l=fs(a);e:if(n){t:{if(We(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ya(n,u,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),ms(a,l,o),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Rr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function au(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ou(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=eu(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=eu(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!au(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ql=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fa.current)Di=!0;else{if(0==(n&r)){switch(Di=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Io(t);break;case 1:ga(t.type)&&wa(t);break;case 4:No(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(ca(Mo,1&Mo.current),null!==(t=ol(e,t,n))?t.sibling:null);ca(Mo,1&Mo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Mo,Mo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Di=0!=(16384&e.flags)}else Di=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,pa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Mi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===P)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=Fi(null,t,a,e,n);break e;case 14:t=Bi(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),fo(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(jo=Vr(t.stateNode.containerInfo.firstChild),Bo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Vo();t=t.child}return t;case 5:return Io(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Xi(e,t,n);case 4:return No(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Fi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ca(Ya,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=ur(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!fa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===s.tag&&((c=uo(-1,n&-n)).tag=2,co(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),ro(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),Bi(e,t,a,o=Ka(a.type,o),r,n);case 15:return ji(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,ps()),nu(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,ps()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Pe=ws,Ne=function(e,t,n,r,a){var o=Pl;Pl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Pl=o)&&(Vl(),Va())}},Oe=function(){0==(49&Pl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Is())},Ie=function(e,t){var n=Pl;Pl|=2;try{return e(t)}finally{0===(Pl=n)&&(Vl(),Va())}};var lu={Events:[na,ra,aa,ze,Re,Is,{current:!1}]},su={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Xe(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{Sa=cu.inject(uu),Ea=cu}catch(he){}}t.createPortal=iu,t.hydrate=function(e,t,n){if(!au(t))throw Error(i(200));return ou(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},z=function(e){return Array.isArray(e)?e.join(""):e},R=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},P=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=D(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=z(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=R(e.metaTags,y),o=R(t,b),i=R(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,a.priority),M(g.LINK,o.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,c,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:u},r)}},j=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?j:n.instances},add:function(e){(n.canUseDOM?j:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?j:n.instances).indexOf(e);(n.canUseDOM?j:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=z(e)),V(g.TITLE,t)}(c,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},W=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,W&&cancelAnimationFrame(W),t.defer?W=requestAnimationFrame((function(){Q(t,(function(){W=null}))})):(Q(t),W=null)):B&&(a=B(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(P(this.props,"helmetData"),P(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Y),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===c},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return u.push(g),"function"==typeof m.webpack&&c.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(u).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(c).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=f!==m&&t||n,o.createElement("a",c)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(c||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=p(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),z="function"==typeof m?m(L):m,R="function"==typeof E?E(L):E;L&&(z=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(z,c),R=(0,l.Z)({},R,f));var P=(0,l.Z)({"aria-current":L&&a||null,className:z,style:R,to:i},C);return b!==v?P.ref=t||_:P.innerRef=_,o.createElement(g,P)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>N,k6:()=>P,rs:()=>z,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(7462),c=n(4779),d=n.n(c),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var z=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var R=a.useContext;function P(){return R(b)}function N(){return R(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var z={current:null};function R(){var e=z.current;if(null===e)throw Error(f(321));return e}var P={ReactCurrentDispatcher:z,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)k.call(t,c)&&!S.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return R().useCallback(e,t)},t.useContext=function(e,t){return R().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return R().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return R().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return R().useLayoutEffect(e,t)},t.useMemo=function(e,t){return R().useMemo(e,t)},t.useReducer=function(e,t,n){return R().useReducer(e,t,n)},t.useRef=function(e){return R().useRef(e)},t.useState=function(e){return R().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},a=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,z=3,R=!1,P=!1,N=!1;function O(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function I(e){if(N=!1,O(e),!P)if(null!==E(C))P=!0,n(D);else{var t=E(T);null!==t&&r(I,t.startTime-e)}}function D(e,n){P=!1,N&&(N=!1,a()),R=!0;var o=z;try{for(O(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,z=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),O(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var u=E(T);null!==u&&r(I,u.startTime-n),s=!1}return s}finally{L=null,z=o,R=!1}}var M=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){P||R||(P=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return z},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(z){case 1:case 2:case 3:var t=3;break;default:t=z}var n=z;z=t;try{return e()}finally{z=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=z;z=e;try{return t()}finally{z=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(N?a():N=!0,r(I,i-l))):(e.sortIndex=s,S(C,e),P||R||(P=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=z;return function(){var n=z;z=t;try{return e.apply(this,arguments)}finally{z=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,c=r[1];return l((function(){a.value=n,a.getSnapshot=t,u(a)&&c({inst:a})}),[e,n,t]),i((function(){return u(a)&&c({inst:a}),e((function(){u(a)&&c({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"Unraid Docs",tagline:"Documentation for Unraid",favicon:"img/favicon.svg",url:"https://docs.unraid.net",baseUrl:"/zh/",trailingSlash:!0,organizationName:"unraid",projectName:"docs",onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en","zh","es","fr","de"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/docs/docs/sidebars.js",editUrl:"https://github.com/unraid/docs/tree/main/",editLocalizedFiles:!0},theme:{customCss:"/home/runner/work/docs/docs/src/css/custom.css"},gtag:{trackingID:"G-CZENQ1ZPEH",anonymizeIP:!0}}]],themeConfig:{algolia:{appId:"JUYLFQHE7W",apiKey:"47111d6564a2e69ee21a1d3d2f786ef3",indexName:"unraid",contextualSearch:!0,searchPagePath:"search",searchParameters:{}},announcementBar:{id:"underConstruction",content:'Welcome to the new Unraid Documentation! \ud83d\udea7 Currently Under Construction \ud83d\udea7 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> ',isCloseable:!0,backgroundColor:"#ff8c2f",textColor:"#fff"},colorMode:{defaultMode:"dark",respectPrefersColorScheme:!0,disableSwitch:!1},image:"img/meta-unraid.png",metadata:[{name:"theme-color",content:"#242526",media:"(prefers-color-scheme: dark)"},{name:"theme-color",content:"#ffffff",media:"(prefers-color-scheme: light)"},{name:"color-scheme",content:"dark light"},{name:"keywords",content:"Unraid, server, storage, NAS, Docker, virtualization, array, parity, data protection, file sharing, plugins, management, GUI, disk management, caching, SSD, disk encryption, security, RAID, network configuration, backups, media server, transcoding, monitoring, VMs, GPU passthrough, hardware compatibility"}],navbar:{title:"Unraid Docs",logo:{alt:"My Site Logo",src:"img/un-mark-gradient.svg",style:{width:"30px"}},items:[{items:[{href:"https://unraid.net",label:"Unraid Home"},{href:"https://forums.unraid.net",label:"Forums"},{label:"Docs Github",href:"https://github.com/unraid/docs"}],position:"right",label:"More"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:4},footer:{style:"light",links:[{title:"Documentation",items:[{label:"Home",to:"/"},{label:"Contribute on Github",href:"https://github.com/unraid/docs"}]},{title:"Community",items:[{label:"Forums",href:"https://forums.unraid.net"},{label:"Discord",href:"https://discordapp.com/invite/unraid"}]},{title:"More",items:[{label:"Unraid Home",href:"https://unraid.net"},{label:"Unraid Connect",href:"https://connect.myunraid.net"},{label:"Newsletter",href:"https://newsletter.unraid.net"},{label:"Blog",href:"https://unraid.net/blog"}]}],logo:{alt:"Unraid Logo",src:"img/un-mark-gradient.svg",width:100},copyright:"<small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small>"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}}},plugins:[["@docusaurus/plugin-ideal-image",{quality:70,max:1030,min:640,steps:2,disableInDev:!1}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/legacy/FAQ/shrink-array/",from:"/legacy/FAQ/Shrink_array/"}]}]],baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"\u5173\u95ed","theme.BackToTopButton.buttonAriaLabel":"\u56de\u5230\u9876\u90e8","theme.CodeBlock.copied":"\u590d\u5236\u6210\u529f","theme.CodeBlock.copy":"\u590d\u5236","theme.CodeBlock.copyButtonAriaLabel":"\u590d\u5236\u4ee3\u7801\u5230\u526a\u8d34\u677f","theme.CodeBlock.wordWrapToggle":"\u5207\u6362\u81ea\u52a8\u6362\u884c","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"\u6253\u5f00/\u6536\u8d77\u4fa7\u8fb9\u680f\u83dc\u5355\u300c{label}\u300d","theme.ErrorPageContent.title":"\u9875\u9762\u5df2\u5d29\u6e83\u3002","theme.ErrorPageContent.tryAgain":"\u91cd\u8bd5","theme.NavBar.navAriaLabel":"\u4e3b\u5bfc\u822a","theme.NotFound.p1":"\u6211\u4eec\u627e\u4e0d\u5230\u60a8\u8981\u627e\u7684\u9875\u9762\u3002","theme.NotFound.p2":"\u8bf7\u8054\u7cfb\u539f\u59cb\u94fe\u63a5\u6765\u6e90\u7f51\u7ad9\u7684\u6240\u6709\u8005\uff0c\u5e76\u544a\u77e5\u4ed6\u4eec\u94fe\u63a5\u5df2\u635f\u574f\u3002","theme.NotFound.title":"\u627e\u4e0d\u5230\u9875\u9762","theme.TOCCollapsible.toggleButtonLabel":"\u672c\u9875\u603b\u89c8","theme.admonition.caution":"\u8b66\u544a","theme.admonition.danger":"\u5371\u9669","theme.admonition.info":"\u4fe1\u606f","theme.admonition.note":"\u5907\u6ce8","theme.admonition.tip":"\u63d0\u793a","theme.blog.archive.description":"\u5386\u53f2\u535a\u6587","theme.blog.archive.title":"\u5386\u53f2\u535a\u6587","theme.blog.paginator.navAriaLabel":"\u535a\u6587\u5217\u8868\u5206\u9875\u5bfc\u822a","theme.blog.paginator.newerEntries":"\u8f83\u65b0\u7684\u535a\u6587","theme.blog.paginator.olderEntries":"\u8f83\u65e7\u7684\u535a\u6587","theme.blog.post.paginator.navAriaLabel":"\u535a\u6587\u5206\u9875\u5bfc\u822a","theme.blog.post.paginator.newerPost":"\u8f83\u65b0\u4e00\u7bc7","theme.blog.post.paginator.olderPost":"\u8f83\u65e7\u4e00\u7bc7","theme.blog.post.plurals":"{count} \u7bc7\u535a\u6587","theme.blog.post.readMore":"\u9605\u8bfb\u66f4\u591a","theme.blog.post.readMoreLabel":"\u9605\u8bfb {title} \u7684\u5168\u6587","theme.blog.post.readingTime.plurals":"\u9605\u8bfb\u9700 {readingTime} \u5206\u949f","theme.blog.sidebar.navAriaLabel":"\u6700\u8fd1\u535a\u6587\u5bfc\u822a","theme.blog.tagTitle":"{nPosts} \u542b\u6709\u6807\u7b7e\u300c{tagName}\u300d","theme.colorToggle.ariaLabel":"\u5207\u6362\u6d45\u8272/\u6697\u9ed1\u6a21\u5f0f\uff08\u5f53\u524d\u4e3a{mode}\uff09","theme.colorToggle.ariaLabel.mode.dark":"\u6697\u9ed1\u6a21\u5f0f","theme.colorToggle.ariaLabel.mode.light":"\u6d45\u8272\u6a21\u5f0f","theme.common.editThisPage":"\u7f16\u8f91\u6b64\u9875","theme.common.headingLinkTitle":"{heading}\u7684\u76f4\u63a5\u94fe\u63a5","theme.common.skipToMainContent":"\u8df3\u5230\u4e3b\u8981\u5185\u5bb9","theme.docs.DocCard.categoryDescription":"{count} \u4e2a\u9879\u76ee","theme.docs.breadcrumbs.home":"\u4e3b\u9875\u9762","theme.docs.breadcrumbs.navAriaLabel":"\u9875\u9762\u8def\u5f84","theme.docs.paginator.navAriaLabel":"\u6587\u4ef6\u9009\u9879\u5361","theme.docs.paginator.next":"\u4e0b\u4e00\u9875","theme.docs.paginator.previous":"\u4e0a\u4e00\u9875","theme.docs.sidebar.closeSidebarButtonAriaLabel":"\u5173\u95ed\u5bfc\u822a\u680f","theme.docs.sidebar.collapseButtonAriaLabel":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.collapseButtonTitle":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonAriaLabel":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonTitle":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.navAriaLabel":"\u6587\u6863\u4fa7\u8fb9\u680f","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"\u5207\u6362\u5bfc\u822a\u680f","theme.docs.tagDocListPageTitle":"{nDocsTagged}\u300c{tagName}\u300d","theme.docs.tagDocListPageTitle.nDocsTagged":"{count} \u7bc7\u6587\u6863\u5e26\u6709\u6807\u7b7e","theme.docs.versionBadge.label":"\u7248\u672c\uff1a{versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\u6700\u65b0\u7248\u672c","theme.docs.versions.latestVersionSuggestionLabel":"\u6700\u65b0\u7684\u6587\u6863\u8bf7\u53c2\u9605 {latestVersionLink} ({versionLabel})\u3002","theme.docs.versions.unmaintainedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u7684\u6587\u6863\uff0c\u73b0\u5df2\u4e0d\u518d\u79ef\u6781\u7ef4\u62a4\u3002","theme.docs.versions.unreleasedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u5c1a\u672a\u53d1\u884c\u7684\u6587\u6863\u3002","theme.lastUpdated.atDate":"\u4e8e {date} ","theme.lastUpdated.byUser":"\u7531 {user} ","theme.lastUpdated.lastUpdatedAtBy":"\u6700\u540e{byUser}{atDate}\u66f4\u65b0","theme.navbar.mobileLanguageDropdown.label":"\u9009\u62e9\u8bed\u8a00","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 \u56de\u5230\u4e3b\u83dc\u5355","theme.navbar.mobileVersionsDropdown.label":"\u9009\u62e9\u7248\u672c","theme.tags.tagsListLabel":"\u6807\u7b7e\uff1a","theme.tags.tagsPageLink":"\u67e5\u770b\u6240\u6709\u6807\u7b7e","theme.tags.tagsPageTitle":"\u6807\u7b7e","theme.SearchBar.label":"\u641c\u7d22","theme.SearchBar.seeAll":"\u67e5\u770b\u5168\u90e8 {count} \u4e2a\u7ed3\u679c","theme.SearchModal.errorScreen.helpText":"\u4f60\u53ef\u80fd\u9700\u8981\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\u3002","theme.SearchModal.errorScreen.titleText":"\u65e0\u6cd5\u83b7\u53d6\u7ed3\u679c","theme.SearchModal.footer.closeKeyAriaLabel":"Esc \u952e","theme.SearchModal.footer.closeText":"\u5173\u95ed","theme.SearchModal.footer.navigateDownKeyAriaLabel":"\u5411\u4e0b\u952e","theme.SearchModal.footer.navigateText":"\u5bfc\u822a","theme.SearchModal.footer.navigateUpKeyAriaLabel":"\u5411\u4e0a\u952e","theme.SearchModal.footer.searchByText":"\u641c\u7d22\u63d0\u4f9b","theme.SearchModal.footer.selectKeyAriaLabel":"Enter \u952e","theme.SearchModal.footer.selectText":"\u9009\u4e2d","theme.SearchModal.noResultsScreen.noResultsText":"\u6ca1\u6709\u7ed3\u679c\uff1a","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"\u8bf7\u544a\u77e5\u6211\u4eec\u3002","theme.SearchModal.noResultsScreen.reportMissingResultsText":"\u8ba4\u4e3a\u8fd9\u4e2a\u67e5\u8be2\u5e94\u8be5\u6709\u7ed3\u679c\uff1f","theme.SearchModal.noResultsScreen.suggestedQueryText":"\u8bd5\u8bd5\u641c\u7d22","theme.SearchModal.placeholder":"\u641c\u7d22\u6587\u6863","theme.SearchModal.searchBox.cancelButtonText":"\u53d6\u6d88","theme.SearchModal.searchBox.resetButtonTitle":"\u6e05\u9664\u67e5\u8be2","theme.SearchModal.startScreen.favoriteSearchesTitle":"\u6536\u85cf","theme.SearchModal.startScreen.noRecentSearchesText":"\u6ca1\u6709\u6700\u8fd1\u641c\u7d22","theme.SearchModal.startScreen.recentSearchesTitle":"\u6700\u8fd1\u641c\u7d22","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"\u4ece\u6536\u85cf\u5217\u8868\u4e2d\u5220\u9664\u8fd9\u4e2a\u641c\u7d22","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"\u4ece\u5386\u53f2\u8bb0\u5f55\u4e2d\u5220\u9664\u8fd9\u4e2a\u641c\u7d22","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"\u4fdd\u5b58\u8fd9\u4e2a\u641c\u7d22","theme.SearchPage.algoliaLabel":"\u901a\u8fc7 Algolia \u641c\u7d22","theme.SearchPage.documentsFound.plurals":"\u627e\u5230 {count} \u4efd\u6587\u4ef6","theme.SearchPage.emptyResultsTitle":"\u5728\u6587\u6863\u4e2d\u641c\u7d22","theme.SearchPage.existingResultsTitle":"\u300c{query}\u300d\u7684\u641c\u7d22\u7ed3\u679c","theme.SearchPage.fetchingNewResults":"\u6b63\u5728\u83b7\u53d6\u65b0\u7684\u641c\u7d22\u7ed3\u679c...","theme.SearchPage.inputLabel":"\u641c\u7d22","theme.SearchPage.inputPlaceholder":"\u5728\u6b64\u8f93\u5165\u641c\u7d22\u5b57\u8bcd","theme.SearchPage.noResultsText":"\u672a\u627e\u5230\u4efb\u4f55\u7ed3\u679c","theme.IdealImageMessage.404error":"\u672a\u627e\u5230\u56fe\u7247","theme.IdealImageMessage.error":"\u51fa\u73b0\u9519\u8bef\uff0c\u70b9\u51fb\u91cd\u8bd5","theme.IdealImageMessage.load":"\u70b9\u51fb\u52a0\u8f7d\u56fe\u7247{sizeMessage}","theme.IdealImageMessage.loading":"\u52a0\u8f7d\u4e2d\u2026\u2026","theme.IdealImageMessage.offline":"\u4f60\u7684\u6d4f\u89c8\u5668\u5904\u4e8e\u79bb\u7ebf\u72b6\u6001\u3002\u56fe\u7247\u672a\u52a0\u8f7d"}')},6887:e=>{"use strict";e.exports=JSON.parse('{"/zh/search/-d52":{"__comp":"1a4e3797","__context":{"plugin":"59b068d1"}},"/zh/-94f":{"__comp":"1be78505","__context":{"plugin":"247783bb"},"versionMetadata":"935f2afb"},"/zh/-3c2":{"__comp":"17896441","content":"6e7e0dfd"},"/zh/category/contribute/-ace":{"__comp":"14eb3368","categoryGeneratedIndex":"1217ffab"},"/zh/category/faq/-97e":{"__comp":"14eb3368","categoryGeneratedIndex":"56369e62"},"/zh/category/getting-started/-bb2":{"__comp":"14eb3368","categoryGeneratedIndex":"a01c28fc"},"/zh/category/guides/-f96":{"__comp":"14eb3368","categoryGeneratedIndex":"a777e5e5"},"/zh/category/legacy-documentation/-5e9":{"__comp":"14eb3368","categoryGeneratedIndex":"a2ddc900"},"/zh/category/manual/-12a":{"__comp":"14eb3368","categoryGeneratedIndex":"41ecef38"},"/zh/category/release-notes/-d0c":{"__comp":"14eb3368","categoryGeneratedIndex":"f570bbeb"},"/zh/category/tutorial---basics/-faa":{"__comp":"14eb3368","categoryGeneratedIndex":"11f09efe"},"/zh/category/tutorial---extras/-3b0":{"__comp":"14eb3368","categoryGeneratedIndex":"9405f2e8"},"/zh/category/unraid-connect/-80d":{"__comp":"14eb3368","categoryGeneratedIndex":"779ec84f"},"/zh/category/unraid-os/-2b5":{"__comp":"14eb3368","categoryGeneratedIndex":"bf6429c6"},"/zh/category/zfs/-9e0":{"__comp":"14eb3368","categoryGeneratedIndex":"14e9ad4a"},"/zh/connect/about/-0b8":{"__comp":"17896441","content":"bd5544b1"},"/zh/connect/help/-b28":{"__comp":"17896441","content":"54fe4512"},"/zh/connect/remote-access/-17e":{"__comp":"17896441","content":"ba2ffba3"},"/zh/contribute-to-docs/intro/-87f":{"__comp":"17896441","content":"9c8e01a5"},"/zh/contribute-to-docs/tutorial-basics/congratulations/-5f0":{"__comp":"17896441","content":"06cd2fd6"},"/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/-cae":{"__comp":"17896441","content":"e62fd64a"},"/zh/contribute-to-docs/tutorial-basics/create-a-document/-4a9":{"__comp":"17896441","content":"73c1707a"},"/zh/contribute-to-docs/tutorial-basics/create-a-page/-8f0":{"__comp":"17896441","content":"6937eda1"},"/zh/contribute-to-docs/tutorial-basics/markdown-features/-66e":{"__comp":"17896441","content":"fd47d4b7"},"/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/-f46":{"__comp":"17896441","content":"0993abe5"},"/zh/contribute-to-docs/tutorial-extras/translate-your-site/-ef1":{"__comp":"17896441","content":"f568d666"},"/zh/legacy/Articles/dual-boot-unraid-and-windows/-19a":{"__comp":"17896441","content":"c5b893f4"},"/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/-3f7":{"__comp":"17896441","content":"69f90a2c"},"/zh/legacy/Articles/upgrading-to-unraid-6/-0d3":{"__comp":"17896441","content":"39304afb"},"/zh/legacy/FAQ/cache-disk/-a84":{"__comp":"17896441","content":"88a1b883"},"/zh/legacy/FAQ/check-disk-filesystems/-d60":{"__comp":"17896441","content":"5034631f"},"/zh/legacy/FAQ/check-harddrive-speed/-ed7":{"__comp":"17896441","content":"039cd775"},"/zh/legacy/FAQ/console/-9ba":{"__comp":"17896441","content":"2dd62328"},"/zh/legacy/FAQ/parity-swap-procedure/-29e":{"__comp":"17896441","content":"f2577e9f"},"/zh/legacy/FAQ/Parity/-3d8":{"__comp":"17896441","content":"54f4a7b0"},"/zh/legacy/FAQ/replacing-a-data-drive/-ef6":{"__comp":"17896441","content":"74287a25"},"/zh/legacy/FAQ/replacing-multiple-data-drives/-138":{"__comp":"17896441","content":"d441ea6d"},"/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/-2f4":{"__comp":"17896441","content":"6618ba01"},"/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/-ebf":{"__comp":"17896441","content":"036bad42"},"/zh/legacy/FAQ/shrink-array/-100":{"__comp":"17896441","content":"9d093beb"},"/zh/legacy/FAQ/terminal-access/-fb3":{"__comp":"17896441","content":"e624f8a6"},"/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/-e03":{"__comp":"17896441","content":"67a4e8b6"},"/zh/legacy/FAQ/transferring-files-within-the-unraid-server/-de2":{"__comp":"17896441","content":"38c3fa26"},"/zh/legacy/FAQ/understanding-smart-reports/-6f7":{"__comp":"17896441","content":"dec1eefe"},"/zh/legacy/FAQ/usb-flash-drive-preparation/-5e1":{"__comp":"17896441","content":"79722de7"},"/zh/unraid-os/faq/licensing-faq/-460":{"__comp":"17896441","content":"26113f5d"},"/zh/unraid-os/faq/os-faq/-b74":{"__comp":"17896441","content":"81b28c9f"},"/zh/unraid-os/faq/redeem-license-activation-code/-e32":{"__comp":"17896441","content":"073d1822"},"/zh/unraid-os/faq/unraid-account/-023":{"__comp":"17896441","content":"5565d3f9"},"/zh/unraid-os/guides/configuring-time-machine/-8f6":{"__comp":"17896441","content":"f9ab548b"},"/zh/unraid-os/guides/wol-setup-for-unraid/-ef2":{"__comp":"17896441","content":"0a18b2d8"},"/zh/unraid-os/manual/additional-settings/-315":{"__comp":"17896441","content":"1942e1e1"},"/zh/unraid-os/manual/applications/-938":{"__comp":"17896441","content":"7b378cd1"},"/zh/unraid-os/manual/changing-the-flash-device/-6a9":{"__comp":"17896441","content":"0ca4c500"},"/zh/unraid-os/manual/docker-management/-914":{"__comp":"17896441","content":"4caccc33"},"/zh/unraid-os/manual/getting-started/-731":{"__comp":"17896441","content":"b13723e0"},"/zh/unraid-os/manual/getting-started/manual-install-method/-d35":{"__comp":"17896441","content":"18ade0c5"},"/zh/unraid-os/manual/multi-language/-9e4":{"__comp":"17896441","content":"6b42df2b"},"/zh/unraid-os/manual/security/-0f9":{"__comp":"17896441","content":"277cf690"},"/zh/unraid-os/manual/security/data-encryption/-cee":{"__comp":"17896441","content":"fee3ac30"},"/zh/unraid-os/manual/security/flash-drive/-dff":{"__comp":"17896441","content":"10869db1"},"/zh/unraid-os/manual/security/good-practices/-b10":{"__comp":"17896441","content":"313b9001"},"/zh/unraid-os/manual/security/secure-webgui-ssl/-980":{"__comp":"17896441","content":"0a1bdeaa"},"/zh/unraid-os/manual/security/vpn/-727":{"__comp":"17896441","content":"1c36a847"},"/zh/unraid-os/manual/shares/-7d4":{"__comp":"17896441","content":"aed38285"},"/zh/unraid-os/manual/shares/create-a-share/-e95":{"__comp":"17896441","content":"8a89048a"},"/zh/unraid-os/manual/shares/delete-a-share/-5d9":{"__comp":"17896441","content":"9d23aec8"},"/zh/unraid-os/manual/shares/disk-shares/-951":{"__comp":"17896441","content":"5f60a020"},"/zh/unraid-os/manual/shares/network-access/-d7c":{"__comp":"17896441","content":"f7b0b541"},"/zh/unraid-os/manual/shares/user-shares/-20f":{"__comp":"17896441","content":"8944547a"},"/zh/unraid-os/manual/storage-management/-b58":{"__comp":"17896441","content":"55054ac6"},"/zh/unraid-os/manual/tools/-8d8":{"__comp":"17896441","content":"7c081f1b"},"/zh/unraid-os/manual/troubleshooting/-1e3":{"__comp":"17896441","content":"104dd0b4"},"/zh/unraid-os/manual/upgrade-instructions/-026":{"__comp":"17896441","content":"7436a388"},"/zh/unraid-os/manual/users/-ad7":{"__comp":"17896441","content":"40147886"},"/zh/unraid-os/manual/vm-management/-0c2":{"__comp":"17896441","content":"3d3d1f9d"},"/zh/unraid-os/manual/vm-support/-aac":{"__comp":"17896441","content":"88941ca4"},"/zh/unraid-os/manual/what-is-unraid/-b8d":{"__comp":"17896441","content":"f0844d9f"},"/zh/unraid-os/manual/zfs/placeholder/-a18":{"__comp":"17896441","content":"5df36282"},"/zh/unraid-os/release-notes/6.10.0/-10a":{"__comp":"17896441","content":"798531cc"},"/zh/unraid-os/release-notes/6.10.1/-ead":{"__comp":"17896441","content":"b3a9d7ab"},"/zh/unraid-os/release-notes/6.10.2/-054":{"__comp":"17896441","content":"caa9baff"},"/zh/unraid-os/release-notes/6.10.3/-0d8":{"__comp":"17896441","content":"54219b20"},"/zh/unraid-os/release-notes/6.11.0/-a74":{"__comp":"17896441","content":"096fb135"},"/zh/unraid-os/release-notes/6.11.1/-161":{"__comp":"17896441","content":"6b97f0f9"},"/zh/unraid-os/release-notes/6.11.2/-c9d":{"__comp":"17896441","content":"a0c90937"},"/zh/unraid-os/release-notes/6.11.3/-595":{"__comp":"17896441","content":"d31ea43a"},"/zh/unraid-os/release-notes/6.11.4/-3f8":{"__comp":"17896441","content":"c8335b6e"},"/zh/unraid-os/release-notes/6.11.5/-367":{"__comp":"17896441","content":"ae93aaeb"},"/zh/unraid-os/release-notes/6.12.0/-4f0":{"__comp":"17896441","content":"e1256ee6"},"/zh/unraid-os/release-notes/6.12.1/-184":{"__comp":"17896441","content":"98a2ad9f"},"/zh/unraid-os/release-notes/6.12.2/-cfa":{"__comp":"17896441","content":"0ba4e87b"},"/zh/unraid-os/release-notes/6.12.3/-607":{"__comp":"17896441","content":"7a2d53ea"},"/zh/unraid-os/release-notes/6.9.0/-9fb":{"__comp":"17896441","content":"06988216"},"/zh/unraid-os/release-notes/6.9.1/-a58":{"__comp":"17896441","content":"49332cbb"},"/zh/unraid-os/release-notes/6.9.2/-c95":{"__comp":"17896441","content":"6e6b2999"}}')}},e=>{e.O(0,[532],(()=>{return t=654,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/zh/assets/js/main.54b490a9.js.LICENSE.txt b/zh/assets/js/main.818d5412.js.LICENSE.txt similarity index 100% rename from zh/assets/js/main.54b490a9.js.LICENSE.txt rename to zh/assets/js/main.818d5412.js.LICENSE.txt diff --git a/zh/assets/js/runtime~main.0878d8ef.js b/zh/assets/js/runtime~main.0878d8ef.js new file mode 100644 index 000000000..322cbca66 --- /dev/null +++ b/zh/assets/js/runtime~main.0878d8ef.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,d,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=c,r.c=t,e=[],r.O=(a,f,d,b)=>{if(!f){var c=1/0;for(i=0;i<e.length;i++){f=e[i][0],d=e[i][1],b=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&b||c>=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b<c&&(c=b));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,d,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",559:"313b9001",563:"6618ba01",879:"d441ea6d",909:"b3a9d7ab",967:"0a1bdeaa",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1409:"41ecef38",1698:"49332cbb",1754:"9d23aec8",1770:"8a89048a",1791:"5df36282",1932:"aed38285",2121:"6e7e0dfd",2197:"935f2afb",2269:"54fe4512",2450:"56369e62",2454:"f7b0b541",2697:"f0844d9f",2811:"11f09efe",2922:"a2ddc900",2926:"54f4a7b0",3203:"67a4e8b6",3563:"10869db1",3659:"6e6b2999",3923:"6937eda1",3967:"4caccc33",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4482:"bf6429c6",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4787:"073d1822",4813:"26113f5d",4863:"5f60a020",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5289:"1c36a847",5352:"9405f2e8",5450:"8944547a",5832:"caa9baff",5833:"7a2d53ea",6047:"1217ffab",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6596:"dec1eefe",6617:"81b28c9f",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"fee3ac30",7415:"ae93aaeb",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7712:"a01c28fc",7748:"798531cc",7899:"a777e5e5",7918:"17896441",7920:"1a4e3797",8076:"f570bbeb",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8760:"779ec84f",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9799:"14e9ad4a",9817:"14eb3368",9821:"277cf690"}[e]||e)+"."+{53:"657518ee",322:"b866e951",335:"3b05236c",347:"49dae3ba",496:"736e4f17",559:"07647b6e",563:"f61b834a",879:"acfbfdb3",909:"f40575a6",967:"4351b9aa",1036:"5304e99f",1317:"afa4e387",1367:"40233086",1377:"9956150b",1409:"5c7ba79d",1698:"1dc9cfa7",1754:"8bf37886",1770:"8241feff",1791:"5734e7e9",1932:"8a87c0f9",2121:"fa16460f",2153:"6676c42e",2197:"b7c96576",2269:"41402536",2450:"4454a829",2454:"beb81f22",2697:"e045a212",2811:"29071f8d",2922:"f5ee29a8",2926:"a21c33e0",3203:"a781f73d",3563:"70506c93",3659:"45af7ea2",3923:"fb624d6c",3967:"893d9038",4077:"7c4b382f",4149:"0fc9f182",4248:"f946246d",4262:"18ce3b9a",4321:"ae642b32",4399:"13c119ca",4472:"f837f218",4482:"6132ea2c",4567:"e966e613",4579:"11787ee2",4618:"17c31215",4622:"61ed17e6",4688:"94c66029",4710:"093c0b51",4787:"cec1e101",4813:"1e37ce86",4863:"c559cc54",5069:"53e7e977",5078:"b2350993",5236:"fc47bb28",5275:"881866f5",5289:"a38a32f2",5352:"0ba3b910",5450:"f5271396",5832:"3b9ec64e",5833:"0586ad1a",6047:"5d452b3d",6279:"0505765c",6299:"1c48131b",6305:"c22015f8",6385:"9bf402a8",6461:"b9ede748",6596:"bd3e3266",6617:"ee6abbb4",6945:"e6ca558a",7044:"84bfb8dd",7054:"a0a2790c",7124:"6d9e8db6",7317:"a21b6a68",7328:"dc3e06e8",7415:"1632f6e4",7537:"d4a0c2c6",7570:"dbb8ec99",7603:"4f596ff2",7712:"1778e26a",7748:"0ebb9bf0",7899:"91d65d88",7918:"63195e72",7920:"2a186628",8076:"fe5db2f5",8078:"d51ac59d",8145:"bb6a843f",8298:"a46e804d",8760:"62037646",8868:"5cb4d697",8882:"c6f931bf",8894:"26ee7892",8925:"0bffba4f",9114:"8717cdef",9185:"5688398f",9334:"dadfb5a6",9347:"06f5c234",9401:"b118dd07",9514:"fe92450b",9554:"90c5540b",9724:"62312122",9725:"a9e77c89",9799:"2e5556b2",9817:"64ec88ed",9821:"325851d5"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},b="docs:",r.l=(e,a,f,c)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+f),t.src=e),d[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var b=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/zh/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","313b9001":"559","6618ba01":"563",d441ea6d:"879",b3a9d7ab:"909","0a1bdeaa":"967","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","41ecef38":"1409","49332cbb":"1698","9d23aec8":"1754","8a89048a":"1770","5df36282":"1791",aed38285:"1932","6e7e0dfd":"2121","935f2afb":"2197","54fe4512":"2269","56369e62":"2450",f7b0b541:"2454",f0844d9f:"2697","11f09efe":"2811",a2ddc900:"2922","54f4a7b0":"2926","67a4e8b6":"3203","10869db1":"3563","6e6b2999":"3659","6937eda1":"3923","4caccc33":"3967","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",bf6429c6:"4482",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","073d1822":"4787","26113f5d":"4813","5f60a020":"4863","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","1c36a847":"5289","9405f2e8":"5352","8944547a":"5450",caa9baff:"5832","7a2d53ea":"5833","1217ffab":"6047","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461",dec1eefe:"6596","81b28c9f":"6617","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",fee3ac30:"7328",ae93aaeb:"7415","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603",a01c28fc:"7712","798531cc":"7748",a777e5e5:"7899","1a4e3797":"7920",f570bbeb:"8076","74287a25":"8078","2dd62328":"8145","39304afb":"8298","779ec84f":"8760","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14e9ad4a":"9799","14eb3368":"9817","277cf690":"9821"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>d=e[a]=[f,b]));f.push(d[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,(f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var b=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,b,c=f[0],t=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n<c.length;n++)b=c[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},f=self.webpackChunkdocs=self.webpackChunkdocs||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/zh/assets/js/runtime~main.cce2c79a.js b/zh/assets/js/runtime~main.cce2c79a.js deleted file mode 100644 index 6bfcc6749..000000000 --- a/zh/assets/js/runtime~main.cce2c79a.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,f,b,d,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=c,r.c=t,e=[],r.O=(a,f,b,d)=>{if(!f){var c=1/0;for(i=0;i<e.length;i++){f=e[i][0],b=e[i][1],d=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&d||c>=d)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,d<c&&(c=d));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,b,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(d,c),d},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"18ade0c5",79:"90126b70",322:"06988216",335:"bd5544b1",347:"c8335b6e",496:"5565d3f9",563:"6618ba01",879:"d441ea6d",909:"b3a9d7ab",1036:"88a1b883",1317:"1942e1e1",1367:"7b378cd1",1377:"0a18b2d8",1409:"41ecef38",1698:"49332cbb",1791:"5df36282",2121:"6e7e0dfd",2197:"935f2afb",2269:"54fe4512",2450:"56369e62",2697:"f0844d9f",2811:"11f09efe",2922:"a2ddc900",2926:"54f4a7b0",3203:"67a4e8b6",3659:"6e6b2999",3923:"6937eda1",3967:"4caccc33",4077:"38c3fa26",4149:"f568d666",4262:"104dd0b4",4321:"ba2ffba3",4399:"9c8e01a5",4472:"6b97f0f9",4482:"bf6429c6",4567:"b13723e0",4579:"98a2ad9f",4618:"0ca4c500",4622:"f9ab548b",4688:"fd47d4b7",4710:"7436a388",4787:"073d1822",4813:"26113f5d",5069:"7c081f1b",5078:"036bad42",5236:"54219b20",5275:"a0c90937",5352:"9405f2e8",5832:"caa9baff",5833:"7a2d53ea",6047:"1217ffab",6279:"06cd2fd6",6299:"096fb135",6305:"69f90a2c",6385:"59b068d1",6461:"3d3d1f9d",6596:"dec1eefe",6617:"81b28c9f",7044:"6b42df2b",7054:"5034631f",7124:"9d093beb",7317:"73c1707a",7328:"a78d85c7",7415:"ae93aaeb",7537:"55054ac6",7570:"e62fd64a",7603:"c5b893f4",7712:"a01c28fc",7748:"798531cc",7899:"a777e5e5",7918:"17896441",7920:"1a4e3797",8076:"f570bbeb",8078:"74287a25",8145:"2dd62328",8298:"39304afb",8760:"779ec84f",8868:"0ba4e87b",8882:"d31ea43a",8894:"f2577e9f",8925:"e1256ee6",9114:"039cd775",9185:"40147886",9334:"247783bb",9347:"e624f8a6",9401:"88941ca4",9514:"1be78505",9554:"0993abe5",9725:"79722de7",9799:"14e9ad4a",9817:"14eb3368"}[e]||e)+"."+{53:"6468a34d",79:"0b49abed",322:"b866e951",335:"3b05236c",347:"49dae3ba",496:"736e4f17",563:"f61b834a",879:"acfbfdb3",909:"f40575a6",1036:"5304e99f",1317:"d09eaa07",1367:"ba2d30da",1377:"9956150b",1409:"24e0c714",1698:"1dc9cfa7",1791:"5734e7e9",2121:"fa16460f",2153:"6676c42e",2197:"7d1fb1bb",2269:"41402536",2450:"4454a829",2697:"58191536",2811:"29071f8d",2922:"f5ee29a8",2926:"a21c33e0",3203:"a781f73d",3659:"45af7ea2",3923:"fb624d6c",3967:"80b208b9",4077:"7c4b382f",4149:"0fc9f182",4248:"f946246d",4262:"f0afbec1",4321:"8cafea63",4399:"13c119ca",4472:"f837f218",4482:"6132ea2c",4567:"ec19028c",4579:"11787ee2",4618:"17c31215",4622:"61ed17e6",4688:"94c66029",4710:"093c0b51",4787:"cec1e101",4813:"fb48086a",5069:"0e8babec",5078:"b2350993",5236:"fc47bb28",5275:"881866f5",5352:"0ba3b910",5832:"3b9ec64e",5833:"0586ad1a",6047:"5d452b3d",6279:"0505765c",6299:"1c48131b",6305:"c22015f8",6385:"9bf402a8",6461:"b9ede748",6596:"bd3e3266",6617:"f94af7ec",6945:"e6ca558a",7044:"3f0e98f5",7054:"a0a2790c",7124:"6d9e8db6",7317:"a21b6a68",7328:"4986ff98",7415:"1632f6e4",7537:"84d1245d",7570:"dbb8ec99",7603:"4f596ff2",7712:"1778e26a",7748:"2b2bda34",7899:"91d65d88",7918:"5d44835b",7920:"2a186628",8076:"fe5db2f5",8078:"d51ac59d",8145:"bb6a843f",8298:"a46e804d",8760:"62037646",8868:"5cb4d697",8882:"c6f931bf",8894:"26ee7892",8925:"0bffba4f",9114:"8717cdef",9185:"5688398f",9334:"dadfb5a6",9347:"06f5c234",9401:"b118dd07",9514:"010a8141",9554:"90c5540b",9724:"62312122",9725:"310dcd27",9799:"2e5556b2",9817:"3f60616a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},d="docs:",r.l=(e,a,f,c)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+f),t.src=e),b[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var d=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/zh/",r.gca=function(e){return e={17896441:"7918",40147886:"9185","18ade0c5":"53","90126b70":"79","06988216":"322",bd5544b1:"335",c8335b6e:"347","5565d3f9":"496","6618ba01":"563",d441ea6d:"879",b3a9d7ab:"909","88a1b883":"1036","1942e1e1":"1317","7b378cd1":"1367","0a18b2d8":"1377","41ecef38":"1409","49332cbb":"1698","5df36282":"1791","6e7e0dfd":"2121","935f2afb":"2197","54fe4512":"2269","56369e62":"2450",f0844d9f:"2697","11f09efe":"2811",a2ddc900:"2922","54f4a7b0":"2926","67a4e8b6":"3203","6e6b2999":"3659","6937eda1":"3923","4caccc33":"3967","38c3fa26":"4077",f568d666:"4149","104dd0b4":"4262",ba2ffba3:"4321","9c8e01a5":"4399","6b97f0f9":"4472",bf6429c6:"4482",b13723e0:"4567","98a2ad9f":"4579","0ca4c500":"4618",f9ab548b:"4622",fd47d4b7:"4688","7436a388":"4710","073d1822":"4787","26113f5d":"4813","7c081f1b":"5069","036bad42":"5078","54219b20":"5236",a0c90937:"5275","9405f2e8":"5352",caa9baff:"5832","7a2d53ea":"5833","1217ffab":"6047","06cd2fd6":"6279","096fb135":"6299","69f90a2c":"6305","59b068d1":"6385","3d3d1f9d":"6461",dec1eefe:"6596","81b28c9f":"6617","6b42df2b":"7044","5034631f":"7054","9d093beb":"7124","73c1707a":"7317",a78d85c7:"7328",ae93aaeb:"7415","55054ac6":"7537",e62fd64a:"7570",c5b893f4:"7603",a01c28fc:"7712","798531cc":"7748",a777e5e5:"7899","1a4e3797":"7920",f570bbeb:"8076","74287a25":"8078","2dd62328":"8145","39304afb":"8298","779ec84f":"8760","0ba4e87b":"8868",d31ea43a:"8882",f2577e9f:"8894",e1256ee6:"8925","039cd775":"9114","247783bb":"9334",e624f8a6:"9347","88941ca4":"9401","1be78505":"9514","0993abe5":"9554","79722de7":"9725","14e9ad4a":"9799","14eb3368":"9817"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)f.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((f,d)=>b=e[a]=[f,d]));f.push(b[2]=d);var c=r.p+r.u(a),t=new Error;r.l(c,(f=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var d=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+c+")",t.name="ChunkLoadError",t.type=d,t.request=c,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var b,d,c=f[0],t=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(f);n<c.length;n++)d=c[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},f=self.webpackChunkdocs=self.webpackChunkdocs||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/zh/category/contribute/index.html b/zh/category/contribute/index.html index b7b0edb48..be62e1a82 100644 --- a/zh/category/contribute/index.html +++ b/zh/category/contribute/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/contribute/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contribute</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Contribute</h1><p>How to contribute to the Unraid Docs</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/intro/"><h2 class="text--truncate cardTitle_rnsV" title="Contributing to Unraid Documentation">📄️<!-- --> <!-- -->Contributing to Unraid Documentation</h2><p class="text--truncate cardDescription_PWke" title="Contribute to a Docs Page that already Exists">Contribute to a Docs Page that already Exists</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/tutorial---basics/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Basics">🗃️<!-- --> <!-- -->Tutorial - Basics</h2><p class="text--truncate cardDescription_PWke" title="5 个项目">5 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/tutorial---extras/"><h2 class="text--truncate cardTitle_rnsV" title="Tutorial - Extras">🗃️<!-- --> <!-- -->Tutorial - Extras</h2><p class="text--truncate cardDescription_PWke" title="2 个项目">2 个项目</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/faq/index.html b/zh/category/faq/index.html index 23cfea95b..8959b3813 100644 --- a/zh/category/faq/index.html +++ b/zh/category/faq/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/faq/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/faq/licensing-faq/">Licensing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/faq/os-faq/">OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/faq/redeem-license-activation-code/">购买并收到激活码后如何兑换您的激活码</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/faq/unraid-account/">Unraid Account</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">FAQ</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">FAQ</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/faq/licensing-faq/"><h2 class="text--truncate cardTitle_rnsV" title="Licensing">📄️<!-- --> <!-- -->Licensing</h2><p class="text--truncate cardDescription_PWke" title="Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/faq/os-faq/"><h2 class="text--truncate cardTitle_rnsV" title="OS">📄️<!-- --> <!-- -->OS</h2><p class="text--truncate cardDescription_PWke" title="I Need Help with a Build / System Configuration. Where do I go?">I Need Help with a Build / System Configuration. Where do I go?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/faq/redeem-license-activation-code/"><h2 class="text--truncate cardTitle_rnsV" title="购买并收到激活码后如何兑换您的激活码">📄️<!-- --> <!-- -->购买并收到激活码后如何兑换您的激活码</h2><p class="text--truncate cardDescription_PWke" title="首先,按照 入门指南 设置好">首先,按照 入门指南 设置好</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/faq/unraid-account/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Account">📄️<!-- --> <!-- -->Unraid Account</h2><p class="text--truncate cardDescription_PWke" title="What is an Unraid.net Account?">What is an Unraid.net Account?</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/release-notes/6.9.2/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">6.9.2</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Licensing</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/getting-started/index.html b/zh/category/getting-started/index.html index 712e9a5a8..3b42859fc 100644 --- a/zh/category/getting-started/index.html +++ b/zh/category/getting-started/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">Getting Started</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">📄️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="In this guide, we will be covering how to prepare your flash device,">In this guide, we will be covering how to prepare your flash device,</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/getting-started/manual-install-method/"><h2 class="text--truncate cardTitle_rnsV" title="Manual Install Method">📄️<!-- --> <!-- -->Manual Install Method</h2><p class="text--truncate cardDescription_PWke" title="If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,">If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected,</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Changing the Flash Device</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Getting Started</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/guides/index.html b/zh/category/guides/index.html index 0a22ea637..7022c21fc 100644 --- a/zh/category/guides/index.html +++ b/zh/category/guides/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/guides/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Guides</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Guides</h1><p>Unraid OS Guides</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/guides/configuring-time-machine/"><h2 class="text--truncate cardTitle_rnsV" title="Apple Time Machine">📄️<!-- --> <!-- -->Apple Time Machine</h2><p class="text--truncate cardDescription_PWke" title="Guide: Setting up a Time Machine Share on your Unraid Server">Guide: Setting up a Time Machine Share on your Unraid Server</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/guides/wol-setup-for-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="How To Setup Wake On LAN (WOL) for UNRAID">📄️<!-- --> <!-- -->How To Setup Wake On LAN (WOL) for UNRAID</h2><p class="text--truncate cardDescription_PWke" title="(assuming onboard NIC and WOL activated in motherboard's BIOS)">(assuming onboard NIC and WOL activated in motherboard's BIOS)</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Unraid Account</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Apple Time Machine</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/legacy-documentation/index.html b/zh/category/legacy-documentation/index.html index 11c8e3249..497accebe 100644 --- a/zh/category/legacy-documentation/index.html +++ b/zh/category/legacy-documentation/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/legacy-documentation/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/zh/legacy/Articles/dual-boot-unraid-and-windows/">Articles</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/zh/legacy/FAQ/Parity/">FAQ</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Legacy Documentation</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Legacy Documentation</h1><p>Unraid OS Documentation ported from legacy.wiki.unraid.net</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/legacy/Articles/dual-boot-unraid-and-windows/"><h2 class="text--truncate cardTitle_rnsV" title="Articles">🗃️<!-- --> <!-- -->Articles</h2><p class="text--truncate cardDescription_PWke" title="3 个项目">3 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/legacy/FAQ/Parity/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="16 个项目">16 个项目</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/connect/remote-access/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Remote Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/manual/index.html b/zh/category/manual/index.html index dbf665828..2ec9280ef 100644 --- a/zh/category/manual/index.html +++ b/zh/category/manual/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">📄️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="Once you have assigned some devices to Unraid and started the array, you">Once you have assigned some devices to Unraid and started the array, you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 个项目">2 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">📄️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="This section covers various security-related aspects of Unraid">This section covers various security-related aspects of Unraid</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 个项目">1 个项目</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/what-is-unraid/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Overview</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/manual/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Manual</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/shares/"><h2 class="text--truncate cardTitle_rnsV" title="Shares">🗃️<!-- --> <!-- -->Shares</h2><p class="text--truncate cardDescription_PWke" title="5 个项目">5 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/what-is-unraid/"><h2 class="text--truncate cardTitle_rnsV" title="Overview">📄️<!-- --> <!-- -->Overview</h2><p class="text--truncate cardDescription_PWke" title="Unraid® is an embedded operating system that is designed to provide you">Unraid® is an embedded operating system that is designed to provide you</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/storage-management/"><h2 class="text--truncate cardTitle_rnsV" title="Storage Management">📄️<!-- --> <!-- -->Storage Management</h2><p class="text--truncate cardDescription_PWke" title="To assign devices to">To assign devices to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/docker-management/"><h2 class="text--truncate cardTitle_rnsV" title="Docker Management">📄️<!-- --> <!-- -->Docker Management</h2><p class="text--truncate cardDescription_PWke" title="Docker is a technology that allows users to provide each application">Docker is a technology that allows users to provide each application</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/vm-support/"><h2 class="text--truncate cardTitle_rnsV" title="VM Support">📄️<!-- --> <!-- -->VM Support</h2><p class="text--truncate cardDescription_PWke" title="Unraid 6 currently supports the virtualization of nearly any 64-bit">Unraid 6 currently supports the virtualization of nearly any 64-bit</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/vm-management/"><h2 class="text--truncate cardTitle_rnsV" title="Managing VMs">📄️<!-- --> <!-- -->Managing VMs</h2><p class="text--truncate cardDescription_PWke" title="Overview">Overview</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/applications/"><h2 class="text--truncate cardTitle_rnsV" title="Community Applications">📄️<!-- --> <!-- -->Community Applications</h2><p class="text--truncate cardDescription_PWke" title="This section discusses running applications on an Unraid server or">This section discusses running applications on an Unraid server or</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/security/"><h2 class="text--truncate cardTitle_rnsV" title="Security">🗃️<!-- --> <!-- -->Security</h2><p class="text--truncate cardDescription_PWke" title="5 个项目">5 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/multi-language/"><h2 class="text--truncate cardTitle_rnsV" title="Multi-Language Support">📄️<!-- --> <!-- -->Multi-Language Support</h2><p class="text--truncate cardDescription_PWke" title="Introduction">Introduction</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/troubleshooting/"><h2 class="text--truncate cardTitle_rnsV" title="Troubleshooting">📄️<!-- --> <!-- -->Troubleshooting</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/additional-settings/"><h2 class="text--truncate cardTitle_rnsV" title="Additional Settings">📄️<!-- --> <!-- -->Additional Settings</h2><p class="text--truncate cardDescription_PWke" title="While Unraid is configured to work automatically, you may wish to">While Unraid is configured to work automatically, you may wish to</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/changing-the-flash-device/"><h2 class="text--truncate cardTitle_rnsV" title="Changing the Flash Device">📄️<!-- --> <!-- -->Changing the Flash Device</h2><p class="text--truncate cardDescription_PWke" title="There are two ways to swap out your USB flash device. If you are using a">There are two ways to swap out your USB flash device. If you are using a</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/getting-started/"><h2 class="text--truncate cardTitle_rnsV" title="Getting Started">🗃️<!-- --> <!-- -->Getting Started</h2><p class="text--truncate cardDescription_PWke" title="2 个项目">2 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/tools/"><h2 class="text--truncate cardTitle_rnsV" title="Tools">📄️<!-- --> <!-- -->Tools</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/upgrade-instructions/"><h2 class="text--truncate cardTitle_rnsV" title="Upgrading Unraid">📄️<!-- --> <!-- -->Upgrading Unraid</h2><p class="text--truncate cardDescription_PWke" title="Prerequisites">Prerequisites</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/users/"><h2 class="text--truncate cardTitle_rnsV" title="Users">📄️<!-- --> <!-- -->Users</h2><p class="text--truncate cardDescription_PWke" title="THIS SECTION IS STILL UNDER CONSTRUCTION">THIS SECTION IS STILL UNDER CONSTRUCTION</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/zfs/"><h2 class="text--truncate cardTitle_rnsV" title="ZFS">🗃️<!-- --> <!-- -->ZFS</h2><p class="text--truncate cardDescription_PWke" title="1 个项目">1 个项目</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Shares</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/release-notes/index.html b/zh/category/release-notes/index.html index a331beda5..ef675e079 100644 --- a/zh/category/release-notes/index.html +++ b/zh/category/release-notes/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/release-notes/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="true" tabindex="0" href="/zh/unraid-os/release-notes/6.12.0/">6.12</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/release-notes/6.12.0/">6.12.0</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/release-notes/6.12.1/">6.12.1</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/release-notes/6.12.2/">6.12.2</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/release-notes/6.12.3/">6.12.3</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/zh/unraid-os/release-notes/6.11.0/">6.11</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/zh/unraid-os/release-notes/6.10.0/">6.10</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/zh/unraid-os/release-notes/6.9.0/">6.9</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Release Notes</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Release Notes</h1><p>Unraid Release Notes</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/release-notes/6.12.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.12">🗃️<!-- --> <!-- -->6.12</h2><p class="text--truncate cardDescription_PWke" title="4 个项目">4 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/release-notes/6.11.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.11">🗃️<!-- --> <!-- -->6.11</h2><p class="text--truncate cardDescription_PWke" title="6 个项目">6 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/release-notes/6.10.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.10">🗃️<!-- --> <!-- -->6.10</h2><p class="text--truncate cardDescription_PWke" title="4 个项目">4 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/release-notes/6.9.0/"><h2 class="text--truncate cardTitle_rnsV" title="6.9">🗃️<!-- --> <!-- -->6.9</h2><p class="text--truncate cardDescription_PWke" title="3 个项目">3 个项目</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/unraid-os/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Unraid OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/release-notes/6.12.0/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Version 6.12.0 2023-06-14</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/tutorial---basics/index.html b/zh/category/tutorial---basics/index.html index 079f36b19..b08bad44e 100644 --- a/zh/category/tutorial---basics/index.html +++ b/zh/category/tutorial---basics/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---basics/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Basics</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Basics</h1><p>5 minutes to learn the most important Docusaurus concepts.</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Page">📄️<!-- --> <!-- -->Create a Page</h2><p class="text--truncate cardDescription_PWke" title="Add Markdown or React files to src/pages to create a standalone page:">Add Markdown or React files to src/pages to create a standalone page:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Document">📄️<!-- --> <!-- -->Create a Document</h2><p class="text--truncate cardDescription_PWke" title="Documents are groups of pages connected through:">Documents are groups of pages connected through:</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/"><h2 class="text--truncate cardTitle_rnsV" title="Create a Blog Post">📄️<!-- --> <!-- -->Create a Blog Post</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...">Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/"><h2 class="text--truncate cardTitle_rnsV" title="Markdown Features">📄️<!-- --> <!-- -->Markdown Features</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus supports Markdown and a few additional features.">Docusaurus supports Markdown and a few additional features.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/tutorial-basics/congratulations/"><h2 class="text--truncate cardTitle_rnsV" title="Congratulations">📄️<!-- --> <!-- -->Congratulations</h2><p class="text--truncate cardDescription_PWke" title="You have just learned the basics of Docusaurus and made some changes to the initial template.">You have just learned the basics of Docusaurus and made some changes to the initial template.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/contribute-to-docs/intro/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Contributing to Unraid Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Create a Page</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/tutorial---extras/index.html b/zh/category/tutorial---extras/index.html index 9416fea0e..6cc31b135 100644 --- a/zh/category/tutorial---extras/index.html +++ b/zh/category/tutorial---extras/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/tutorial---extras/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Tutorial - Extras</span><meta itemprop="position" content="2"></li></ul></nav><header><h1 class="title_kItE">Tutorial - Extras</h1></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/"><h2 class="text--truncate cardTitle_rnsV" title="Manage Docs Versions">📄️<!-- --> <!-- -->Manage Docs Versions</h2><p class="text--truncate cardDescription_PWke" title="Docusaurus can manage multiple versions of your docs.">Docusaurus can manage multiple versions of your docs.</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/"><h2 class="text--truncate cardTitle_rnsV" title="Translate your site">📄️<!-- --> <!-- -->Translate your site</h2><p class="text--truncate cardDescription_PWke" title="Let's translate docs/intro.md to French.">Let's translate docs/intro.md to French.</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Congratulations</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/unraid-connect/index.html b/zh/category/unraid-connect/index.html index b8120fd04..01bda3025 100644 --- a/zh/category/unraid-connect/index.html +++ b/zh/category/unraid-connect/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-connect/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid Connect</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid Connect</h1><p>Unraid Connect Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/connect/about/"><h2 class="text--truncate cardTitle_rnsV" title="About Unraid Connect">📄️<!-- --> <!-- -->About Unraid Connect</h2><p class="text--truncate cardDescription_PWke" title="What is Unraid Connect?">What is Unraid Connect?</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/connect/help/"><h2 class="text--truncate cardTitle_rnsV" title="Unraid Connect Help">📄️<!-- --> <!-- -->Unraid Connect Help</h2><p class="text--truncate cardDescription_PWke" title="How to Install">How to Install</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/connect/remote-access/"><h2 class="text--truncate cardTitle_rnsV" title="Remote Access">📄️<!-- --> <!-- -->Remote Access</h2><p class="text--truncate cardDescription_PWke" title="The Remote Access feature">The Remote Access feature</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">About</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/connect/about/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">About Unraid Connect</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/unraid-os/index.html b/zh/category/unraid-os/index.html index 90bdc8577..6dc0c8374 100644 --- a/zh/category/unraid-os/index.html +++ b/zh/category/unraid-os/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/unraid-os/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Unraid OS</span><meta itemprop="position" content="1"></li></ul></nav><header><h1 class="title_kItE">Unraid OS</h1><p>Unraid OS Documentation</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/release-notes/"><h2 class="text--truncate cardTitle_rnsV" title="Release Notes">🗃️<!-- --> <!-- -->Release Notes</h2><p class="text--truncate cardDescription_PWke" title="4 个项目">4 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/faq/"><h2 class="text--truncate cardTitle_rnsV" title="FAQ">🗃️<!-- --> <!-- -->FAQ</h2><p class="text--truncate cardDescription_PWke" title="4 个项目">4 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/guides/"><h2 class="text--truncate cardTitle_rnsV" title="Guides">🗃️<!-- --> <!-- -->Guides</h2><p class="text--truncate cardDescription_PWke" title="2 个项目">2 个项目</p></a></article><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/category/manual/"><h2 class="text--truncate cardTitle_rnsV" title="Manual">🗃️<!-- --> <!-- -->Manual</h2><p class="text--truncate cardDescription_PWke" title="17 个项目">17 个项目</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Home</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/release-notes/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Release Notes</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/category/zfs/index.html b/zh/category/zfs/index.html index c1813f718..cd8f7476e 100644 --- a/zh/category/zfs/index.html +++ b/zh/category/zfs/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/users/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/category/zfs/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible menu__list-item-collapsible--active"><a class="menu__link menu__link--sublist menu__link--active" aria-current="page" aria-expanded="true" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/zfs/placeholder/">About</a></li></ul></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="generatedIndexPage_vN6x"><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">ZFS</span><meta itemprop="position" content="3"></li></ul></nav><header><h1 class="title_kItE">ZFS</h1><p>Configuring and Using ZFS in Unraid</p></header><article class="margin-top--lg"><section class="row list_eTzJ"><article class="col col--6 margin-bottom--lg"><a class="card padding--lg cardContainer_fWXF" href="/zh/unraid-os/manual/zfs/placeholder/"><h2 class="text--truncate cardTitle_rnsV" title="About">📄️<!-- --> <!-- -->About</h2><p class="text--truncate cardDescription_PWke" title="Please add guides on how to use and configure ZFS in this subfolder">Please add guides on how to use and configure ZFS in this subfolder</p></a></article></section></article><footer class="margin-top--lg"><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/users/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Users</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/zfs/placeholder/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">About</div></a></nav></footer></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/connect/about/index.html b/zh/connect/about/index.html index d0b09349f..c8a83eb62 100644 --- a/zh/connect/about/index.html +++ b/zh/connect/about/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -22,7 +22,7 @@ Unraid Server with a suite of new features including Dynamic Remote Access, Server Deep Linking, Server management from the Connect UI, Online flash backups, Real-time monitoring, and much more!</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="launch-unraid-connect"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer"><strong>Launch Unraid Connect</strong></a><a href="#launch-unraid-connect" class="hash-link" aria-label="launch-unraid-connect的直接链接" title="launch-unraid-connect的直接链接">​</a></h2></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/about.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/unraid-connect/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/connect/help/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Unraid Connect Help</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-unraid-connect" class="table-of-contents__link toc-highlight"><strong>What is Unraid Connect?</strong></a></li><li><a href="#launch-unraid-connect" class="table-of-contents__link toc-highlight"><strong>Launch Unraid Connect</strong></a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/connect/help/index.html b/zh/connect/help/index.html index 5310c6b27..f5e02b321 100644 --- a/zh/connect/help/index.html +++ b/zh/connect/help/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -152,7 +152,7 @@ UPC please open a terminal window and type:</p><p><code>unraid-api restart</code></p><p>If you have other Unraid Connect Support related questions, please see our <a href="https://forums.unraid.net/" target="_blank" rel="noopener noreferrer">Unraid Connect user forum</a> or <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">contact us</a> to open a support ticket.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/help.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/connect/about/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">About Unraid Connect</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/connect/remote-access/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Remote Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-to-install" class="table-of-contents__link toc-highlight"><strong>How to Install</strong></a></li><li><a href="#unraid-connect-dashboard" class="table-of-contents__link toc-highlight"><strong>Unraid Connect Dashboard</strong></a><ul><li><a href="#manage-your-server-from-within-the-connect-ui" class="table-of-contents__link toc-highlight"><strong>Manage Your Server From Within the Connect UI</strong></a></li><li><a href="#a-note-regarding-dns-rebinding-protection" class="table-of-contents__link toc-highlight">A note regarding DNS Rebinding Protection</a></li><li><a href="#how-to-access-your-server-when-dns-is-down" class="table-of-contents__link toc-highlight">How to access your server when DNS is down</a></li><li><a href="#how-to-disable-ssl-for-local-access" class="table-of-contents__link toc-highlight">How to disable SSL for local access</a></li></ul></li><li><a href="#automated-flash-backup" class="table-of-contents__link toc-highlight"><strong>Automated Flash Backup</strong></a><ul><li><a href="#enabling-flash-backup-optional" class="table-of-contents__link toc-highlight">Enabling Flash Backup (optional)</a></li><li><a href="#restoring-flash-backup" class="table-of-contents__link toc-highlight">Restoring Flash Backup</a></li></ul></li><li><a href="#server-deep-linking" class="table-of-contents__link toc-highlight"><strong>Server Deep Linking</strong></a></li><li><a href="#customizable-dashboard-server-banner-image-and-themes" class="table-of-contents__link toc-highlight"><strong>Customizable Dashboard, Server Banner Image and Themes</strong></a></li><li><a href="#license-management" class="table-of-contents__link toc-highlight"><strong>License Management</strong></a></li><li><a href="#language-localization" class="table-of-contents__link toc-highlight"><strong>Language Localization</strong></a></li><li><a href="#signing-out" class="table-of-contents__link toc-highlight">Signing Out</a></li><li><a href="#uninstalling-the-plugin" class="table-of-contents__link toc-highlight">Uninstalling the plugin</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a><ul><li><a href="#data-we-store" class="table-of-contents__link toc-highlight">Data We Store</a></li><li><a href="#flash-backups-are-not-encrypted" class="table-of-contents__link toc-highlight">Flash Backups are Not Encrypted</a></li><li><a href="#sensitive-data" class="table-of-contents__link toc-highlight">Sensitive Data</a></li></ul></li><li><a href="#connect-troubleshooting" class="table-of-contents__link toc-highlight">Connect Troubleshooting</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/connect/remote-access/index.html b/zh/connect/remote-access/index.html index dc130907c..59b7fbb6c 100644 --- a/zh/connect/remote-access/index.html +++ b/zh/connect/remote-access/index.html @@ -9,16 +9,16 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/connect/remote-access/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/connect/about/">About Unraid Connect</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/connect/help/">Unraid Connect Help</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/connect/remote-access/">Remote Access</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-connect/"><span itemprop="name">Unraid Connect</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Remote Access</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Remote Access</h1><p><img loading="lazy" src="/zh/assets/images/Enabling_remote_access-5be7d0c842caddb8bc4e74eaf60e9549.png" width="812" height="283" class="img_ev3q"></p><p>The Remote Access feature allows you to access your Unraid webgui from the Internet. If you need access to Docker containers, network drives, or other devices on your -network, you'll want to <a href="/zh/unraid-os/manual/security/#vpn">setup a +network, you'll want to <a href="/zh/unraid-os/manual/security.md/#vpn">setup a VPN</a> instead.</p><p><strong>Note: Before enabling remote access, consider your root password. Is it sufficiently complex? Update your root password on the Users page.</strong></p><p>Also note: <strong>Remote Access is an optional feature</strong>, and is not required to use the rest of Unraid Connect.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="remote-access---initial-setup">Remote Access - <strong>Initial Setup</strong><a href="#remote-access---initial-setup" class="hash-link" aria-label="remote-access---initial-setup的直接链接" title="remote-access---initial-setup的直接链接">​</a></h2><ol><li>From Unraid webGUI Navigate to <strong>Settings</strong> → <strong>Management Access</strong></li><li>Note the <strong>HTTPS port</strong>, it defaults to port 443. If you have Docker @@ -81,7 +81,7 @@ Internet connection drops you will likely lose access to your server's webgui. See <a href="/zh/connect/help/#how-to-access-your-server-when-dns-is-down">How to access your server when DNS is down</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/connect/remote-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/connect/help/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Unraid Connect Help</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/legacy-documentation/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Legacy Documentation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#remote-access---initial-setup" class="table-of-contents__link toc-highlight">Remote Access - <strong>Initial Setup</strong></a><ul><li><a href="#remote-access---choose-remote-access-type" class="table-of-contents__link toc-highlight">Remote Access - <strong>Choose Remote Access Type</strong></a></li></ul></li><li><a href="#dynamic-remote-access" class="table-of-contents__link toc-highlight"><strong>Dynamic Remote Access</strong></a><ul><li><a href="#dynamic-remote-access-usage" class="table-of-contents__link toc-highlight">Dynamic Remote Access Usage</a></li><li><a href="#configuring-upnp-applies-to-dynamic---upnp--always-on---upnp" class="table-of-contents__link toc-highlight">Configuring <strong>UPNP</strong> (Applies to Dynamic - UPNP / Always On - UPNP)</a></li><li><a href="#configuring-manual-port-forwarding-applies-to-dynamic---manual-port-forward--always-on---manual-port-forward" class="table-of-contents__link toc-highlight">Configuring <strong>Manual Port Forwarding</strong> (Applies to Dynamic - Manual Port Forward / Always On - Manual Port Forward)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/intro/index.html b/zh/contribute-to-docs/intro/index.html index 88049dc93..afcac0194 100644 --- a/zh/contribute-to-docs/intro/index.html +++ b/zh/contribute-to-docs/intro/index.html @@ -9,15 +9,15 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/intro/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contributing to Unraid Documentation</span><meta itemprop="position" content="2"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Contributing to Unraid Documentation</h1><p><strong>Contribute to a Docs Page that already Exists</strong> If you want to contribute to an Unraid Docs page that already exists, there is an "Edit this page" button at the bottom of every page.</p><p>Clicking this will take you to github, where you can click on the edit pencil in the far right to fork the repository, make edits on your own branch, and then commit Pull Requests to Main.</p><p>Unraid Docs are built using Docusaurus which uses <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features" target="_blank" rel="noopener noreferrer">Markdown</a>, so please use the proper formatting outlined there for <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#links" target="_blank" rel="noopener noreferrer">links</a>, <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#code-blocks" target="_blank" rel="noopener noreferrer">code blocks</a>, and <a href="https://docs.unraid.net/contribute-to-docs/tutorial-basics/markdown-features#admonitions" target="_blank" rel="noopener noreferrer">admonitions</a>. </p><p><strong>Creating a New Docs Page</strong></p><p>To create a new Docs page, for example an Unraid Guide, in github, go to <a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides" target="_blank" rel="noopener noreferrer">docs/unraid-os/guides</a> and click "Add file" on the right to add a new Guides page. From there, name your file/guide and ensure it ends with ".md". Also, please ensure filenames are <em>lower case</em> and have <em>dashes separating-any-words</em> (Ex: wake-on-lan.md) Next, add the guide info and styling and then commit your changes. Then, a LimeTech employee will review and merge if everything looks good.</p><p>Thank you in advance for any and all submissions and edits. Making living technical documentation would be impossible without community involvement!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/intro.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/contribute/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Contribute</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/tutorial---basics/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Tutorial - Basics</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/tutorial-basics/congratulations/index.html b/zh/contribute-to-docs/tutorial-basics/congratulations/index.html index 6097c2bdd..851567ed5 100644 --- a/zh/contribute-to-docs/tutorial-basics/congratulations/index.html +++ b/zh/contribute-to-docs/tutorial-basics/congratulations/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/congratulations/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Congratulations</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Congratulations</h1><p>You have just learned the <strong>basics of Docusaurus</strong> and made some changes to the <strong>initial template</strong>.</p><p>Docusaurus has <strong>much more to offer</strong>!</p><p>Have <strong>5 more minutes</strong>? Take a look at <strong><a href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/">versioning</a></strong> and <strong><a href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/">i18n</a></strong>.</p><p>Anything <strong>unclear</strong> or <strong>buggy</strong> in this tutorial? <a href="https://github.com/facebook/docusaurus/discussions/4610" target="_blank" rel="noopener noreferrer">Please report it!</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="whats-next">What's next?<a href="#whats-next" class="hash-link" aria-label="What's next?的直接链接" title="What's next?的直接链接">​</a></h2><ul><li>Read the <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">official documentation</a></li><li>Modify your site configuration with <a href="https://docusaurus.io/docs/api/docusaurus-config" target="_blank" rel="noopener noreferrer"><code>docusaurus.config.js</code></a></li><li>Add navbar and footer items with <a href="https://docusaurus.io/docs/api/themes/configuration" target="_blank" rel="noopener noreferrer"><code>themeConfig</code></a></li><li>Add a custom <a href="https://docusaurus.io/docs/styling-layout" target="_blank" rel="noopener noreferrer">Design and Layout</a></li><li>Add a <a href="https://docusaurus.io/docs/search" target="_blank" rel="noopener noreferrer">search bar</a></li><li>Find inspirations in the <a href="https://docusaurus.io/showcase" target="_blank" rel="noopener noreferrer">Docusaurus showcase</a></li><li>Get involved in the <a href="https://docusaurus.io/community/support" target="_blank" rel="noopener noreferrer">Docusaurus Community</a></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/congratulations.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Markdown Features</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/tutorial---extras/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Tutorial - Extras</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#whats-next" class="table-of-contents__link toc-highlight">What's next?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html b/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html index ae2f5fc8a..594006c25 100644 --- a/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html +++ b/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-blog-post/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Blog Post</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Create a Blog Post</h1><p>Docusaurus creates a <strong>page for each blog post</strong>, but also a <strong>blog index page</strong>, a <strong>tag system</strong>, an <strong>RSS</strong> feed...</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-post">Create your first Post<a href="#create-your-first-post" class="hash-link" aria-label="Create your first Post的直接链接" title="Create your first Post的直接链接">​</a></h2><p>Create a file at <code>blog/2021-02-28-greetings.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">blog/2021-02-28-greetings.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">slug</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> greetings</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Greetings</span><span class="token front-matter-block front-matter yaml language-yaml tag" style="color:rgb(255, 121, 198)">!</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">authors</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Joel Marcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Co</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml">creator of Docusaurus 1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/JoelMarcey.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">name</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Sébastien Lorber</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">title</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> Docusaurus maintainer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//sebastienlorber.com</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml key atrule">image_url</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> https</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml">//github.com/slorber.png</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">tags</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token front-matter-block front-matter yaml language-yaml">greetings</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token front-matter-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Congratulations, you have made your first post!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Feel free to play around and edit this post as much you like.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new blog post is now available at <a href="http://localhost:3000/blog/greetings" target="_blank" rel="noopener noreferrer">http://localhost:3000/blog/greetings</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-blog-post.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Create a Document</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Markdown Features</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-post" class="table-of-contents__link toc-highlight">Create your first Post</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/tutorial-basics/create-a-document/index.html b/zh/contribute-to-docs/tutorial-basics/create-a-document/index.html index 8d4e1bd1e..d2fd068cd 100644 --- a/zh/contribute-to-docs/tutorial-basics/create-a-document/index.html +++ b/zh/contribute-to-docs/tutorial-basics/create-a-document/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-document/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Document</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Create a Document</h1><p>Documents are <strong>groups of pages</strong> connected through:</p><ul><li>a <strong>sidebar</strong></li><li><strong>previous/next navigation</strong></li><li><strong>versioning</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-doc">Create your first Doc<a href="#create-your-first-doc" class="hash-link" aria-label="Create your first Doc的直接链接" title="Create your first Doc的直接链接">​</a></h2><p>Create a Markdown file at <code>docs/hello.md</code>:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new document is now available at <a href="http://localhost:3000/docs/hello" target="_blank" rel="noopener noreferrer">http://localhost:3000/docs/hello</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-the-sidebar">Configure the Sidebar<a href="#configure-the-sidebar" class="hash-link" aria-label="Configure the Sidebar的直接链接" title="Configure the Sidebar的直接链接">​</a></h2><p>Docusaurus automatically <strong>creates a sidebar</strong> from the <code>docs</code> folder.</p><p>Add metadata to customize the sidebar label and position:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docs/hello.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_label</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml string" style="color:rgb(255, 121, 198)">"Hi!"</span><span class="token front-matter-block front-matter yaml language-yaml"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block front-matter yaml language-yaml"></span><span class="token front-matter-block front-matter yaml language-yaml key atrule">sidebar_position</span><span class="token front-matter-block front-matter yaml language-yaml punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token front-matter-block front-matter yaml language-yaml"> </span><span class="token front-matter-block front-matter yaml language-yaml number">3</span><span class="token front-matter-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token front-matter-block"></span><span class="token front-matter-block punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Hello</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is my </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">first Docusaurus document</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It is also possible to create your sidebar explicitly in <code>sidebars.js</code>:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">sidebars.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">tutorialSidebar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"intro"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"hello"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"category"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">label</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Tutorial"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"tutorial-basics/create-a-document"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-document.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Create a Page</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Create a Blog Post</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-doc" class="table-of-contents__link toc-highlight">Create your first Doc</a></li><li><a href="#configure-the-sidebar" class="table-of-contents__link toc-highlight">Configure the Sidebar</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/tutorial-basics/create-a-page/index.html b/zh/contribute-to-docs/tutorial-basics/create-a-page/index.html index 7e78652b3..69c827686 100644 --- a/zh/contribute-to-docs/tutorial-basics/create-a-page/index.html +++ b/zh/contribute-to-docs/tutorial-basics/create-a-page/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/create-a-page/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a Page</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Create a Page</h1><p>Add <strong>Markdown or React</strong> files to <code>src/pages</code> to create a <strong>standalone page</strong>:</p><ul><li><code>src/pages/index.js</code> → <code>localhost:3000/</code></li><li><code>src/pages/foo.md</code> → <code>localhost:3000/foo</code></li><li><code>src/pages/foo/bar.js</code> → <code>localhost:3000/foo/bar</code></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-react-page">Create your first React Page<a href="#create-your-first-react-page" class="hash-link" aria-label="Create your first React Page的直接链接" title="Create your first React Page的直接链接">​</a></h2><p>Create a file at <code>src/pages/my-react-page.js</code>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-react-page.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"react"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">Layout</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"@theme/Layout"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">default</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">MyReactPage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">My React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">This is a React page</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Layout</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-react-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-react-page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-first-markdown-page">Create your first Markdown Page<a href="#create-your-first-markdown-page" class="hash-link" aria-label="Create your first Markdown Page的直接链接" title="Create your first Markdown Page的直接链接">​</a></h2><p>Create a file at <code>src/pages/my-markdown-page.md</code>:</p><div class="language-mdx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/pages/my-markdown-page.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-mdx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># My Markdown page</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is a Markdown page</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>A new page is now available at <a href="http://localhost:3000/my-markdown-page" target="_blank" rel="noopener noreferrer">http://localhost:3000/my-markdown-page</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/create-a-page.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/tutorial---basics/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Tutorial - Basics</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Create a Document</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-your-first-react-page" class="table-of-contents__link toc-highlight">Create your first React Page</a></li><li><a href="#create-your-first-markdown-page" class="table-of-contents__link toc-highlight">Create your first Markdown Page</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/tutorial-basics/markdown-features/index.html b/zh/contribute-to-docs/tutorial-basics/markdown-features/index.html index 7cb475e08..954490705 100644 --- a/zh/contribute-to-docs/tutorial-basics/markdown-features/index.html +++ b/zh/contribute-to-docs/tutorial-basics/markdown-features/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-basics/markdown-features/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-page/">Create a Page</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-document/">Create a Document</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/">Create a Blog Post</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/markdown-features/">Markdown Features</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-basics/congratulations/">Congratulations</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/tutorial---basics/"><span itemprop="name">Tutorial - Basics</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Markdown Features</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Markdown Features</h1><p>Docusaurus supports <strong><a href="https://daringfireball.net/projects/markdown/syntax" target="_blank" rel="noopener noreferrer">Markdown</a></strong> and a few <strong>additional features</strong>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="front-matter">Front Matter<a href="#front-matter" class="hash-link" aria-label="Front Matter的直接链接" title="Front Matter的直接链接">​</a></h2><p>Markdown documents have metadata at the top called <a href="https://jekyllrb.com/docs/front-matter/" target="_blank" rel="noopener noreferrer">Front Matter</a>:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">my-doc.md</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">id: my-doc-id</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">title: My document title</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">description: My document description</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">slug: /my-custom-url</span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">---</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">## Markdown heading</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Markdown text with [links](./hello.md)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="links">Links<a href="#links" class="hash-link" aria-label="Links的直接链接" title="Links的直接链接">​</a></h2><p>Regular Markdown links are supported, using url paths or relative file paths.</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">/create-a-page</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Let's see how to </span><span class="token url">[</span><span class="token url content">Create a page</span><span class="token url">](</span><span class="token url">./create-a-page.md</span><span class="token url">)</span><span class="token plain">.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Result:</strong> Let's see how to <a href="/zh/contribute-to-docs/tutorial-basics/create-a-page/">Create a page</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="images">Images<a href="#images" class="hash-link" aria-label="Images的直接链接" title="Images的直接链接">​</a></h2><p>Regular Markdown images are supported.</p><p>You can use absolute paths to reference images in the static directory (<code>static/img/docusaurus.png</code>):</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">/img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><img loading="lazy" alt="Docusaurus logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC" width="200" height="200" class="img_ev3q"></p><p>You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:</p><div class="language-md codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-md codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token url operator">!</span><span class="token url">[</span><span class="token url content">Docusaurus logo</span><span class="token url">](</span><span class="token url">./img/docusaurus.png</span><span class="token url">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="code-blocks">Code Blocks<a href="#code-blocks" class="hash-link" aria-label="Code Blocks的直接链接" title="Code Blocks的直接链接">​</a></h2><p>Markdown code blocks are supported with Syntax highlighting.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">```jsx title="src/components/HelloDocusaurus.js"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">function HelloDocusaurus() {</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> return (</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> <h1>Hello, Docusaurus!</h1></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> )</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">```</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">src/components/HelloDocusaurus.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token function maybe-class-name" style="color:rgb(80, 250, 123)">HelloDocusaurus</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Hello, Docusaurus!</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">h1</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="admonitions">Admonitions<a href="#admonitions" class="hash-link" aria-label="Admonitions的直接链接" title="Admonitions的直接链接">​</a></h2><p>Docusaurus has a special syntax to create admonitions and callouts:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::tip My tip</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Use this awesome feature option</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::danger Take care</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This action is dangerous</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">:::</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="theme-admonition theme-admonition-tip alert alert--success admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>My tip</div><div class="admonitionContent_S0QG"><p>Use this awesome feature option</p></div></div><div class="theme-admonition theme-admonition-danger alert alert--danger admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>Take care</div><div class="admonitionContent_S0QG"><p>This action is dangerous</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="mdx-and-react-components">MDX and React Components<a href="#mdx-and-react-components" class="hash-link" aria-label="MDX and React Components的直接链接" title="MDX and React Components的直接链接">​</a></h2><p><a href="https://mdxjs.com/" target="_blank" rel="noopener noreferrer">MDX</a> can make your documentation more <strong>interactive</strong> and allows using any <strong>React components inside Markdown</strong>:</p><div class="language-jsx codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-jsx codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword module" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function maybe-class-name" style="color:rgb(80, 250, 123)">Highlight</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token parameter">children</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token parameter"> color</span><span class="token parameter punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=></span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">style</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">backgroundColor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> color</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">borderRadius</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'20px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'#fff'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">padding</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'10px'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript literal-property property" style="color:rgb(255, 121, 198)">cursor</span><span class="token tag script language-javascript operator" style="color:rgb(255, 121, 198)">:</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'pointer'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=></span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">alert</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)">You clicked the color </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">color</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string string" style="color:rgb(255, 121, 198)"> with label </span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token tag script language-javascript template-string interpolation" style="color:rgb(255, 121, 198)">children</span><span class="token tag script language-javascript template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag" style="color:rgb(255, 121, 198)">span</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#25c2a0</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Docusaurus green</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token maybe-class-name">This</span><span class="token plain"> is </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"><</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">color</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">#1877F2</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain-text">Facebook blue</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)"></</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Highlight</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">></span><span class="token plain"> </span><span class="token operator">!</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This is <span style="background-color:#25c2a0;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Docusaurus green</span> !</p><p>This is <span style="background-color:#1877F2;border-radius:20px;color:#fff;padding:10px;cursor:pointer">Facebook blue</span> !</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-basics/markdown-features.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Create a Blog Post</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/tutorial-basics/congratulations/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Congratulations</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#front-matter" class="table-of-contents__link toc-highlight">Front Matter</a></li><li><a href="#links" class="table-of-contents__link toc-highlight">Links</a></li><li><a href="#images" class="table-of-contents__link toc-highlight">Images</a></li><li><a href="#code-blocks" class="table-of-contents__link toc-highlight">Code Blocks</a></li><li><a href="#admonitions" class="table-of-contents__link toc-highlight">Admonitions</a></li><li><a href="#mdx-and-react-components" class="table-of-contents__link toc-highlight">MDX and React Components</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html b/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html index e66651339..e559dcf83 100644 --- a/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html +++ b/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/manage-docs-versions/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manage Docs Versions</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Manage Docs Versions</h1><p>Docusaurus can manage multiple versions of your docs.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-a-docs-version">Create a docs version<a href="#create-a-docs-version" class="hash-link" aria-label="Create a docs version的直接链接" title="Create a docs version的直接链接">​</a></h2><p>Release a version 1.0 of your project:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run docusaurus docs:version </span><span class="token number">1.0</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The <code>docs</code> folder is copied into <code>versioned_docs/version-1.0</code> and <code>versions.json</code> is created.</p><p>Your docs now have 2 versions:</p><ul><li><code>1.0</code> at <code>http://localhost:3000/docs/</code> for the version 1.0 docs</li><li><code>current</code> at <code>http://localhost:3000/docs/next/</code> for the <strong>upcoming, unreleased docs</strong></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-version-dropdown">Add a Version Dropdown<a href="#add-a-version-dropdown" class="hash-link" aria-label="Add a Version Dropdown的直接链接" title="Add a Version Dropdown的直接链接">​</a></h2><p>To navigate seamlessly across versions, add a version dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"docsVersionDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The docs version dropdown appears in your navbar:</p><p><img loading="lazy" alt="Docs Version Dropdown" src="/zh/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="update-an-existing-version">Update an existing version<a href="#update-an-existing-version" class="hash-link" aria-label="Update an existing version的直接链接" title="Update an existing version的直接链接">​</a></h2><p>It is possible to edit versioned docs in their respective folder:</p><ul><li><code>versioned_docs/version-1.0/hello.md</code> updates <code>http://localhost:3000/docs/hello</code></li><li><code>docs/hello.md</code> updates <code>http://localhost:3000/docs/next/hello</code></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/manage-docs-versions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/tutorial---extras/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Tutorial - Extras</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Translate your site</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#create-a-docs-version" class="table-of-contents__link toc-highlight">Create a docs version</a></li><li><a href="#add-a-version-dropdown" class="table-of-contents__link toc-highlight">Add a Version Dropdown</a></li><li><a href="#update-an-existing-version" class="table-of-contents__link toc-highlight">Update an existing version</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/contribute-to-docs/tutorial-extras/translate-your-site/index.html b/zh/contribute-to-docs/tutorial-extras/translate-your-site/index.html index 96d0aa176..a1dfe85ba 100644 --- a/zh/contribute-to-docs/tutorial-extras/translate-your-site/index.html +++ b/zh/contribute-to-docs/tutorial-extras/translate-your-site/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/contribute-to-docs/tutorial-extras/translate-your-site/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/intro/">Contributing to Unraid Documentation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/tutorial---basics/">Tutorial - Basics</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Basics」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/tutorial---extras/">Tutorial - Extras</a><button aria-label="打开/收起侧边栏菜单「Tutorial - Extras」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/">Manage Docs Versions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/contribute-to-docs/tutorial-extras/translate-your-site/">Translate your site</a></li></ul></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/contribute/"><span itemprop="name">Contribute</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/tutorial---extras/"><span itemprop="name">Tutorial - Extras</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Translate your site</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Translate your site</h1><p>Let's translate <code>docs/intro.md</code> to French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configure-i18n">Configure i18n<a href="#configure-i18n" class="hash-link" aria-label="Configure i18n的直接链接" title="Configure i18n的直接链接">​</a></h2><p>Modify <code>docusaurus.config.js</code> to add support for the <code>fr</code> locale:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">i18n</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">defaultLocale</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">locales</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"en"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"fr"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="translate-a-doc">Translate a doc<a href="#translate-a-doc" class="hash-link" aria-label="Translate a doc的直接链接" title="Translate a doc的直接链接">​</a></h2><p>Copy the <code>docs/intro.md</code> file to the <code>i18n/fr</code> folder:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">mkdir</span><span class="token plain"> -p i18n/fr/docusaurus-plugin-content-docs/current/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">cp</span><span class="token plain"> docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Translate <code>i18n/fr/docusaurus-plugin-content-docs/current/intro.md</code> in French.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="start-your-localized-site">Start your localized site<a href="#start-your-localized-site" class="hash-link" aria-label="Start your localized site的直接链接" title="Start your localized site的直接链接">​</a></h2><p>Start your site on the French locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run start -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Your localized site is accessible at <a href="http://localhost:3000/fr/" target="_blank" rel="noopener noreferrer">http://localhost:3000/fr/</a> and the <code>Getting Started</code> page is translated.</p><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>警告</div><div class="admonitionContent_S0QG"><p>In development, you can only use one locale at a same time.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="add-a-locale-dropdown">Add a Locale Dropdown<a href="#add-a-locale-dropdown" class="hash-link" aria-label="Add a Locale Dropdown的直接链接" title="Add a Locale Dropdown的直接链接">​</a></h2><p>To navigate seamlessly across languages, add a locale dropdown.</p><p>Modify the <code>docusaurus.config.js</code> file:</p><div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_Ktv7">docusaurus.config.js</div><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">module</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">themeConfig</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">navbar</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">items</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token literal-property property">type</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"localeDropdown"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>The locale dropdown now appears in your navbar:</p><p><img loading="lazy" alt="Locale Dropdown" src="/zh/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png" width="370" height="302" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="build-your-localized-site">Build your localized site<a href="#build-your-localized-site" class="hash-link" aria-label="Build your localized site的直接链接" title="Build your localized site的直接链接">​</a></h2><p>Build your site for a specific locale:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build -- --locale fr</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Or build your site to include all the locales at once:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> run build</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/contribute-to-docs/tutorial-extras/translate-your-site.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Manage Docs Versions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#configure-i18n" class="table-of-contents__link toc-highlight">Configure i18n</a></li><li><a href="#translate-a-doc" class="table-of-contents__link toc-highlight">Translate a doc</a></li><li><a href="#start-your-localized-site" class="table-of-contents__link toc-highlight">Start your localized site</a></li><li><a href="#add-a-locale-dropdown" class="table-of-contents__link toc-highlight">Add a Locale Dropdown</a></li><li><a href="#build-your-localized-site" class="table-of-contents__link toc-highlight">Build your localized site</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/index.html b/zh/index.html index 8f1d80b49..111859f22 100644 --- a/zh/index.html +++ b/zh/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div id="__docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Home</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Home</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-documentation">Unraid Documentation<a href="#unraid-documentation" class="hash-link" aria-label="Unraid Documentation的直接链接" title="Unraid Documentation的直接链接">​</a></h2><p>Welcome! Some of the documentation here is still a work in progress, while the old documentation in the <a href="/zh/category/legacy-documentation/">Legacy Documentation section</a> is actively being updated and edited to reflect accurate, up-to-date information.</p><p>If you'd like to contribute to these docs, feel free to open a PR by clicking <em>Edit this page</em> at the bottom of any page, or using the link in the footer. Thank you in advance for helping to keep these docs accurate and living.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="documentation-categories">Documentation Categories<a href="#documentation-categories" class="hash-link" aria-label="Documentation Categories的直接链接" title="Documentation Categories的直接链接">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-os"><a href="/zh/category/unraid-os/">Unraid OS</a><a href="#unraid-os" class="hash-link" aria-label="unraid-os的直接链接" title="unraid-os的直接链接">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="unraid-connect"><a href="/zh/category/unraid-connect/">Unraid Connect</a><a href="#unraid-connect" class="hash-link" aria-label="unraid-connect的直接链接" title="unraid-connect的直接链接">​</a></h3><h3 class="anchor anchorWithStickyNavbar_LWe7" id="legacy-documentation"><a href="/zh/category/legacy-documentation/">Legacy Documentation</a><a href="#legacy-documentation" class="hash-link" aria-label="legacy-documentation的直接链接" title="legacy-documentation的直接链接">​</a></h3></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/docs-home.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/unraid-os/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Unraid OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#unraid-documentation" class="table-of-contents__link toc-highlight">Unraid Documentation</a></li><li><a href="#documentation-categories" class="table-of-contents__link toc-highlight">Documentation Categories</a><ul><li><a href="#unraid-os" class="table-of-contents__link toc-highlight">Unraid OS</a></li><li><a href="#unraid-connect" class="table-of-contents__link toc-highlight">Unraid Connect</a></li><li><a href="#legacy-documentation" class="table-of-contents__link toc-highlight">Legacy Documentation</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/Articles/dual-boot-unraid-and-windows/index.html b/zh/legacy/Articles/dual-boot-unraid-and-windows/index.html index 3c12779e0..2e7796952 100644 --- a/zh/legacy/Articles/dual-boot-unraid-and-windows/index.html +++ b/zh/legacy/Articles/dual-boot-unraid-and-windows/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -58,7 +58,7 @@ installing lilo to the MBR.</p><p>When done, edit /etc/lilo.conf to your liking.</p><p>Finally, format the cache partition (partition1) with ReiserFS.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="finish">Finish<a href="#finish" class="hash-link" aria-label="Finish的直接链接" title="Finish的直接链接">​</a></h2><p>Now start Unraid by booting the flash, and assigning the cache drive.</p><p>You can boot Windows or Linux by changing the BIOS settings, or using the appropriate key at boot time key to get a boot menu, or you can also edit the syslinux config on the flash to give you multi-boot options.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/dual-boot-unraid-and-windows.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/legacy-documentation/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Legacy Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-do-this" class="table-of-contents__link toc-highlight">Why do this?</a></li><li><a href="#what-you-need" class="table-of-contents__link toc-highlight">What you need</a></li><li><a href="#preparation" class="table-of-contents__link toc-highlight">Preparation</a></li><li><a href="#partition-disk" class="table-of-contents__link toc-highlight">Partition Disk</a></li><li><a href="#install-windows" class="table-of-contents__link toc-highlight">Install Windows</a></li><li><a href="#check-partition-order-after-windows-install" class="table-of-contents__link toc-highlight">Check Partition Order After Windows Install</a></li><li><a href="#install-linux" class="table-of-contents__link toc-highlight">Install Linux</a></li><li><a href="#finish" class="table-of-contents__link toc-highlight">Finish</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html b/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html index b557c11bf..f1bae857a 100644 --- a/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html +++ b/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -33,7 +33,7 @@ numbered partition in the list (for recovery).</li><li>Type 'delete partition override' and press enter.</li><li>Right-click the start menu and select 'Disk Management'</li><li>Right-click on the partition you wish to extend and click 'Extend Partition'</li><li>Follow the on-screen prompts to complete the process.</li></ul><p><img loading="lazy" src="/zh/assets/images/Resize_vdisk_3_(extend_partition_in_disk_management)-62c649acdf42616193f2d6c889504ea9.PNG" width="1132" height="896" class="img_ev3q"> <img loading="lazy" src="/zh/assets/images/Resize_vdisk_4_(partition_has_been_extended_in_disk_management)-335d91d19a6c04b5d3e115c4d8149dcb.PNG" width="1131" height="896" class="img_ev3q"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/expanding-windows-vm-vdisk-partitions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/Articles/dual-boot-unraid-and-windows/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Dual Booting Windows & Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#guide" class="table-of-contents__link toc-highlight">Guide</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/Articles/upgrading-to-unraid-6/index.html b/zh/legacy/Articles/upgrading-to-unraid-6/index.html index a29b56db0..2f9f019e3 100644 --- a/zh/legacy/Articles/upgrading-to-unraid-6/index.html +++ b/zh/legacy/Articles/upgrading-to-unraid-6/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -98,7 +98,7 @@ earlier.</p><h1>From version 5.x or earlier</h1><p>Please see <a href="https://forums.unraid.net/forum/index.php?topic=41061.0" target="_blank" rel="noopener noreferrer">this forum post</a> for information on upgrading.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/Articles/upgrading-to-unraid-6.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Expanding Windows VM VDisk Partitions</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Parity</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#possible-upgrade-issues" class="table-of-contents__link toc-highlight">Possible upgrade issues</a><ul><li><a href="#the-new-release-does-not-show-up-after-clicking-check-for-updates-button" class="table-of-contents__link toc-highlight">The new release does not show up after clicking <em>Check for Updates</em> button</a></li><li><a href="#my-array--docker-apps-are-taking-a-really-long-time-to-start-after-the-upgrade" class="table-of-contents__link toc-highlight">My array / docker apps are taking a really long time to start after the upgrade</a></li><li><a href="#my-containers-arent-working-right-after-the-upgrade" class="table-of-contents__link toc-highlight">My containers aren't working right after the upgrade</a></li><li><a href="#my-vms-get-an-error-of-cannot-get-interface-mtu" class="table-of-contents__link toc-highlight">My VMs get an error of "cannot get interface MTU..."</a></li><li><a href="#vnc-access-to-my-vms-is-not-working-or-performing-poorly" class="table-of-contents__link toc-highlight">VNC access to my VMs is not working or performing poorly</a></li><li><a href="#my-ovmf-vm-doesnt-boot-correctly" class="table-of-contents__link toc-highlight">My OVMF VM doesn't boot correctly</a></li><li><a href="#trying-to-start-my-vm-gives-a-invalid-machine-type-error" class="table-of-contents__link toc-highlight">Trying to start my VM gives a "Invalid Machine Type" error</a></li><li><a href="#poor-vm-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VM performance after upgrading</a></li><li><a href="#poor-vnc-performance-after-upgrading" class="table-of-contents__link toc-highlight">Poor VNC performance after upgrading</a></li></ul></li><li><a href="#checking-your-existing-version" class="table-of-contents__link toc-highlight">Checking your existing version</a></li><li><a href="#checking-for-sufficient-free-space" class="table-of-contents__link toc-highlight">Checking for sufficient free space</a></li><li><a href="#checking-your-network-bridge-name" class="table-of-contents__link toc-highlight">Checking your network bridge name</a></li><li><a href="#checking-your-vm-network-bridge-settings" class="table-of-contents__link toc-highlight">Checking your VM network bridge settings</a></li><li><a href="#post-installation-procedures" class="table-of-contents__link toc-highlight">Post installation procedures</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/Parity/index.html b/zh/legacy/FAQ/Parity/index.html index 064c02802..224f565b9 100644 --- a/zh/legacy/FAQ/Parity/index.html +++ b/zh/legacy/FAQ/Parity/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ errors, with minimal impact on performance.(Requires Clarification that this is actually used)</p><p>Further discussion: <a href="https://forums.unraid.net/forum/index.php?topic=2634.msg21695#msg21695" target="_blank" rel="noopener noreferrer">1</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/Parity.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/Articles/upgrading-to-unraid-6/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Upgrading to Unraid 6</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Cache Disk</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#how-parity-works" class="table-of-contents__link toc-highlight">How parity works</a></li><li><a href="#reconstructing-data" class="table-of-contents__link toc-highlight">Reconstructing data</a></li><li><a href="#checking-parity" class="table-of-contents__link toc-highlight">Checking parity</a></li><li><a href="#parity-disk" class="table-of-contents__link toc-highlight">Parity disk</a><ul><li><a href="#size" class="table-of-contents__link toc-highlight">Size</a></li><li><a href="#performance" class="table-of-contents__link toc-highlight">Performance</a></li></ul></li><li><a href="#dual-parity" class="table-of-contents__link toc-highlight">Dual parity</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/cache-disk/index.html b/zh/legacy/FAQ/cache-disk/index.html index 907835906..8724538f1 100644 --- a/zh/legacy/FAQ/cache-disk/index.html +++ b/zh/legacy/FAQ/cache-disk/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -134,7 +134,7 @@ you will want a cache drive that is larger than 100 GB. If you attempt a data transfer that is larger than the size of your cache drive, the transfer will fail.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/cache-disk.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/Parity/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Parity</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Checking and fixing file systems</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#adding-a-cache-disk-to-the-array" class="table-of-contents__link toc-highlight">Adding a cache disk to the array</a></li><li><a href="#cache-settings" class="table-of-contents__link toc-highlight">Cache settings</a></li><li><a href="#speed" class="table-of-contents__link toc-highlight">Speed</a><ul><li><a href="#perceived-write-speed-increases" class="table-of-contents__link toc-highlight">Perceived write speed increases</a></li><li><a href="#actual-write-speed-increases" class="table-of-contents__link toc-highlight">Actual write speed increases</a></li></ul></li><li><a href="#the-mover" class="table-of-contents__link toc-highlight">The Mover</a></li><li><a href="#other-uses-for-a-cache-disk" class="table-of-contents__link toc-highlight">Other uses for a cache disk</a><ul><li><a href="#warm-spare" class="table-of-contents__link toc-highlight">Warm spare</a></li><li><a href="#running-other-software-on-top-of-unraid" class="table-of-contents__link toc-highlight">Running other software on top of Unraid</a></li><li><a href="#scratch-space" class="table-of-contents__link toc-highlight">Scratch space</a></li></ul></li><li><a href="#disadvantages-of-a-cache-disk" class="table-of-contents__link toc-highlight">Disadvantages of a cache disk</a><ul><li><a href="#wasted-hdd-and-hdd-slot" class="table-of-contents__link toc-highlight">'Wasted' HDD and HDD slot</a></li><li><a href="#short-term-risk-of-data-loss" class="table-of-contents__link toc-highlight">Short-term risk of data loss</a></li></ul></li><li><a href="#hardware" class="table-of-contents__link toc-highlight">Hardware</a><ul><li><a href="#purpose" class="table-of-contents__link toc-highlight">Purpose</a></li><li><a href="#amount-of-data" class="table-of-contents__link toc-highlight">Amount of data</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/check-disk-filesystems/index.html b/zh/legacy/FAQ/check-disk-filesystems/index.html index 38da97d65..7bedbc912 100644 --- a/zh/legacy/FAQ/check-disk-filesystems/index.html +++ b/zh/legacy/FAQ/check-disk-filesystems/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -575,7 +575,7 @@ recommend you read both, for more details.</li><li><em>You may want to print this out ahead of time.</em></li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"> root@Tower:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">~</span><span class="token comment" style="color:rgb(98, 114, 164)"># reiserfsck --rebuild-sb /dev/md6</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfsck </span><span class="token number">3.6</span><span class="token plain">.19 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2003</span><span class="token plain"> www.namesys.com</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you are using the latest reiserfsprogs and it fails **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** please email bug reports to reiserfs-list@namesys.com, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** providing as much information as possible -- your **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** hardware, kernel, patches, settings, all reiserfsck **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** messages </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including version</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">, the reiserfsck logfile, **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** check the syslog </span><span class="token function" style="color:rgb(80, 250, 123)">file</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> any related information. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** If you would like advice on using this program, support **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ** is available </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$25</span><span class="token plain"> at www.namesys.com/support.html. **</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> *************************************************************</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will check superblock and rebuild it </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> needed</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Will put log info to </span><span class="token string" style="color:rgb(255, 121, 198)">'stdout'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to run this program?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">N/Yes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">note need to </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">type</span><span class="token plain"> Yes</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> you </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">:**Yes**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reiserfs_open: the reiserfs superblock cannot be found on</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> /dev/md6.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> what the version of ReiserFS </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> you use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token plain">-4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain">.x</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">>=</span><span class="token number">3.5</span><span class="token plain">.9 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">introduced </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> the middle of </span><span class="token number">1999</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">if you use linux </span><span class="token number">2.2</span><span class="token plain">, choose this one</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator"><</span><span class="token plain"> </span><span class="token number">3.5</span><span class="token plain">.9 converted to new </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">don</span><span class="token string" style="color:rgb(255, 121, 198)">'t choose if unsure)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token string" style="color:rgb(255, 121, 198)"> (4) < 3.5.9 (this is very old format, don'</span><span class="token plain">t choose </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> unsure</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">X</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">exit</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **1**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Enter block size </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">4096</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> **4096**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> No journal device was specified. </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">If journal is not available,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> re-run with </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain">--no-journal-available option specified</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is journal default? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">y</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Did you use resizer</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **n**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: no uuid found, a new uuid was generated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">b0894fe9-3850-4d57-b70b-a419cbf3823e</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild-sb: You either have a corrupted journal or have just</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> changed the start of the partition with some partition table</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> editor. If you are sure that the start of the partition is ok,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> rebuild the journal header.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Do you want to rebuild the journal header? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Reiserfs super block </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> block </span><span class="token number">16</span><span class="token plain"> on 0x906 of </span><span class="token function" style="color:rgb(80, 250, 123)">format</span><span class="token plain"> </span><span class="token number">3.6</span><span class="token plain"> with</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> standard journal</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Count of blocks on the device: </span><span class="token number">97677824</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Number of bitmaps: </span><span class="token number">2981</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocksize: </span><span class="token number">4096</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Free blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">count of blocks - used </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">journal, bitmaps, data,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> reserved</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> blocks</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Root block: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Filesystem is NOT clean</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Tree height: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Hash </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> used to </span><span class="token function" style="color:rgb(80, 250, 123)">sort</span><span class="token plain"> names: not </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Objectid map size </span><span class="token number">0</span><span class="token plain">, max </span><span class="token number">972</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Journal parameters:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Device </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Magic </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">0x0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Size </span><span class="token number">8193</span><span class="token plain"> blocks </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">including </span><span class="token number">1</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> journal header</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">first block </span><span class="token number">18</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max transaction length </span><span class="token number">1024</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max batch size </span><span class="token number">900</span><span class="token plain"> blocks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Max commit age </span><span class="token number">30</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Blocks reserved by journal: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Fs state field: 0x1:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> some corruptions exist.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> sb_version: </span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> inode generation number: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> UUID: b0894fe9-3850-4d57-b70b-a419cbf3823e</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> LABEL:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Set flags </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> SB:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Is this ok ? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">n</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">: **y**</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It should be quick. When this completes, hopefully successfully, rerun the <strong>reiserfsck <!-- -->-<!-- -->-check</strong> on the drive, and proceed according to the instructions that it gives you.</p><p><em>-<!-- -->-<!-- -->- work in progress <!-- -->-<!-- -->-<!-- -->-</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-disk-filesystems.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/cache-disk/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Cache Disk</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Check Harddrive Speed</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-this-the-right-page" class="table-of-contents__link toc-highlight">Is this the right page?</a></li><li><a href="#drive-names-and-symbols" class="table-of-contents__link toc-highlight">Drive names and symbols</a></li><li><a href="#which-section" class="table-of-contents__link toc-highlight">Which section?</a></li><li><a href="#checking-and-fixing-drives-in-the-webgui" class="table-of-contents__link toc-highlight">Checking and fixing drives in the webGui</a><ul><li><a href="#preparing-to-test" class="table-of-contents__link toc-highlight">Preparing to test</a></li><li><a href="#running-the-test" class="table-of-contents__link toc-highlight">Running the test</a></li><li><a href="#running-the-repair" class="table-of-contents__link toc-highlight">Running the repair</a><ul><li><a href="#for-reiserfs-drives" class="table-of-contents__link toc-highlight">For ReiserFS drives</a></li><li><a href="#for-xfs-drives" class="table-of-contents__link toc-highlight">For XFS drives</a></li><li><a href="#for-btrfs-drives-and-pools" class="table-of-contents__link toc-highlight">For BTRFS drives and pools</a></li></ul></li><li><a href="#running-the-repair-continued" class="table-of-contents__link toc-highlight">Running the repair (continued)</a></li><li><a href="#after-the-test-and-repair" class="table-of-contents__link toc-highlight">After the test and repair</a></li><li><a href="#additional-comments" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-xfs" class="table-of-contents__link toc-highlight">Drives formatted with XFS</a><ul><li><a href="#preparing-to-run-xfs_repair" class="table-of-contents__link toc-highlight">Preparing to run xfs_repair</a></li><li><a href="#running-xfs_repair" class="table-of-contents__link toc-highlight">Running xfs_repair</a></li><li><a href="#after-running-xfs_repair" class="table-of-contents__link toc-highlight">After running xfs_repair</a></li><li><a href="#additional-comments-1" class="table-of-contents__link toc-highlight">Additional comments</a></li><li><a href="#redoing-a-drive-formatted-with-xfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with XFS</a></li></ul></li><li><a href="#drives-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Drives formatted with BTRFS</a><ul><li><a href="#experimental-btrfs-recovery" class="table-of-contents__link toc-highlight">Experimental BTRFS recovery</a></li><li><a href="#redoing-a-drive-formatted-with-btrfs" class="table-of-contents__link toc-highlight">Redoing a drive formatted with BTRFS</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v5-or-later" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v5 or later</a><ul><li><a href="#preparing-to-run-reiserfsck" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-2" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#drives-formatted-with-reiserfs-using-unraid-v4" class="table-of-contents__link toc-highlight">Drives formatted with ReiserFS using Unraid v4</a><ul><li><a href="#preparing-to-run-reiserfsck-1" class="table-of-contents__link toc-highlight">Preparing to run reiserfsck</a></li><li><a href="#running-reiserfsck-1" class="table-of-contents__link toc-highlight">Running reiserfsck</a></li><li><a href="#after-running-reiserfsck-1" class="table-of-contents__link toc-highlight">After running reiserfsck</a></li><li><a href="#additional-comments-3" class="table-of-contents__link toc-highlight">Additional comments</a></li></ul></li><li><a href="#xfs_repair" class="table-of-contents__link toc-highlight">xfs_repair</a></li><li><a href="#btrfs-scrub" class="table-of-contents__link toc-highlight">btrfs scrub</a></li><li><a href="#reiserfsck" class="table-of-contents__link toc-highlight">reiserfsck</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/check-harddrive-speed/index.html b/zh/legacy/FAQ/check-harddrive-speed/index.html index d34653659..0fa01f4d3 100644 --- a/zh/legacy/FAQ/check-harddrive-speed/index.html +++ b/zh/legacy/FAQ/check-harddrive-speed/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -26,7 +26,7 @@ thread</a>. The script creates reports and graphs of drive read speeds, at multiple points across the surface of each drive.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/check-harddrive-speed.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/check-disk-filesystems/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Checking and fixing file systems</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/console/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Console</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/console/index.html b/zh/legacy/FAQ/console/index.html index 982588a31..33cd8a627 100644 --- a/zh/legacy/FAQ/console/index.html +++ b/zh/legacy/FAQ/console/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -183,7 +183,7 @@ line into <code>/boot/config/go</code> similar to <code>/boot/macros</code>.</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token shebang important">#!/bin/bash</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set dn like Windows dir/o-d, newest files first</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias dn='ls -Aogt --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set ds like dn plus Windows dir/s, newest files first, include all subdirs</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ds='ls -AogtR --group-directories-first --time-style=long-iso'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># start tail of syslog with plenty of lines</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias tale='tail -f --lines=200 /var/log/syslog'"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># an attempt to emulate the old Norton FF (FileFind)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"alias ff='find . -wholename '/proc' -prune -o -name '"</span><span class="token operator">>></span><span class="token plain">/etc/profile</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># set screen blanking (if idle for 10 minutes) and monitor to standby (if idle for 30 minutes)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">/bin/setterm -blank </span><span class="token number">10</span><span class="token plain"> -powersave powerdown -powerdown </span><span class="token number">30</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>When these macros are added to <code>/etc/profile</code>, they are available in any console you open, whether by SSH or Telnet or at the physical console on the UnRAID machine.</p><p>UnRAID already includes one macro - <code>v</code> is aliased to <code>ls -l</code>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/console.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/check-harddrive-speed/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Check Harddrive Speed</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#basics-of-console-usage" class="table-of-contents__link toc-highlight">Basics of Console Usage</a></li><li><a href="#console-commands-for-hard-drives" class="table-of-contents__link toc-highlight">Console Commands for Hard Drives</a><ul><li><a href="#hdparm" class="table-of-contents__link toc-highlight">hdparm</a></li><li><a href="#smartctl" class="table-of-contents__link toc-highlight">smartctl</a></li><li><a href="#other-hard-drive-commands" class="table-of-contents__link toc-highlight">other hard drive commands</a></li></ul></li><li><a href="#console-commands-for-networking" class="table-of-contents__link toc-highlight">Console Commands for Networking</a></li><li><a href="#console-commands-for-system-management" class="table-of-contents__link toc-highlight">Console Commands for System Management</a><ul><li><a href="#to-cleanly-stop-the-array-from-the-command-line" class="table-of-contents__link toc-highlight">To cleanly Stop the array from the command line</a></li></ul></li><li><a href="#console-commands-for-files-and-folders" class="table-of-contents__link toc-highlight">Console Commands for Files and Folders</a></li><li><a href="#console-commands-for-system-information" class="table-of-contents__link toc-highlight">Console Commands for System Information</a><ul><li><a href="#cpu-info" class="table-of-contents__link toc-highlight">CPU Info</a></li><li><a href="#memory-info" class="table-of-contents__link toc-highlight">Memory Info</a></li><li><a href="#sensor-info" class="table-of-contents__link toc-highlight">Sensor Info</a></li><li><a href="#network-info" class="table-of-contents__link toc-highlight">Network Info</a></li><li><a href="#other-hardware-info" class="table-of-contents__link toc-highlight">Other Hardware Info</a></li><li><a href="#version-info" class="table-of-contents__link toc-highlight">Version Info</a></li></ul></li><li><a href="#command-macros" class="table-of-contents__link toc-highlight">Command Macros</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/parity-swap-procedure/index.html b/zh/legacy/FAQ/parity-swap-procedure/index.html index cdff70355..8a82e1b81 100644 --- a/zh/legacy/FAQ/parity-swap-procedure/index.html +++ b/zh/legacy/FAQ/parity-swap-procedure/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -113,7 +113,7 @@ starting and stopping the array one time.</p><ol><li>Stop the array.</li><li>Power down the unit.</li><li>Replace the parity disk with the new bigger one.</li><li>Replace the failed disk with your old parity disk.</li><li>Power up the unit.</li><li>Start the array.</li><li>When you start the array, the system will first copy the parity information to the new parity disk, and then reconstruct the contents of the failed disk.</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/parity-swap-procedure.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/console/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Console</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Replacing a Data Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/replacing-a-data-drive/index.html b/zh/legacy/FAQ/replacing-a-data-drive/index.html index 6c6edf705..bc69aae7b 100644 --- a/zh/legacy/FAQ/replacing-a-data-drive/index.html +++ b/zh/legacy/FAQ/replacing-a-data-drive/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -54,7 +54,7 @@ array on-line, start Data-Rebuild, and then expand the file system."</li><li>Hefty disk activity and main page will show lots of reading on "the other" disks and writing on new disk as data is being rebuilt.</li><li>End</li></ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-a-data-drive.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/parity-swap-procedure/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">The Parity Swap Procedure</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#important-notes" class="table-of-contents__link toc-highlight">Important Notes</a></li><li><a href="#the-procedure" class="table-of-contents__link toc-highlight">The procedure</a></li><li><a href="#the-procedure-for-unraid-v4" class="table-of-contents__link toc-highlight">The procedure for Unraid v4</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/replacing-multiple-data-drives/index.html b/zh/legacy/FAQ/replacing-multiple-data-drives/index.html index 2b976021d..299c95280 100644 --- a/zh/legacy/FAQ/replacing-multiple-data-drives/index.html +++ b/zh/legacy/FAQ/replacing-multiple-data-drives/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -61,7 +61,7 @@ slot assignments of the new drive or any other drives at this point.</p></li><li><p>Start array and let parity rebuild.</p></li></ol><p><strong>Important! If any user shares are set to include/exclude specific disks, don't forget to update these settings to reflect the new drive numbering.</strong></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/replacing-multiple-data-drives.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/replacing-a-data-drive/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Replacing a Data Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#faster-method" class="table-of-contents__link toc-highlight">Faster Method</a></li><li><a href="#safer-method" class="table-of-contents__link toc-highlight">Safer Method</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html b/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html index 3ce074044..4e75ad8b4 100644 --- a/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html +++ b/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -108,7 +108,7 @@ If wrong, you may have to select different sensors or <a href="http://linux.die.net/man/5/sensors.conf" target="_blank" rel="noopener noreferrer">customize</a> the <strong>sensors.conf</strong> file.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/replacing-multiple-data-drives/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Replacing Multiple Data Drives with a Single Larger Drive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#setting-up-sensing-for-v6" class="table-of-contents__link toc-highlight">Setting up sensing for v6</a></li><li><a href="#setting-up-sensing-for-older-versions" class="table-of-contents__link toc-highlight">Setting up sensing for older versions</a><ul><li><a href="#step-1-open-a-console" class="table-of-contents__link toc-highlight">Step 1: Open a console</a></li><li><a href="#step-2-run-sensors" class="table-of-contents__link toc-highlight">Step 2: Run sensors</a></li><li><a href="#step-3-note-the-devices" class="table-of-contents__link toc-highlight">Step 3: Note the devices</a></li><li><a href="#step-4-note-the-sensors" class="table-of-contents__link toc-highlight">Step 4: Note the sensors</a></li><li><a href="#step-5-create-sensorsconf" class="table-of-contents__link toc-highlight">Step 5: Create sensors.conf</a></li><li><a href="#step-6-prepare-sensors-detect" class="table-of-contents__link toc-highlight">Step 6: Prepare sensors-detect</a></li><li><a href="#step-7-run-sensors-detect" class="table-of-contents__link toc-highlight">Step 7: Run sensors-detect</a></li><li><a href="#step-8-note-the-drivers" class="table-of-contents__link toc-highlight">Step 8: Note the drivers</a></li><li><a href="#step-9-add-modprobes-to-go" class="table-of-contents__link toc-highlight">Step 9: Add modprobes to go</a></li><li><a href="#step-10-add-the-copy-instruction-to-go" class="table-of-contents__link toc-highlight">Step 10: Add the copy instruction to go</a></li><li><a href="#step-11-reboot-and-check" class="table-of-contents__link toc-highlight">Step 11: Reboot and check</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html b/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html index 6a5be0852..c0d986a3a 100644 --- a/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html +++ b/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -72,7 +72,7 @@ be lost (unless previously backed up elsewhere.)</p><p>10<!-- -->.<!-- --> Edit 'go' file to call script</p><ul><li>I added the following lines to my go script to initiate the sleep script during boot:</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># Execute s3.sh sleep script</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">fromdos </span><span class="token operator"><</span><span class="token plain"> /boot/custom/bin/s3.sh </span><span class="token operator">|</span><span class="token plain"> at now + </span><span class="token number">1</span><span class="token plain"> minute</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ul><li>Make sure you adjust file directory structure as necessary depending upon where you saved your <strong>s3.sh</strong> script.</li></ul><p>11<!-- -->.<!-- --> Re-boot / test</p><p>Good luck!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/setup-sleep-and-wake-on-lan.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Setting Up CPU and Board Temperature Sensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Shrink Array</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/shrink-array/index.html b/zh/legacy/FAQ/shrink-array/index.html index 2afe77f49..91082903b 100644 --- a/zh/legacy/FAQ/shrink-array/index.html +++ b/zh/legacy/FAQ/shrink-array/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -147,7 +147,7 @@ write" (sometimes known as "turbo write" because it runs significantly faster) with the following command at the command line </em>after<!-- -->*<!-- --> the array is started:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">mdcmd </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">set</span><span class="token plain"> md_write_method </span><span class="token number">1</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/shrink-array.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Setup Sleep (S3) and Wake on Lan (WOL)</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Terminal Access</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#for-unraid-v62-and-later" class="table-of-contents__link toc-highlight">For Unraid v6.2 and later</a><ul><li><a href="#the-remove-drives-then-rebuild-parity-method" class="table-of-contents__link toc-highlight">The "Remove Drives Then Rebuild Parity" Method</a></li><li><a href="#the-clear-drive-then-remove-drive-method" class="table-of-contents__link toc-highlight">The "Clear Drive Then Remove Drive" Method</a></li></ul></li><li><a href="#for-unraid-v60-and-61-and-possibly-50" class="table-of-contents__link toc-highlight">For Unraid v6.0 and 6.1 and possibly 5.0</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/terminal-access/index.html b/zh/legacy/FAQ/terminal-access/index.html index 9e841bab5..45c5f167c 100644 --- a/zh/legacy/FAQ/terminal-access/index.html +++ b/zh/legacy/FAQ/terminal-access/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -124,7 +124,7 @@ server"</a></li><li><a href="/zh/legacy/FAQ/console/">Console</a> - basics of console usage, plus commands for drives, networking, system management, files and folders, and system information</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/terminal-access.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/shrink-array/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Shrink Array</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#ssh" class="table-of-contents__link toc-highlight">SSH</a></li><li><a href="#telnet" class="table-of-contents__link toc-highlight">Telnet</a><ul><li><a href="#using-telnet" class="table-of-contents__link toc-highlight">Using Telnet</a></li></ul></li><li><a href="#putty" class="table-of-contents__link toc-highlight">PuTTY</a></li><li><a href="#opening-a-terminal-session-with-the-windows-telnet-tool" class="table-of-contents__link toc-highlight">Opening a terminal session with the Windows Telnet tool</a></li><li><a href="#related-links" class="table-of-contents__link toc-highlight">Related links</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html b/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html index bdfb3cb2e..4efdd94bd 100644 --- a/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html +++ b/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -41,7 +41,7 @@ that have been created as part of this job. This can be rectified by running the 'New Permissions' job from the tools menu in the web admin after the copy process has completed.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-from-a-network-share-to-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/terminal-access/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Terminal Access</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#another-method-using-netcat-and-tar" class="table-of-contents__link toc-highlight">Another method using Netcat and Tar</a></li><li><a href="#unicode-issues" class="table-of-contents__link toc-highlight">Unicode issues</a></li><li><a href="#permission-issues-after-copying" class="table-of-contents__link toc-highlight">Permission issues after copying</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/transferring-files-within-the-unraid-server/index.html b/zh/legacy/FAQ/transferring-files-within-the-unraid-server/index.html index 36c9df1fc..b9adacdf9 100644 --- a/zh/legacy/FAQ/transferring-files-within-the-unraid-server/index.html +++ b/zh/legacy/FAQ/transferring-files-within-the-unraid-server/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -74,7 +74,7 @@ structure.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="wildcards">Wildcards<a href="#wildcards" class="hash-link" aria-label="Wildcards的直接链接" title="Wildcards的直接链接">​</a></h3><p>Wildcards are available as well. For example, if you want to copy all of the files from Disk 2 over to Disk 3, use the <strong>mv</strong> command like this:</p><p><code>mv /mnt/disk2/* /mnt/disk3</code></p><p>In this example, all files and folders on Disk 2 would be relocated over to Disk 3 in the exact same folder structure as it was on Disk 2.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/transferring-files-within-the-unraid-server.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Transferring Files from a Network Share to Unraid</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Understanding SMART Reports</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#midnight-commander---easy-to-use-gui-tool" class="table-of-contents__link toc-highlight">Midnight Commander - Easy to Use GUI Tool</a></li><li><a href="#move-files-overnight" class="table-of-contents__link toc-highlight">Move Files Overnight</a></li><li><a href="#unix-commands" class="table-of-contents__link toc-highlight">Unix Commands</a><ul><li><a href="#copying-files" class="table-of-contents__link toc-highlight">Copying files</a></li><li><a href="#moving-files" class="table-of-contents__link toc-highlight">Moving files</a></li><li><a href="#quotes" class="table-of-contents__link toc-highlight">Quotes</a></li><li><a href="#wildcards" class="table-of-contents__link toc-highlight">Wildcards</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/understanding-smart-reports/index.html b/zh/legacy/FAQ/understanding-smart-reports/index.html index e3ec77944..45672791d 100644 --- a/zh/legacy/FAQ/understanding-smart-reports/index.html +++ b/zh/legacy/FAQ/understanding-smart-reports/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -217,7 +217,7 @@ MyMain thread; an UnMENU plugin; after installing UnMENU, install this next; has a Smart View that provides color-coded SMART info for all drives</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/understanding-smart-reports.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/transferring-files-within-the-unraid-server/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Transferring Files Within the Unraid Server</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/legacy/FAQ/usb-flash-drive-preparation/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">USB Flash Drive Preparation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prologue" class="table-of-contents__link toc-highlight">Prologue</a></li><li><a href="#introduction-to-smart" class="table-of-contents__link toc-highlight">Introduction to SMART</a></li><li><a href="#smart-report-structure" class="table-of-contents__link toc-highlight">SMART report structure</a><ul><li><a href="#general-information-section" class="table-of-contents__link toc-highlight">General information section</a></li><li><a href="#smart-overall-health-test" class="table-of-contents__link toc-highlight">SMART overall health test</a></li><li><a href="#smart-parameters-section" class="table-of-contents__link toc-highlight">SMART parameters section</a></li><li><a href="#smart-attributes-section" class="table-of-contents__link toc-highlight">SMART attributes section</a></li><li><a href="#error-log-section" class="table-of-contents__link toc-highlight">Error Log section</a></li><li><a href="#test-results-section" class="table-of-contents__link toc-highlight">Test results section</a></li></ul></li><li><a href="#table-of-attributes" class="table-of-contents__link toc-highlight">Table of attributes</a><ul><li><a href="#1-raw_read_error_rate" class="table-of-contents__link toc-highlight">1 Raw_Read_Error_Rate</a></li><li><a href="#3-spin_up_time" class="table-of-contents__link toc-highlight">3 Spin_Up_Time</a></li><li><a href="#4-start_stop_count" class="table-of-contents__link toc-highlight">4 Start_Stop_Count</a></li><li><a href="#5-reallocated_sector_ct" class="table-of-contents__link toc-highlight">5 Reallocated_Sector_Ct</a></li><li><a href="#7-seek_error_rate" class="table-of-contents__link toc-highlight">7 Seek_Error_Rate</a></li><li><a href="#9-power_on_hours" class="table-of-contents__link toc-highlight">9 Power_On_Hours</a></li></ul></li><li><a href="#additional-info" class="table-of-contents__link toc-highlight">Additional info</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/legacy/FAQ/usb-flash-drive-preparation/index.html b/zh/legacy/FAQ/usb-flash-drive-preparation/index.html index 3bf068ac4..375f10486 100644 --- a/zh/legacy/FAQ/usb-flash-drive-preparation/index.html +++ b/zh/legacy/FAQ/usb-flash-drive-preparation/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -99,7 +99,7 @@ flash drive, check <a href="http://www.weethet.nl/english/hardware_bootfromusbstick.php" target="_blank" rel="noopener noreferrer">here</a>, near the bottom of the page. Also see -<a href="/zh/unraid-os/manual/getting-started.md/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="If the Flash will not boot, read over the following tips的直接链接" title="If the Flash will not boot, read over the following tips的直接链接">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about +<a href="/zh/unraid-os/manual/getting-started/#advanced-bios-configuration-guide">here</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="if-the-flash-will-not-boot-read-over-the-following-tips">If the Flash will not boot, read over the following tips<a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="hash-link" aria-label="If the Flash will not boot, read over the following tips的直接链接" title="If the Flash will not boot, read over the following tips的直接链接">​</a></h2><p>Unfortunately, some motherboards and BIOS versions are very picky about the geometry or configuration of the USB flash drive. Some combinations of motherboard, BIOS, and flash drive do not work, or only work after more advanced 'modifications'. The following tips are what users have @@ -165,7 +165,7 @@ instructions, using Ubuntu or similar, can be found here: <a href="http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/" target="_blank" rel="noopener noreferrer">http://www.pendrivelinux.com/booting-linux-from-usb-zip-on-older-systems/</a>.</p></li><li><p>And last of all, try upgrading the BIOS of your motherboard. A later BIOS may have better support for booting from USB.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/legacy/FAQ/usb-flash-drive-preparation.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/legacy/FAQ/understanding-smart-reports/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Understanding SMART Reports</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/contribute/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Contribute</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#usb-flash-drives" class="table-of-contents__link toc-highlight">USB Flash Drives</a></li><li><a href="#instructions" class="table-of-contents__link toc-highlight">Instructions</a><ul><li><a href="#windows-xp" class="table-of-contents__link toc-highlight">Windows XP</a></li><li><a href="#windows-vista-and-windows-7" class="table-of-contents__link toc-highlight">Windows Vista and Windows 7</a></li><li><a href="#macos-x" class="table-of-contents__link toc-highlight">MacOS X</a></li></ul></li><li><a href="#booting-unraid-server" class="table-of-contents__link toc-highlight">Booting Unraid Server</a></li><li><a href="#if-the-flash-will-not-boot-read-over-the-following-tips" class="table-of-contents__link toc-highlight">If the Flash will not boot, read over the following tips</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/search/index.html b/zh/search/index.html index 4958d1c9f..d0c04fbae 100644 --- a/zh/search/index.html +++ b/zh/search/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/search/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/search/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="container margin-vert--lg"><h1>在文档中搜索</h1><form class="row"><div class="col searchQueryColumn_RTkw col--12"><input type="search" name="q" class="searchQueryInput_u2C7" placeholder="在此输入搜索字词" aria-label="搜索" autocomplete="off" autofocus=""></div></form><div class="row"><div class="col col--8 searchResultsColumn_JPFH"></div><div class="col col--4 text--right searchLogoColumn_rJIA"><a target="_blank" rel="noopener noreferrer" href="https://www.algolia.com/" aria-label="通过 Algolia 搜索"><svg viewBox="0 0 168 24" class="algoliaLogo_rT1R"><g fill="none"><path class="algoliaLogoPathFill_WdUC" d="M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"></path><path fill="#5468FF" d="M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"></path><path fill="white" d="M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"></path></g></svg></a></div></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/sitemap.xml b/zh/sitemap.xml index c1021262c..2d4df4f46 100644 --- a/zh/sitemap.xml +++ b/zh/sitemap.xml @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/zh/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.unraid.net/zh/search/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/contribute/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/guides/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/legacy-documentation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/manual/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/release-notes/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/tutorial---basics/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/tutorial---extras/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/unraid-connect/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/unraid-os/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/category/zfs/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/connect/about/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/connect/help/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/connect/remote-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/intro/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/congratulations/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/create-a-blog-post/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/create-a-document/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/create-a-page/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-basics/markdown-features/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-extras/manage-docs-versions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/contribute-to-docs/tutorial-extras/translate-your-site/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/Articles/dual-boot-unraid-and-windows/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/Articles/expanding-windows-vm-vdisk-partitions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/Articles/upgrading-to-unraid-6/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/cache-disk/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/check-disk-filesystems/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/check-harddrive-speed/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/console/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/parity-swap-procedure/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/Parity/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/replacing-a-data-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/replacing-multiple-data-drives/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/setup-sleep-and-wake-on-lan/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/shrink-array/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/terminal-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/transferring-files-within-the-unraid-server/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/understanding-smart-reports/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/legacy/FAQ/usb-flash-drive-preparation/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/licensing-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/os-faq/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/redeem-license-activation-code/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/faq/unraid-account/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/guides/configuring-time-machine/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/guides/wol-setup-for-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/additional-settings/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/applications/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/changing-the-flash-device/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/docker-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/getting-started/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/getting-started/manual-install-method/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/multi-language/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/security/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/security/data-encryption/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/security/flash-drive/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/security/good-practices/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/security/secure-webgui-ssl/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/security/vpn/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/shares/create-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/shares/delete-a-share/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/shares/disk-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/shares/network-access/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/shares/user-shares/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/storage-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/troubleshooting/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/upgrade-instructions/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/users/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/vm-management/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/vm-support/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/what-is-unraid/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/manual/zfs/placeholder/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.10.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.4/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.11.5/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.12.3/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.9.0/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.9.1/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://docs.unraid.net/zh/unraid-os/release-notes/6.9.2/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> \ No newline at end of file diff --git a/zh/unraid-os/faq/licensing-faq/index.html b/zh/unraid-os/faq/licensing-faq/index.html index 4520071c1..49f0c2476 100644 --- a/zh/unraid-os/faq/licensing-faq/index.html +++ b/zh/unraid-os/faq/licensing-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -20,7 +20,7 @@ corner of the page.</p><p>You can also purchase a <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">license activation code directly from our website</a> and redeem the code for a license later when your server is up and running. The activation code will be on -your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="How to Redeem a License Activation Code的直接链接" title="How to Redeem a License Activation Code的直接链接">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/zh/unraid-os/manual/getting-started.md/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) +your receipt.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-redeem-a-license-activation-code">How to Redeem a License Activation Code<a href="#how-to-redeem-a-license-activation-code" class="hash-link" aria-label="How to Redeem a License Activation Code的直接链接" title="How to Redeem a License Activation Code的直接链接">​</a></h2><p>First, buy an activation code via <a href="https://unraid.net/pricing" target="_blank" rel="noopener noreferrer">our website.</a> Your unique activation code will be listed on your purchase receipt.</p><p>Next, follow our <a href="/zh/unraid-os/manual/getting-started/">Getting Started guide</a> to set up an Unraid server.</p><p>Once your server is up and running:</p><p>Login to your Unraid server's webgui. (<code>http://tower</code> or <code>http://tower.local</code> from Mac by default) For Unraid 6.10 and newer, Sign in to your Unraid.net account (or create one) from the top-right of the webgui and select "Redeem Activation Code" and enter the activation code to activate your license. For Unraid 6.9 and older, navigate to the Tools -> Registration page in the webGui and click "Purchase Key." Select the corresponding license you purchased via activation code and enter the activation code in the "Your Activation Code" box to complete the activation process. Your registration key will be emailed to you with instructions for installation! Note: Activation Codes are one-time use for generating your Unraid license keyfile. If you have any issues or questions with the above, there is also a walk through video: <a href="https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2" target="_blank" rel="noopener noreferrer">Activation Code Instructional Video</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-upgrade-my-unraid-license">How do I Upgrade my Unraid License?<a href="#how-do-i-upgrade-my-unraid-license" class="hash-link" aria-label="How do I Upgrade my Unraid License?的直接链接" title="How do I Upgrade my Unraid License?的直接链接">​</a></h2><p>If you want or need to upgrade your license to a higher tier, upgrades @@ -76,7 +76,7 @@ to them. There will also be an invoice download link upon completion of the checkout.</p><p>For bulk OEM/reseller pricing of 10 licenses or more, <a href="https://unraid.net/contact" target="_blank" rel="noopener noreferrer">please contact us</a>!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/licensing-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/faq/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">FAQ</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">OS</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#is-pricing-for-unraid-os-one-time-are-there-additional-fees-for-os-updates" class="table-of-contents__link toc-highlight">Is Pricing for Unraid OS "one time"? Are There Additional Fees for OS Updates?</a></li><li><a href="#how-do-i-purchase-unraid" class="table-of-contents__link toc-highlight">How do I Purchase Unraid?</a></li><li><a href="#how-to-redeem-a-license-activation-code" class="table-of-contents__link toc-highlight">How to Redeem a License Activation Code</a></li><li><a href="#how-do-i-upgrade-my-unraid-license" class="table-of-contents__link toc-highlight">How do I Upgrade my Unraid License?</a></li><li><a href="#what-does-unlimited-mean-for-trial-and-pro-licenses" class="table-of-contents__link toc-highlight">What does "Unlimited" mean for trial and Pro licenses?</a></li><li><a href="#what-happens-if-my-usb-fails-do-i-have-to-repurchase-a-license" class="table-of-contents__link toc-highlight">What Happens if my USB Fails? Do I Have to Repurchase a License?</a></li><li><a href="#how-do-i-manually-install-my-license-keyfile-to-my-usb-flash" class="table-of-contents__link toc-highlight">How do I Manually Install my License keyfile to my USB Flash?</a></li><li><a href="#im-getting-an-error-registering-my-flash-device-----is-already-registered-to-another-user-what-do-i-do" class="table-of-contents__link toc-highlight">I'm getting an error registering my flash device: '####-####-####-#############' is already registered to another user. What do I do?</a></li><li><a href="#how-do-i-determine-what-registration-type-basic-plus-or-pro-i-have" class="table-of-contents__link toc-highlight">How do I determine what registration type (Basic, Plus, or Pro) I have?</a></li><li><a href="#unraid-os-trial" class="table-of-contents__link toc-highlight">Unraid OS Trial</a><ul><li><a href="#can-i-transfer-my-trial-key-to-a-new-flash-device" class="table-of-contents__link toc-highlight">Can I Transfer my Trial Key to a New Flash Device?</a></li><li><a href="#how-do-i-extend-my-unraid-trial" class="table-of-contents__link toc-highlight">How Do I Extend My Unraid Trial?</a></li></ul></li><li><a href="#im-a-reselleroem-that-needs-to-purchase-a-license-on-behalf-of-my-customer-how-do-i-do-that" class="table-of-contents__link toc-highlight">I'm a Reseller/OEM that needs to Purchase a License on Behalf of my Customer: How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/faq/os-faq/index.html b/zh/unraid-os/faq/os-faq/index.html index c7bf7d29d..77a38b361 100644 --- a/zh/unraid-os/faq/os-faq/index.html +++ b/zh/unraid-os/faq/os-faq/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -43,12 +43,7 @@ able to simply re-assign them all and start the array.</p><p>You may need to reconfigure your shares, users, and other system settings, but your data should be intact.</p><p>If you cannot remember your drive assignments, <a href="https://forums.unraid.net/forum/55-general-support/" target="_blank" rel="noopener noreferrer">please post on the forum for further assistance (under General -Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="What Should I do if I have Forgotten my Root Password?的直接链接" title="What Should I do if I have Forgotten my Root Password?的直接链接">​</a></h2><p>To reset your <a href="/zh/unraid-os/manual/getting-started.md/#connecting-to-the-unraid-webgui">root -password</a>:</p><ol><li>Shutdown your server.</li><li>Plug your USB flash into a laptop or another computer.</li><li>Open the USB folder and delete the files "config/shadow" and -"config/smbpasswd". <em>(DO NOT delete "config/passwd).</em> This will -reset all user passwords, including the root user to blank.</li><li>Now, safely eject your USB and reboot it on your Unraid server and -you’re in. You can then set a new password in the Users tab of the -Unraid webgui.</li></ol><p><em>Important: this process only works for user passwords. If you encrypt +Support)</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-i-do-if-i-have-forgotten-my-root-password">What Should I do if I have Forgotten my Root Password?<a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="hash-link" aria-label="What Should I do if I have Forgotten my Root Password?的直接链接" title="What Should I do if I have Forgotten my Root Password?的直接链接">​</a></h2><p>See <a href="/zh/unraid-os/manual/troubleshooting/#lost-root-password">Lost Root Password</a></p><p><em>Important: this process only works for user passwords. If you encrypt your drives and forget this password, unfortunately you are hosed. There is no way for Lime Technology or anyone to recover this password. Please remember it or write it down in a secure, locked place!</em></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?<a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="hash-link" aria-label="How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?的直接链接" title="How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?的直接链接">​</a></h2><ol><li>Ensure there is no data on the system that you want or need.</li><li>Stop the array and shut down the server.</li><li>Remove the USB flash device.</li><li>Using a Windows or Mac computer, reformat the flash using the USB @@ -114,7 +109,7 @@ each time to perform the swap and rebuilds. This will ensure the devices are not written during the process. At the end of the process, the original storage device should be intact.</p><p>Also highly recommend downloading flash backup: Main/Flash/Flash Backup</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/os-faq.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/faq/licensing-faq/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Licensing</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">购买并收到激活码后如何兑换您的激活码</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#i-need-help-with-a-build--system-configuration-where-do-i-go" class="table-of-contents__link toc-highlight">I Need Help with a Build / System Configuration. Where do I go?</a></li><li><a href="#does-unraid-support-hardware-based-raid-controllers" class="table-of-contents__link toc-highlight">Does Unraid Support Hardware-based RAID Controllers?</a></li><li><a href="#can-i-use-a-hasp-key-within-a-vm-on-unraid-how-does-that-work-with-multiple-vms" class="table-of-contents__link toc-highlight">Can I use a HASP Key within a VM on Unraid? How Does that Work with Multiple VMs?</a></li><li><a href="#my-usb-flash-has-failed-and-i-dont-have-a-backup-how-do-i-restore-my-configuration" class="table-of-contents__link toc-highlight">My USB Flash Has Failed and I Don't Have a Backup. How do I Restore my Configuration?</a></li><li><a href="#what-should-i-do-if-i-have-forgotten-my-root-password" class="table-of-contents__link toc-highlight">What Should I do if I have Forgotten my Root Password?</a></li><li><a href="#how-do-i-completely-start-unraid-os-from-scratch-how-do-i-wipe-my-existing-configuration--filesystems" class="table-of-contents__link toc-highlight">How do I completely start Unraid OS from scratch? How do I wipe my existing configuration / filesystems?</a></li><li><a href="#whenever-i-shutdown-my-windows-10-vm-with-my-amd-gpu-assigned-if-i-try-to-restart-it-it-doesnt-work-what-do-i-do" class="table-of-contents__link toc-highlight">Whenever I Shutdown my Windows 10 VM with my AMD GPU Assigned, if I try to restart it, it doesn't work. What do I do?</a></li><li><a href="#how-do-i-passthrough-my-primary-gpu-to-a-vm-when-my-cpu-doesnt-have-an-integrated-graphics-device" class="table-of-contents__link toc-highlight">How do I passthrough my primary GPU to a VM when my CPU doesn't have an integrated graphics device?</a></li><li><a href="#whats-the-best-way-to-add-more-storage-to-a-system-above-what-the-built-in-controller-supports" class="table-of-contents__link toc-highlight">What's the best way to add more storage to a system above what the built-in controller supports?</a></li><li><a href="#does-unraid-support-various-raid-types-such-as-raid15610" class="table-of-contents__link toc-highlight">Does Unraid support various RAID types such as RAID1/5/6/10?</a></li><li><a href="#my-system-is-crashing-but-my-logs-dont-contain-the-event-what-do-i-do-to-obtain-support" class="table-of-contents__link toc-highlight">My system is crashing but my logs don't contain the event. What do I do to obtain support?</a></li><li><a href="#is-there-any-way-to-disable-the-br0-bridge" class="table-of-contents__link toc-highlight">Is there any way to disable the br0 bridge?</a></li><li><a href="#how-do-i-enable-uefi-boot-mode-if-i-configured-my-flash-device-using-the-manual-method" class="table-of-contents__link toc-highlight">How do I enable UEFI boot mode if I configured my flash device using the manual method?</a></li><li><a href="#im-having-problems-passing-through-my-rtx-class-gpu-to-a-virtual-machine" class="table-of-contents__link toc-highlight">I'm having problems passing through my RTX-class GPU to a virtual machine</a></li><li><a href="#does-unraid-have-a-allocation-feature-that-remembers-bad-sectors-on-drives-to-prevent-writes-to-them" class="table-of-contents__link toc-highlight">Does Unraid have a allocation feature that remembers bad sectors on drives to prevent writes to them?</a></li><li><a href="#i-currently-have-an-array-of-devices-that-are-formatted-with-an-mbr-style-partition-table-and-i-want-to-convert-to-gpt-how-do-i-do-that" class="table-of-contents__link toc-highlight">I currently have an array of devices that are formatted with an MBR-style partition table and I want to convert to GPT. How do I do that?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/faq/redeem-license-activation-code/index.html b/zh/unraid-os/faq/redeem-license-activation-code/index.html index 44b283305..53dd77368 100644 --- a/zh/unraid-os/faq/redeem-license-activation-code/index.html +++ b/zh/unraid-os/faq/redeem-license-activation-code/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -24,7 +24,7 @@ (工具)-<!-- -->><!-- --> Registration page (注册页面) 并单击"Purchase Key.(购买密钥)"。</li><li>接下来,选择您购买的对应License,并输入激活码 以完成激活过程。 我们将通过电子邮件把注册密钥发送给您,其中也包含安装说明!</li></ol><p>谢谢</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/faq/redeem-license-activation-code.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/faq/os-faq/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">OS</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/faq/unraid-account/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Unraid Account</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/faq/unraid-account/index.html b/zh/unraid-os/faq/unraid-account/index.html index fab93d8dc..929a72bc8 100644 --- a/zh/unraid-os/faq/unraid-account/index.html +++ b/zh/unraid-os/faq/unraid-account/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -21,7 +21,7 @@ <a href="/zh/connect/about/">Unraid Connect</a>. This account is <em>not the same</em> as your server's root password that you use to login to the Unraid webgui.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/faq/unraid-account.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/faq/redeem-license-activation-code/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">购买并收到激活码后如何兑换您的激活码</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/guides/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Guides</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-an-unraidnet-account" class="table-of-contents__link toc-highlight">What is an Unraid.net Account?</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/guides/configuring-time-machine/index.html b/zh/unraid-os/guides/configuring-time-machine/index.html index 2fff1c60a..184b60dfd 100644 --- a/zh/unraid-os/guides/configuring-time-machine/index.html +++ b/zh/unraid-os/guides/configuring-time-machine/index.html @@ -9,9 +9,9 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> @@ -59,7 +59,7 @@ there, simply follow the instructions above!</p><p>For more info on Time Machine shares, be sure to also check out Space Invader One's excellent video on <a href="https://www.youtube.com/watch?v=5J955nNIdo0&feature=youtu.be" target="_blank" rel="noopener noreferrer">Unraid Shares and MacOS!</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/configuring-time-machine.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/guides/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Guides</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/guides/wol-setup-for-unraid/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">How To Setup Wake On LAN (WOL) for UNRAID</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#guide-setting-up-a-time-machine-share-on-your-unraid-server" class="table-of-contents__link toc-highlight">Guide: Setting up a Time Machine Share on your Unraid Server</a></li><li><a href="#create-a-time-machine-backup-on-your-unraid-server" class="table-of-contents__link toc-highlight">Create a Time Machine Backup on your Unraid Server</a></li><li><a href="#unraid-and-time-machine-setup" class="table-of-contents__link toc-highlight">Unraid and Time Machine Setup</a></li><li><a href="#creating-multiple-time-machine-shares-for-different-peoplemacs" class="table-of-contents__link toc-highlight">Creating Multiple Time Machine Shares for Different People/Macs</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/guides/wol-setup-for-unraid/index.html b/zh/unraid-os/guides/wol-setup-for-unraid/index.html index b9ef81d8d..8657d27fd 100644 --- a/zh/unraid-os/guides/wol-setup-for-unraid/index.html +++ b/zh/unraid-os/guides/wol-setup-for-unraid/index.html @@ -9,14 +9,14 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/guides/wol-setup-for-unraid/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/guides/configuring-time-machine/">Apple Time Machine</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/guides/wol-setup-for-unraid/">How To Setup Wake On LAN (WOL) for UNRAID</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/guides/"><span itemprop="name">Guides</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">How To Setup Wake On LAN (WOL) for UNRAID</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>How To Setup Wake On LAN (WOL) for UNRAID</h1><p>(assuming onboard NIC and WOL activated in motherboard's BIOS)</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="put-to-sleep">Put to sleep<a href="#put-to-sleep" class="hash-link" aria-label="Put to sleep的直接链接" title="Put to sleep的直接链接">​</a></h2><ol><li>Webterminal or SSH into server</li><li>Type <code>ifconfig</code> and note IP-address and MAC-Address (ether) of used NIC</li><li>Type <code>ethtool -s eth0 wol g</code></li><li>Type <code>echo -n mem > /sys/power/state</code></li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wake-up-using">Wake up using<a href="#wake-up-using" class="hash-link" aria-label="Wake up using的直接链接" title="Wake up using的直接链接">​</a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="macos--linux--windows">MacOS / Linux / Windows<a href="#macos--linux--windows" class="hash-link" aria-label="MacOS / Linux / Windows的直接链接" title="MacOS / Linux / Windows的直接链接">​</a></h3><ol><li>Download "MiniWOL2" from <a href="https://www.tweaking4all.com/home-theatre/miniwol2/" target="_blank" rel="noopener noreferrer">https://www.tweaking4all.com/home-theatre/miniwol2/</a> and install</li><li>Click miniicon, push "Add" button and name the device to wake (Alias in Menu)</li><li>Set "IPv4 Address" (manually or select from ARP List) and "MAC-Address" (manually or click on 'detect') in appropriate fields</li><li>Set "Broadcast" 255.255.255.255</li><li>Push "Test" to wake-up device (needs to be in sleep mode: see above)</li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="windows-alternative">Windows: (ALTERNATIVE)<a href="#windows-alternative" class="hash-link" aria-label="Windows: (ALTERNATIVE)的直接链接" title="Windows: (ALTERNATIVE)的直接链接">​</a></h3><ol><li>Download "wolcmd.exe" from <a href="https://www.depicus.com/wake-on-lan/wake-on-lan-cmd" target="_blank" rel="noopener noreferrer">https://www.depicus.com/wake-on-lan/wake-on-lan-cmd</a> and unpack</li><li>Open command line prompt and cd to dowload directory</li><li>Type <code>wolcmd.exe <ether> <ip-dest> 255.255.255.255</code></li></ol><h3 class="anchor anchorWithStickyNavbar_LWe7" id="linux-alternative">Linux: (ALTERNATIVE)<a href="#linux-alternative" class="hash-link" aria-label="Linux: (ALTERNATIVE)的直接链接" title="Linux: (ALTERNATIVE)的直接链接">​</a></h3><ol><li>Type <code>wakeonlan <MAC-Address></code> OR</li><li>Type <code>wol <MAC-Address></code></li></ol><p>For Guide assistance, see: <a href="https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/" target="_blank" rel="noopener noreferrer">https://forums.unraid.net/topic/103531-guide-setup-wol-for-unraid/</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/guides/wol-setup-for-unraid.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/guides/configuring-time-machine/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Apple Time Machine</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/manual/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Manual</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#put-to-sleep" class="table-of-contents__link toc-highlight">Put to sleep</a></li><li><a href="#wake-up-using" class="table-of-contents__link toc-highlight">Wake up using</a><ul><li><a href="#macos--linux--windows" class="table-of-contents__link toc-highlight">MacOS / Linux / Windows</a></li><li><a href="#windows-alternative" class="table-of-contents__link toc-highlight">Windows: (ALTERNATIVE)</a></li><li><a href="#linux-alternative" class="table-of-contents__link toc-highlight">Linux: (ALTERNATIVE)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/additional-settings/index.html b/zh/unraid-os/manual/additional-settings/index.html index 1465bd70e..fc83f3b01 100644 --- a/zh/unraid-os/manual/additional-settings/index.html +++ b/zh/unraid-os/manual/additional-settings/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/additional-settings/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Additional Settings</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Additional Settings</h1><p>While Unraid is configured to work automatically, you may wish to further refine your setup by customizing your IP address, hostname, disk tunables, and other settings. This section goes over the various settings you can configure from the Unraid webGui. All settings controls @@ -65,7 +65,7 @@ workgroup, or even join an active directory domain.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="ftp-file-transfer-protocol">FTP (File Transfer Protocol)<a href="#ftp-file-transfer-protocol" class="hash-link" aria-label="FTP (File Transfer Protocol)的直接链接" title="FTP (File Transfer Protocol)的直接链接">​</a></h2><p>Users can connect via FTP if they are added to the <strong>FTP user(s)</strong> field on this page. If no users are added, the FTP service will not be started.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="syslog">Syslog<a href="#syslog" class="hash-link" aria-label="Syslog的直接链接" title="Syslog的直接链接">​</a></h2><p>Users can set up logging of the syslog to permanent storage</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="wireguard">WireGuard<a href="#wireguard" class="hash-link" aria-label="WireGuard的直接链接" title="WireGuard的直接链接">​</a></h2><p>WireGuard VPN Server</p><p>Users can set up a VPN connection using -<a href="/zh/unraid-os/manual/security/#wireguard%22">WireGuard</a> for secure connections +<a href="/zh/unraid-os/manual/additional-settings/security.md/#wireguard%22">WireGuard</a> for secure connections to/from the internet</p><p><a href="https://www.wireguard.com/" target="_blank" rel="noopener noreferrer">"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="confirmations">Confirmations<a href="#confirmations" class="hash-link" aria-label="Confirmations的直接链接" title="Confirmations的直接链接">​</a></h2><p>From here, you can disable the need for confirmations to perform various tasks.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="display-settings">Display Settings<a href="#display-settings" class="hash-link" aria-label="Display Settings的直接链接" title="Display Settings的直接链接">​</a></h2><p>Customize the appearance of the Unraid webGui from this page. This includes adjusting the date and time format, number format, toggles for @@ -121,7 +121,7 @@ <strong>Scheduler</strong> settings page of the Unraid GUI. Typically they are related to enhancing/tuning the <strong>Parity Check</strong> or <strong>Mover</strong> functionality although this is not mandated.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/additional-settings.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Troubleshooting</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/changing-the-flash-device/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Changing the Flash Device</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#cpu-isolation" class="table-of-contents__link toc-highlight">CPU Isolation</a></li><li><a href="#date--time" class="table-of-contents__link toc-highlight">Date & Time</a></li><li><a href="#disk-settings" class="table-of-contents__link toc-highlight">Disk Settings</a></li><li><a href="#docker" class="table-of-contents__link toc-highlight">Docker</a></li><li><a href="#identification" class="table-of-contents__link toc-highlight">Identification</a></li><li><a href="#network-settings" class="table-of-contents__link toc-highlight">Network Settings</a></li><li><a href="#global-share-settings" class="table-of-contents__link toc-highlight">Global Share Settings</a></li><li><a href="#ups-settings" class="table-of-contents__link toc-highlight">UPS Settings</a></li><li><a href="#vm-manager" class="table-of-contents__link toc-highlight">VM Manager</a></li><li><a href="#afp-apple-file-protocol" class="table-of-contents__link toc-highlight">AFP (Apple File Protocol)</a></li><li><a href="#nfs-network-file-system" class="table-of-contents__link toc-highlight">NFS (Network File System)</a></li><li><a href="#smb-server-message-block" class="table-of-contents__link toc-highlight">SMB (Server Message Block)</a></li><li><a href="#ftp-file-transfer-protocol" class="table-of-contents__link toc-highlight">FTP (File Transfer Protocol)</a></li><li><a href="#syslog" class="table-of-contents__link toc-highlight">Syslog</a></li><li><a href="#wireguard" class="table-of-contents__link toc-highlight">WireGuard</a></li><li><a href="#confirmations" class="table-of-contents__link toc-highlight">Confirmations</a></li><li><a href="#display-settings" class="table-of-contents__link toc-highlight">Display Settings</a></li><li><a href="#notifications-settings" class="table-of-contents__link toc-highlight">Notifications Settings</a></li><li><a href="#scheduler" class="table-of-contents__link toc-highlight">Scheduler</a><ul><li><a href="#parity-checks-read-checks" class="table-of-contents__link toc-highlight">Parity Checks (Read Checks)</a><ul><li><a href="#notes" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#mover" class="table-of-contents__link toc-highlight">Mover</a><ul><li><a href="#notes-1" class="table-of-contents__link toc-highlight">Notes</a></li></ul></li><li><a href="#other" class="table-of-contents__link toc-highlight">Other</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/applications/index.html b/zh/unraid-os/manual/applications/index.html index f0b7d4c33..a9bc3e207 100644 --- a/zh/unraid-os/manual/applications/index.html +++ b/zh/unraid-os/manual/applications/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/applications/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Community Applications</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Community Applications</h1><p>This section discusses running applications on an Unraid server or extending the base capabilities. One of the great strengths of Unraid is the ability for it to easily be made to function as more than a basic NAS system.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Overview的直接链接" title="Overview的直接链接">​</a></h2><p>A number of mechanisms are provided by which the capability of an Unraid @@ -236,8 +236,8 @@ Unraid. The port to be used for such clients is displayed in the Unraid GUI on the VM tab when a VM is running. Using such an alternative client can work in cases where the NoVNC client does -not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/multi-language/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Multi-Language Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +not work correctly for some reason.</li></ul></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/applications.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/vm-management/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Managing VMs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/security/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Security</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#overview" class="table-of-contents__link toc-highlight">Overview</a></li><li><a href="#community-applications-ca" class="table-of-contents__link toc-highlight">Community Applications (CA)</a><ul><li><a href="#finding-applications" class="table-of-contents__link toc-highlight">Finding applications</a></li><li><a href="#installing-applications" class="table-of-contents__link toc-highlight">Installing Applications</a></li><li><a href="#removing-applications--showing-installed-applications" class="table-of-contents__link toc-highlight">Removing Applications / Showing Installed Applications</a></li><li><a href="#re-installing-applications" class="table-of-contents__link toc-highlight">Re-Installing Applications</a></li><li><a href="#support-for-applications" class="table-of-contents__link toc-highlight">Support for applications</a></li></ul></li><li><a href="#plugins" class="table-of-contents__link toc-highlight">Plugins</a></li><li><a href="#docker-containers" class="table-of-contents__link toc-highlight">Docker Containers</a></li><li><a href="#virtual-machines" class="table-of-contents__link toc-highlight">Virtual Machines</a><ul><li><a href="#technology-stack" class="table-of-contents__link toc-highlight">Technology Stack</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/changing-the-flash-device/index.html b/zh/unraid-os/manual/changing-the-flash-device/index.html index 2b7a165f4..db1e134d3 100644 --- a/zh/unraid-os/manual/changing-the-flash-device/index.html +++ b/zh/unraid-os/manual/changing-the-flash-device/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/changing-the-flash-device/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Changing the Flash Device</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Changing the Flash Device</h1><p>There are two ways to swap out your USB flash device. If you are using a PC or Mac, you should use the <a href="https://unraid.net/download" target="_blank" rel="noopener noreferrer">USB Flash Creator tool</a> for the easiest and most streamlined experience.</p><p>Alternatively, if you are using a Linux system or if the USB Flash @@ -147,7 +147,7 @@ include/exclude then you will need to look at the contents of the individual data drives to make sure these are as you want them (and correct them if not).</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/changing-the-flash-device.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/additional-settings/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Additional Settings</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/category/getting-started/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Getting Started</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-replace-your-usb-flash-boot-device" class="table-of-contents__link toc-highlight">Why replace your USB Flash boot device?</a></li><li><a href="#what-if-i-cant-backup-my-device" class="table-of-contents__link toc-highlight">What if I can't backup my device?</a></li><li><a href="#changing-a-flash-device-before-purchasing" class="table-of-contents__link toc-highlight">Changing a Flash Device Before Purchasing</a></li><li><a href="#using-the-flash-creator" class="table-of-contents__link toc-highlight">Using the Flash Creator</a></li><li><a href="#manual-method" class="table-of-contents__link toc-highlight">Manual Method</a></li><li><a href="#notes-about-replacing-your-registration-key" class="table-of-contents__link toc-highlight">Notes About Replacing your Registration Key</a></li><li><a href="#warning-on-sandisk-brand-usbs" class="table-of-contents__link toc-highlight">Warning on Sandisk Brand USBs</a></li><li><a href="#what-to-do-if-you-have-no-backup-and-do-not-know-your-disk-assignments" class="table-of-contents__link toc-highlight">What to do if you have no backup and do not know your disk assignments</a><ul><li><a href="#option-1" class="table-of-contents__link toc-highlight">Option 1</a></li><li><a href="#option-2-if-you-have-the-unassigned-devices-plugin-installed" class="table-of-contents__link toc-highlight">Option 2 If you have the Unassigned Devices plugin installed</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/docker-management/index.html b/zh/unraid-os/manual/docker-management/index.html index 0fb2986b6..8004467da 100644 --- a/zh/unraid-os/manual/docker-management/index.html +++ b/zh/unraid-os/manual/docker-management/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/docker-management/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Docker Management</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Docker Management</h1><p>Docker is a technology that allows users to provide each application with its own isolated operating Linux environment, isolating compatibility or coexistence conflicts with other applications. If you want more information on docker and its underlying technology than is @@ -246,8 +246,8 @@ useful for testing out alternate versions before upgrading.</li><li>Click the <strong>Advanced View</strong> toggle on the top right when viewing the Docker page or adding applications to see additional configuration options.</li><li>Learn more about Docker containers from our <a href="https://forums.unraid.net/forum/47-docker-containers/" target="_blank" rel="noopener noreferrer">helpful user -community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/shares/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Shares</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +community</a>.</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/docker-management.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/storage-management/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Storage Management</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/vm-support/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">VM Support</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#concepts-in-unraid-docker-implementation" class="table-of-contents__link toc-highlight">Concepts in Unraid Docker Implementation</a><ul><li><a href="#appdata" class="table-of-contents__link toc-highlight">appdata</a></li><li><a href="#templates" class="table-of-contents__link toc-highlight">Templates</a></li><li><a href="#container-binaries" class="table-of-contents__link toc-highlight">Container binaries</a></li></ul></li><li><a href="#adding-applications-as-containers" class="table-of-contents__link toc-highlight">Adding Applications as Containers</a><ul><li><a href="#community-applications" class="table-of-contents__link toc-highlight">Community Applications</a></li><li><a href="#configuring-a-container" class="table-of-contents__link toc-highlight">Configuring a container</a><ul><li><a href="#network-type" class="table-of-contents__link toc-highlight">Network Type</a></li><li><a href="#volume-mappings" class="table-of-contents__link toc-highlight">Volume Mappings</a></li><li><a href="#port-mappings" class="table-of-contents__link toc-highlight">Port Mappings</a></li><li><a href="#environment-variables" class="table-of-contents__link toc-highlight">Environment Variables</a></li></ul></li><li><a href="#container-creation-process" class="table-of-contents__link toc-highlight">Container Creation Process</a></li></ul></li><li><a href="#controlling-container-auto-start" class="table-of-contents__link toc-highlight">Controlling container auto-start</a></li><li><a href="#controlling-your-application" class="table-of-contents__link toc-highlight">Controlling Your Application</a></li><li><a href="#accessing-a-volume-mapping-inside-a-container" class="table-of-contents__link toc-highlight">Accessing a Volume Mapping Inside a Container</a></li><li><a href="#re-create-the-docker-image-file" class="table-of-contents__link toc-highlight">Re-Create the Docker image file</a></li><li><a href="#re-installing-docker-applications" class="table-of-contents__link toc-highlight">Re-Installing Docker Applications</a></li><li><a href="#docker-custom-networks" class="table-of-contents__link toc-highlight">Docker Custom Networks</a></li><li><a href="#starting-and-stopping-docker-containers-on-a-schedule" class="table-of-contents__link toc-highlight">Starting and stopping Docker containers on a schedule</a><ul><li><a href="#command-to-start-a-docker" class="table-of-contents__link toc-highlight">Command to start a docker</a><ul><li><a href="#command-to-stop-a-docker" class="table-of-contents__link toc-highlight">Command to stop a docker</a></li></ul></li></ul></li><li><a href="#other-tips-and-tricks" class="table-of-contents__link toc-highlight">Other Tips and Tricks</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/getting-started/index.html b/zh/unraid-os/manual/getting-started/index.html index d4c475813..0e786848e 100644 --- a/zh/unraid-os/manual/getting-started/index.html +++ b/zh/unraid-os/manual/getting-started/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Getting Started</span><meta itemprop="position" content="4"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Getting Started</h1><p>In this guide, we will be covering how to prepare your flash device, boot the system, and configure your first array. The entire process should take less than 15 minutes.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Prerequisites的直接链接" title="Prerequisites的直接链接">​</a></h2><p>Before we begin:</p><ul><li>You should have your server assembled and connected via power and Ethernet.</li><li>You should have a monitor and keyboard attached for the initial @@ -113,7 +113,7 @@ field.</p><p>It is <strong>strongly</strong> recommended that you make use of this feature as the information available via that route is likely to be more extensive and up-to-date than any documentation.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="security-best-practices">Security Best Practices<a href="#security-best-practices" class="hash-link" aria-label="Security Best Practices的直接链接" title="Security Best Practices的直接链接">​</a></h3><p>Your Unraid server is likely to end up containing data that is valuable -to you so it can be a good idea to review the <a href="/zh/unraid-os/manual/security/">Security Good +to you so it can be a good idea to review the <a href="/zh/unraid-os/manual/security.md/">Security Good Practices</a> part of the documentation to ensure you are not doing something that may leave your system open to attack while leaving your valuable data at risk.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="advanced-bios-configuration-guide">Advanced BIOS Configuration Guide<a href="#advanced-bios-configuration-guide" class="hash-link" aria-label="Advanced BIOS Configuration Guide的直接链接" title="Advanced BIOS Configuration Guide的直接链接">​</a></h2><p><img loading="lazy" src="/zh/assets/images/Booting-9977af57bbf1e65a60d9b3af01cece07.jpg" width="300" height="187" class="img_ev3q"> @@ -207,7 +207,7 @@ can click for a 15 day extension. You can do this a total of two times before you must decide if you would like to purchase Unraid or not.</p><p><em>Note: You cannot change the USB flash device for Unraid Trials if you wish to continue where you left off.</em></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/getting-started.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/category/getting-started/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/getting-started/manual-install-method/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Manual Install Method</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#quick-install-guide" class="table-of-contents__link toc-highlight">Quick Install Guide</a></li><li><a href="#initial-setup" class="table-of-contents__link toc-highlight">Initial Setup</a><ul><li><a href="#connecting-to-the-unraid-webgui" class="table-of-contents__link toc-highlight">Connecting to the Unraid webGui</a></li></ul></li><li><a href="#setting-a-root-password" class="table-of-contents__link toc-highlight">Setting a Root Password</a><ul><li><a href="#registering-and-installing-your-key" class="table-of-contents__link toc-highlight">Registering and Installing Your Key</a></li></ul></li><li><a href="#utilizing-unraid-connect" class="table-of-contents__link toc-highlight">Utilizing Unraid Connect</a></li><li><a href="#assigning-devices-to-the-array-and-pools" class="table-of-contents__link toc-highlight">Assigning Devices to the Array and Pool(s)</a></li><li><a href="#starting-the-array-and-formatting-your-devices" class="table-of-contents__link toc-highlight">Starting the Array and Formatting Your Devices</a></li><li><a href="#stopping-array-shutting-down-and-rebooting" class="table-of-contents__link toc-highlight">Stopping Array, Shutting Down, and Rebooting</a></li><li><a href="#important-considerations" class="table-of-contents__link toc-highlight">Important Considerations</a><ul><li><a href="#backing-up-the-flash-drive" class="table-of-contents__link toc-highlight">Backing Up the Flash Drive</a></li><li><a href="#using-the-built-in-help" class="table-of-contents__link toc-highlight">Using the built-in help</a></li><li><a href="#security-best-practices" class="table-of-contents__link toc-highlight">Security Best Practices</a></li></ul></li><li><a href="#advanced-bios-configuration-guide" class="table-of-contents__link toc-highlight">Advanced BIOS Configuration Guide</a></li><li><a href="#boot-mode-selector-syslinux" class="table-of-contents__link toc-highlight">Boot Mode Selector (Syslinux)</a></li><li><a href="#privacy" class="table-of-contents__link toc-highlight">Privacy</a></li><li><a href="#faq" class="table-of-contents__link toc-highlight">F.A.Q</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/getting-started/manual-install-method/index.html b/zh/unraid-os/manual/getting-started/manual-install-method/index.html index dda406edc..1aa789585 100644 --- a/zh/unraid-os/manual/getting-started/manual-install-method/index.html +++ b/zh/unraid-os/manual/getting-started/manual-install-method/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Install Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Install Method</h1><p>If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/getting-started/manual-install-method/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/getting-started/">Getting Started</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/getting-started/manual-install-method/">Manual Install Method</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/getting-started/"><span itemprop="name">Getting Started</span></a><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Manual Install Method</span><meta itemprop="position" content="4"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Manual Install Method</h1><p>If for some reason the USB Flash Creator tool cannot be used, or your USB flash device is not detected, it is possible to manually format and prepare a bootable USB flash device. <strong>Note: this method only works for devices 32GB and <em>smaller</em>.</strong></p><ul><li>Plug the USB flash device into your Mac or PC.</li><li>Format the device using the FAT32 file system. It must <strong>not</strong> be ex-FAT or NTFS. If your drive is larger than 32GB then you need to use @@ -29,8 +29,8 @@ admin password when prompted.</li></ul></li><li><strong>Linux</strong>:<ul><li>copy <strong>make_bootable_linux</strong> file to hard drive</li><li>unmount (not eject) USB drive</li><li>run the following command from wherever you unpacked it to on your Linux system:</li><li>sudo bash ./make_bootable_linux</li></ul></li></ul></li></ul><p><strong>NOTE</strong>: during the process of running this script, the flash device may seem to disappear and reappear on your workstation a few times – -this is expected behavior.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/security/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Security</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +this is expected behavior.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/getting-started/manual-install-method.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/getting-started/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/tools/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Tools</div></a></nav></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/multi-language/index.html b/zh/unraid-os/manual/multi-language/index.html index eb8a09898..cbc414e49 100644 --- a/zh/unraid-os/manual/multi-language/index.html +++ b/zh/unraid-os/manual/multi-language/index.html @@ -9,13 +9,13 @@ <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-CZENQ1ZPEH",{anonymize_ip:!0})</script> -<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.5dd3a1e0.css"> -<link rel="preload" href="/zh/assets/js/runtime~main.cce2c79a.js" as="script"> -<link rel="preload" href="/zh/assets/js/main.54b490a9.js" as="script"> +<link rel="search" type="application/opensearchdescription+xml" title="Unraid Docs" href="/zh/opensearch.xml"><link rel="stylesheet" href="/zh/assets/css/styles.2c43762e.css"> +<link rel="preload" href="/zh/assets/js/runtime~main.0878d8ef.js" as="script"> +<link rel="preload" href="/zh/assets/js/main.818d5412.js" as="script"> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?t("light"):t("dark")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> -<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Introduction的直接链接" title="Introduction的直接链接">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> +<div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="announcementBar_mb4j" style="background-color:#ff8c2f;color:#fff" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">Welcome to the new Unraid Documentation! 🚧 Currently Under Construction 🚧 <a href="https://legacy.wiki.unraid.net" target="_blank">Legacy Wiki</a> </div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA" style="width:30px"><img src="/zh/img/un-mark-gradient.svg" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU" style="width:30px"></div><b class="navbar__title text--truncate">Unraid Docs</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">More</a><ul class="dropdown__menu"><li><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Unraid Home<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="dropdown__link">Forums<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="dropdown__link">Docs Github<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>中文</a><ul class="dropdown__menu"><li><a href="/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh">中文</a></li><li><a href="/es/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="es">Español</a></li><li><a href="/fr/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="fr">Français</a></li><li><a href="/de/unraid-os/manual/multi-language/" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="de">Deutsch</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为暗黑模式)" aria-label="切换浅色/暗黑模式(当前为暗黑模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh/">Home</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/category/unraid-os/">Unraid OS</a><button aria-label="打开/收起侧边栏菜单「Unraid OS」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/release-notes/">Release Notes</a><button aria-label="打开/收起侧边栏菜单「Release Notes」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/faq/">FAQ</a><button aria-label="打开/收起侧边栏菜单「FAQ」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/guides/">Guides</a><button aria-label="打开/收起侧边栏菜单「Guides」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" tabindex="0" href="/zh/category/manual/">Manual</a><button aria-label="打开/收起侧边栏菜单「Manual」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/shares/">Shares</a><button aria-label="打开/收起侧边栏菜单「Shares」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/what-is-unraid/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/storage-management/">Storage Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/docker-management/">Docker Management</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-support/">VM Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/vm-management/">Managing VMs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/applications/">Community Applications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/unraid-os/manual/security/">Security</a><button aria-label="打开/收起侧边栏菜单「Security」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/unraid-os/manual/multi-language/">Multi-Language Support</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/troubleshooting/">Troubleshooting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/additional-settings/">Additional Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/changing-the-flash-device/">Changing the Flash Device</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/getting-started/">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/tools/">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/upgrade-instructions/">Upgrading Unraid</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/unraid-os/manual/users/">Users</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/zh/category/zfs/">ZFS</a><button aria-label="打开/收起侧边栏菜单「ZFS」" type="button" class="clean-btn menu__caret"></button></div></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/unraid-connect/">Unraid Connect</a><button aria-label="打开/收起侧边栏菜单「Unraid Connect」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/legacy-documentation/">Legacy Documentation</a><button aria-label="打开/收起侧边栏菜单「Legacy Documentation」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/category/contribute/">Contribute</a><button aria-label="打开/收起侧边栏菜单「Contribute」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/unraid-os/"><span itemprop="name">Unraid OS</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/category/manual/"><span itemprop="name">Manual</span></a><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Multi-Language Support</span><meta itemprop="position" content="3"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><h1>Multi-Language Support</h1><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Introduction的直接链接" title="Introduction的直接链接">​</a></h2><p><a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">Unraid 6.9</a> introduced the mechanism to <a href="https://unraid.net/blog/unraid-6-9-multi-language-support" target="_blank" rel="noopener noreferrer">support multiple languages</a> in the Unraid webGUI.</p><p>You can now download, install, and use the Unraid OS in the following @@ -53,8 +53,8 @@ forums</a> to get help or help others in your mother tongue.</p><p>Please see the <a href="https://forums.unraid.net/forum/75-multi-language-section/" target="_blank" rel="noopener noreferrer">Multi-Language Section</a> to -take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/applications/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Community Applications</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> -<script src="/zh/assets/js/runtime~main.cce2c79a.js"></script> -<script src="/zh/assets/js/main.54b490a9.js"></script> +take part in these growing communities!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/unraid/docs/tree/main/docs/unraid-os/manual/multi-language.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/unraid-os/manual/security/vpn/"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">VPN</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/unraid-os/manual/troubleshooting/"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Troubleshooting</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a><ul><li><a href="#a-note-about-all-translations" class="table-of-contents__link toc-highlight">A note about all translations</a></li></ul></li><li><a href="#how-to-load-a-language-pack" class="table-of-contents__link toc-highlight">How to Load a Language pack</a></li><li><a href="#how-to-activate-a-language" class="table-of-contents__link toc-highlight">How to Activate a Language</a></li><li><a href="#how-to-switch-back-to-english" class="table-of-contents__link toc-highlight">How to Switch Back to English?</a></li><li><a href="#developer-requirements-for-multi-language-support" class="table-of-contents__link toc-highlight">Developer Requirements for Multi-Language Support</a></li><li><a href="#multi-language-forums" class="table-of-contents__link toc-highlight">Multi-Language Forums</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/">Home</a></li><li class="footer__item"><a href="https://github.com/unraid/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contribute on Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://forums.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forums<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discordapp.com/invite/unraid" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://connect.myunraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Unraid Connect<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://newsletter.unraid.net" target="_blank" rel="noopener noreferrer" class="footer__link-item">Newsletter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://unraid.net/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo" width="100"><img src="/zh/img/un-mark-gradient.svg" alt="Unraid Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo" width="100"></div><div class="footer__copyright"><small>Copyright © 2005-2023 Lime Technology, Inc.<br>Unraid® is a registered trademark of Lime Technology, Inc.</small></div></div></div></footer></div> +<script src="/zh/assets/js/runtime~main.0878d8ef.js"></script> +<script src="/zh/assets/js/main.818d5412.js"></script> </body> </html> \ No newline at end of file diff --git a/zh/unraid-os/manual/security/data-encryption/index.html b/zh/unraid-os/manual/security/data-encryption/index.html new file mode 100644 index 000000000..3c5735265 --- /dev/null +++ b/zh/unraid-os/manual/security/data-encryption/index.html @@ -0,0 +1,22 @@ +<!doctype html> +<html lang="zh" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-unraid-os/manual/security/data-encryption"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.4.1"> +<title data-rh="true">Data Encryption | Unraid Docs + + + + + + + + + + +

    +

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the array. It does this using the Linux LUKS (Linux Unified Key System) encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a standard on-disk-format, it does not only facilitate compatibility among distributions but also provides secure management of multiple user passwords. In contrast to an existing solution, LUKS stores all necessary setup information in the partition header, enabling you to transport or migrate your data seamlessly.

    The home page for LUKS can be found here

    Because it is a Linux standard drives that are encrypted using LUKS can be read on any standard Linux system even when removed from Unraid as long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting all drives being used by Unraid. The key for the encryption can be either a pass phrase, or provided via a key file. When using a key file it is a good idea to use something like an image as there is no chance of that ever being guessed. You must make sure that you do not lose the encryption key as without it you will not be able to access the data on encrypted drives.


    To encrypt a drive (Note that this will erase any content already on the drive).

    1. Go to the Main tab.
    2. Stop the array.
    3. Select the drive.
    4. In File system type change the file system to the encrypted type that you want.
    5. Select Apply to commit the change.
    6. Select Done to return to the Main tab. The drive will now show as unmountable and the option to format unmountable drives will be present.
    7. Check that the drive is the one you are expecting to be encrypted and if it is correct, format it.

    Once you have set up encryption then it will be necessary to provide the encryption key when starting the array. Once this has been done and the array successfully started then you can access the data without being aware of the fact that any drive is encrypted.

    警告

    Encrypting data is good from a security perspective, but users should be aware of the fact that it can complicate recovering from certain types of hardware failure without data loss. On that basis only use encryption if you feel you have a real need for it, and more importantly, you have a good data backup system.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/security/flash-drive/index.html b/zh/unraid-os/manual/security/flash-drive/index.html new file mode 100644 index 000000000..4dec022c3 --- /dev/null +++ b/zh/unraid-os/manual/security/flash-drive/index.html @@ -0,0 +1,22 @@ + + + + + +Flash Drive | Unraid Docs + + + + + + + + + + +
    +

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains all the configuration information for your Unraid server. Because of this, you want to consider the security of the information it contains and how it is accessed.

    Backups

    If a flash drive ever fails for any reason, as long as you have a backup, getting the Unraid server back into normal operation is an easy process. We recommend that you make a backup whenever you make a significant configuration change.

    You can easily achieve this from the Unraid webGUI:

    1. Select the flash drive on the Main tab.
    2. In the Flash Device Settings section select the Flash Backup button.
    3. The system will now create a ZIP file that is a backup of the contents of the flash drive.
    4. When the ZIP file has been created your browser should prompt you to provide the location where you want the backup saved to. It is recommended that this is a location off the Unraid server so that it is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason, use this backup as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control access over the network as is the case for other shares on an Unraid system. The main difference is that you set this up by selecting the flash device on the Main tab.

    • *Network visibility: You can specify whether the flash drive should even be accessible via the network, and if it is accessible whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with Unraid 6.8 files on the flash drive can no longer be given execute permission. The implication of this is that if you have your own custom scripts (or programs) stored on the flash drive, they can no longer be executed from that location.

    There are a few ways to handle this:

    1. Copy the files to a location from which they can be executed.

      • The location /usr/local/bin is a good choice if you want the files on the default search path.
      • You can copy the files into position when booting by adding appropriate commands to the config/go file on the flash drive.
      • Give the files execute permission after copying them.
    2. For scripts, prefix the script name with the command that runs the script (e.g. bash path-to-script).

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/security/good-practices/index.html b/zh/unraid-os/manual/security/good-practices/index.html new file mode 100644 index 000000000..879275a12 --- /dev/null +++ b/zh/unraid-os/manual/security/good-practices/index.html @@ -0,0 +1,26 @@ + + + + + +Good Practices | Unraid Docs + + + + + + + + + + +
    +

    Good Practices

    We have compiled a set of recommendations to help you secure your server. While not all may apply to your specific scenario, they provide a solid foundation to preserve the security and privacy of your system.

    #1 Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by default. This ensures you can quickly and easily access the management console immediately after initial installation. However, this doesn't mean you shouldn't set one. Doing this is simple. Just navigate to the Users tab and select the root user. Now set a password. From then on, you will be required to authenticate anytime you attempt to login to the webGUI.

    提示

    There is a plugin available in Community Apps called Dynamix Password Validator. This plugin will provide guidance on how strong of a password you're creating, based on complexity rules (how many capital vs. lowercase letters, numbers, symbols, and overall password length are all used to judge this). Consider installing this for extra guidance on password strength. Once installed it is available in the settings for any user to give guidance on the strength of any password you type in.

    You could also use this webpage to get a very quick assessment of the strength of any specific password.

    #2 Review port mappings on your router

    Forwarding ports to your server is required for specific services that you want to be Internet-accessible such as Plex, FTP servers, game servers, VoIP servers, etc. But forwarding the wrong ports can expose your server to significant security risk.

    Here are just a few ports you should be extra careful with when forwarding:

    • Port 80: Used to access the webGUI without SSL - unless you've rebound access to another port on the Management Access settings page. Forwarding this port by default will allow you to access the webGUI remotely, but without SSL securing the connection, devices in between your browser and the server could "sniff" the packets to see what you're doing. If you want to make the webGUI remotely accessible, install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.
    • Port 443: Used to access the webGUI with SSL. This is only better than port 80 if you have a root password set. If no root password is set and you forward this port, unauthorized users can connect to your webGUI and have full access to your server and any data on it. In addition, if you forward this port without using the Unraid Connect plugin, attempts to connect to the webGUI through a browser will present a security warning due to the lack of an SSL certificate. +Consider making life easier for yourself and utilize the Unraid Connect plugin to enable simple, safe, and secure remote access to your Unraid systems.
    • Port 445: Used for SMB (shares). If you forward this port to your server, any public shares can be connected to by any user over the internet. Generally speaking, it is never advisable to expose SMB shares directly over the internet. If you need the ability to access your shares remotely, we suggest utilizing a WireGuard VPN to create a secure tunnel between your device and the server. In addition, if the flash device itself is exported using SMB and this port is forwarded, its contents can easily be deleted and your paid key could easily be stolen. Just don't do this.
    • Port 111/2049: Used for NFS (shares). Although NFS is disabled by default, if you need to use this protocol, make sure you aren't forwarding these ports through your router. Similar to SMB, just utilize WireGuard to create a secure tunnel from any remote devices that need to connect to the server over NFS.
    • Port 22/23: Used by Telnet and SSH for console access. +Especially dangerous for users that don't have a root password set. +Similar to SMB, we don't recommend forwarding these ports at all, but rather, suggest users leverage a WireGuard VPN connection for the purposes of connecting using either of these protocols.
    • Ports in the 57xx range: These ports are generally used by VMs for VNC access. While you can forward these ports to enable VNC access remotely for your VMs, the better and easier way to do this is through installing the Unraid Connect plugin. +This ensures that those connections are secure via SSL and do not require individual ports to be forwarded for each VM.
    提示

    Generally speaking, you really shouldn't need to forward many ports to your server. If you see a forwarding rule you don't understand, consider removing it, see if anyone complains, and if so, you can always put it back.

    #3 Never put your server in your network's DMZ

    We cannot stress this enough. No matter how locked down you think you have your server, it is never advisable to place it in the DMZ on your network. By doing so, you are essentially forwarding every port on your public IP address to your server directly, allowing all locally accessible services to be remotely accessible as well. Regardless of how "locked down" you think you actually have the server, placing it in the DMZ exposes it to unnecessary risks.

    Never, ever, do this.

    #4 Set security on your shares to private

    The convenience of password-less share access is pretty great. We know that and it's why we don't require you to set passwords for your shares. However, there is a security risk posed to your data when you do this, even if you don't forward any ports to your server and have a strong root password. If another device on your network such as a PC, Mac, phone, tablet, IoT device, etc... were to have its security breached, it could be used to make a local connection to your server's shares. By default, shares are set to be publicly readable/writeable, which means those rogue devices can be used to steal, delete, or encrypt the data within them. In addition, malicious users could also use this method to put data on your server that you don't want. It is for these reasons that if you are going to create public shares, we highly recommend setting access to read-only. Only authorized users with a strong password should be able to write data to your shares.

    #5 Don't expose the flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if you need to make advanced changes to your system such as modifying the go file in the config directory. However, the flash device itself contains the files needed to boot Unraid as well as your configuration data (disk assignments, shares, etc). Exposing this share publicly can be extremely dangerous, so we advise against doing so unless you absolutely have to, and when you do, it is advised to do so privately, requiring a username and password to see and modify the contents.

    #6 Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current with the latest release(s) is vital to ensuring security. There are constant security notices (CVEs) published for the various components used in Unraid OS. Here at Lime Technology we do our best to ensure all vulnerabilities are addressed in a timely manner with software updates. However, these updates are useless to you if you don't apply them in a timely manner as well. Keeping your OS up-to-date is easy. Just navigate to Tools > Update OS to check for and apply any updates. You can configure notifications to prompt you when a new update is available from the Settings > Notifications page.

    #7 Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be administered remotely but this should never be done by simply exposing the Unraid webGUI to the internet.

    A frequent way to secure such a connection is to use VPN technology. Unraid includes as standard the WireGuard VPN, and an OpenVPN plugin and Docker container is also available. In addition many routers have built in VPN support which can be used.

    An alternative for making the webGUI remotely accessible is to install the Unraid Connect plugin, which can provide a secure remote access solution that utilizes SSL to ensure your connection is fully encrypted.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/security/index.html b/zh/unraid-os/manual/security/index.html index f8df6a1fa..54fa86e62 100644 --- a/zh/unraid-os/manual/security/index.html +++ b/zh/unraid-os/manual/security/index.html @@ -1,535 +1,22 @@ - + -Security | Unraid Docs +Security | Unraid Docs - - - + + +
    -

    Security

    This section covers various security-related aspects of Unraid

    Good Practices

    An Unraid server is likely to contain data that is sensitive or that a -user would hate to lose. Since most users will have their home network -connected to the internet then precautions should be taken to avoid an -Unraid server being compromised by malicious actors trying to access -them remotely.

    The following simple guidelines will help avoid many common pitfalls -that some user encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are -safe.

    There is also a forum -thread -that discusses this topic.

    Set a strong root password

    Similar to many routers, Unraid systems do not have a password set by -default. This is to ensure you can quickly and easily access the -management console immediately after initial installation. However, this -doesn't mean you shouldn't set one. Doing this is simple. Just -navigate to the Users tab and click on root. Now set a password. From -then on, you will be required to authenticate anytime you attempt to -login to the webGui.

    In addition, there is a plugin available in Community Apps called -Dynamix Password Validator. This plugin will provide guidance on how -strong of a password you're creating based on complexity rules (how -many capital vs. lowercase letters, numbers, symbols, and overall -password length are used to judge this). Consider installing this for -extra guidance on password strength. Once installed it is available in -the settings for any user to give guidance on the strength of any -password you type in.

    You could also use this web -page to get a very quick -assessment of the strength of any specific password.

    Review port mappings on your router

    Forwarding ports to your server is required for specific services that -you want to be Internet-accessible such as Plex, FTP servers, game -servers, VoIP servers, etc. But forwarding the wrong ports can expose -your server to significant security risk. Here are just a few ports you -should be extra careful with when forwarding:

    • Port 80: Used to access the webGui without SSL (unless you've -rebound access to another port on the Management Access settings -page). Forwarding this port by default will allow you to access the -webGui remotely, but without SSL securing the connection, devices in -between your browser and the server could "sniff" the packets to -see what you're doing. If you want to make the webGui remotely -accessible, install the Unraid Connect plugin, which can provide a -secure remote access solution that utilizes SSL to ensure your -connection is fully encrypted.

    • Port 443: Used to access the webGui with SSL. This is only -better than port 80 if you have a root password set. If no root -password is set and you forward this port, unauthorized users can -connect to your webGui and have full access to your server. In -addition, if you forward this port without using the Unraid Connect -plugin, attempts to connect to the webGui through a browser will -present a security warning due to the lack of an SSL certificate. -Consider making life easier for yourself and utilize the Unraid Connect -plugin to enable simple, safe, and secure remote access to your -Unraid systems.

    • Port 445: Used for SMB (shares). If you forward this port to -your server, any public shares can be connected to by any user over -the internet. Generally speaking, it is never advisable to expose -SMB shares directly over the internet. If you need the ability to -access your shares remotely, we suggest utilizing a WireGuard VPN to -create a secure tunnel between your device and the server. In -addition, if the flash device itself is exported using SMB and this -port is forwarded, its contents can easily be deleted and your paid -key could easily be stolen. Just don't do this.

    • Port 111/2049: Used for NFS (shares). While NFS is disabled by -default, if you are making use of this protocol, just make sure you -aren't forwarding these ports through your router. Similar to SMB, -just utilize WireGuard to create a secure tunnel from any remote -devices that need to connect to the server over NFS.

    • Port 22/23: Used by Telnet and SSH for console access. -Especially dangerous for users that don't have a root password set. -Similar to SMB, we don't recommend forwarding these ports at all, -but rather, suggest users leverage a WireGuard VPN connection for -the purposes of connecting using either of these protocols.

    • Ports in the 57xx range: These ports are generally used by VMs -for VNC access. While you can forward these ports to enable VNC -access remotely for your VMs, the better and easier way to do this -is through installing the Unraid Connect plugin. -This ensures that those connections -are secure via SSL and does not require individual ports to be -forwarded for each VM.

    Generally speaking, you really shouldn't need to forward many ports to -your server. If you see a forwarding rule you don't understand, -consider removing it, see if anyone complains, and if so, you can always -put it back.

    Never ever ever put your server in the DMZ

    No matter how locked down you think you have your server, it is never -advisable to place it in the DMZ on your network. By doing so, you are -essentially forwarding every port on your public IP address to your -server directly, allowing all locally accessible services to be remotely -accessible as well. Regardless of how "locked down" you think you -actually have the server, placing it in the DMZ exposes it to -unnecessary risks. Never ever do this.

    Consider setting shares to private with users and passwords

    The convenience of password-less share access is pretty great. We know -that and its why we don't require you to set passwords for your shares. -However, there is a security risk posed to your data when you do this, -even if you don't forward any ports to your server and have a strong -root password. If another device on your network such as a PC, Mac, -phone, tablet, IoT device, etc. were to have its security breached, it -could be used to make a local connection to your server's shares. By -default, shares are set to be publicly readable/writeable, which means -those rogue devices can be used to steal, delete, or encrypt the data -within them. In addition, malicious users could also use this method to -put data on your server that you don't want. It is for these reasons -that if you are going to create public shares, we highly recommend -setting access to read-only. Only authorized users with a strong -password should be able to write data to your shares.

    Don't expose the Flash share, and if you do, make it private

    The flash device itself can be exposed over SMB. This is convenient if -you need to make advanced changes to your system such as modifying the -go file in the config directory. However, the flash device itself -contains the files needed to boot Unraid as well as your configuration -data (disk assignments, shares, etc). Exposing this share publicly can -be extremely dangerous, so we advise against doing so unless you -absolutely have to, and when you do, it is advised to do so privately, -requiring a username and password to see and modify the contents.

    Keep your server up-to-date

    Regardless of what other measures you take, keeping your server current -with the latest release(s) is vital to ensuring security. There are -constant security notices (CVEs) published for the various components -used in Unraid OS. We here at Lime Technology do our best to ensure all -vulnerabilities are addressed in a timely manner with software updates. -However, these updates are useless to you if you don't apply them in a -timely manner as well. Keeping your OS up-to-date is easy. Just navigate -to Tools -> Update OS to check for and apply any updates. You can -configure notifications to prompt you when a new update is available -from the Settings -> Notifications page.

    Use a secure method for remote administration

    It is possible to set up an Unraid server so that it can safely be -administered remotely but this should never be done by simply exposing -exposing the Unraid webGui to the internet.

    A frequent way to secure such a connection is to use VPN technology. -Unraid includes as standard the WireGuard VPN and an OpenVPN plugin and -Docker container is also available. In addition many routers have built -in VPN support which can be used.

    An alternative for making the webGui remotely accessible is to install -the Unraid Connect plugin, which can provide a secure remote access solution -that utilizes SSL to ensure your connection is fully encrypted.

    Securing webGui connections (SSL)

    Using wildcard SSL Certificates provisioned by Let's -Encrypt, Unraid OS 6.10 improves the security -of the SSL implementation for both local access and Unraid Connect Remote Access.

    A few details before we begin

    Some terms:

    • servername can be changed on the Settings -> Identification -page. It defaults to "tower".
    • localTLD can be changed on the Settings -> Management Access -page. It defaults to "local".
    • Use SSL/TLS can be changed on the Settings -> Management Access -page. It defaults to "No".
    • HTTP port can be changed on the Settings -> Management Access -page. It defaults to "80". If you change this, add :[HTTP port] to any of the http URLs in the scenarios below. (example: -http://tower.local:8080)
    • HTTPS port can be changed on the Settings -> Management Access -page. It defaults to "443". If you change this, add :[HTTPS port] to any of the https URLs in the scenarios below. (example: -https://tower.local:3443)
    • certificate refers to either a self-signed SSL Certificate, or a -SSL certificate issued by a Certificate Authority (Let's Encrypt)
    • lan-ip is your server's LAN IP address with dots changed to -dashes (example 192-168-100-1)
    • wan-ip is your internet-facing IP address with dots changed to -dashes (example 136-26-144-139)
    • hash is a random 40 character hex string (160 bits) uniquely -assigned to your server when a certificate is first issued

    Caveats of using a self-signed certificate: Note that browsers will -show a certificate error because they cannot verify the authenticity of -self-signed certificates. All traffic will be encrypted once users -acknowledge the browser warning.

    How would you like to access the Unraid webGui while on your LAN?

    Http only

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to No
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Traffic between the browser and the server will not be encrypted

    Https with Self-signed certificate

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution
    • Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • All traffic will be encrypted
    • Unraid will manage the certificate for you. See "Caveats of using a -self-signed certificate" above.

    Https with Myunraid.net certificate - with fallback URL if DNS is unavailable

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate)
    • Leave Use SSL/TLS set to either No or Yes
    • Press Provision
    • Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    • Your primary URLs when Use SSL/TLS set to Yes. Note that these -URLs use a self-signed certificate (See "Caveats of using a -self-signed certificate" above)
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    • Your alternate URL will be -https://[lan-ip].[hash].myunraid.net (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net). This personal link -is shown in the Certificate subject field on the Management Access -page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted if using https.
    • Unraid will manage the certificates for you.
    • If at any point DNS resolution becomes unavailable, the alternate -URL may not resolve. In this case use the primary URL as a fallback.

    Https with Myunraid.net certificate - with no fallback URL

    • Navigate to the Settings -> Management Access page
    • LocalTLD should be kept at the default of "local" unless you -can provide your own DNS name resolution (this is used for the -fallback certificate if you run the use_ssl command mentioned -below)
    • Press Provision
    • If DNS Rebinding is not an issue, the "Strict" option for Use -SSL/TLS will be available.
    • Set Use SSL/TLS to Strict (this was previously called "Auto", -but "Strict" is more descriptive)
    • Your URL will be https://[lan-ip].[hash].myunraid.net -(example: https://192-168-100-1.a1b2c3d4e5.myunraid.net) This -personal link is shown in the Certificate subject field on the -Management Access page. If you install the optional Unraid Connect plugin it will also be -shown on the Connect dashboard ( https://connect.myunraid.net/ )
    • All traffic will be encrypted
    • Unraid will manage the certificates for you.
    • Note: If at any point DNS resolution becomes unavailable (e.g., your -Internet goes down), use telnet, SSH or local keyboard/monitor to -login. Then:
      • type use_ssl no to access the webgui via -http://[servername].[localTLD] or http://[ipaddress]
      • type use_ssl yes to access the webgui via -https://[servername].[localTLD] or https://[ipaddress] -using a self-signed certificate (See -"Caveats of using a self-signed certificate" above)
      • Once DNS resolution is available again, change Use SSL/TLS -back to Strict

    Redirects

    When accessing http://[ipaddress] or -http://[servername].[localTLD] , the behavior will change -depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to -https://[lan-ip].[hash].myunraid.net However, this behavior -makes it more difficult to access your server when DNS is -unavailable (i.e. your Internet goes down). If that happens see the -note under HTTPS with Myunraid.net certificate - with no fallback -URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to -https://[ipaddress] or https://[servername].[localTLD] -as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the http url will load -directly.

    Note: for the redirects to work, you must start from http urls not https -urls.

    Unraid Connect Remote Access

    • Install the Unraid Connect plugin
    • Navigate to the Settings -> Management Access page
    • Click Provision if you haven't already
    • Regardless of the value of Use SSL/TLS, you will have the option -to access the server using -https://[lan-ip].[hash].myunraid.net:[wan-port] (example: -https://192-168-100-1.a1b2c3d4e5.myunraid.net).
    • Navigate to Settings -> Management Access -> Unraid Connect page
    • Set Allow Remote Access to yes
    • Set the WAN port you want to use. For added security we -recommend you choose a random port over 1000 rather than using the -default of 443. i.e. something like 13856, 48653, etc
    • Click Apply
    • Setup your router to port forward the WAN port you specified to -the LAN IP address and HTTPS port used by the server. There is a -note on the screen telling you the exact port and IP to use.
    • Press the Check button. If the port is forwarded correctly you -will see a message saying "Your Unraid Server is reachable from the -Internet"
    • To access your server using Remote Access, login to the Unraid Connect -Dashboard and click the Remote Access link. The URL will be -https://[wan-ip].[hash].myunraid.net:[wan-port] (example: -https://136-26-144-139.a1b2c3d4e5.myunraid.net:13856).

    Custom Certificates

    Https with Custom certificate - with option to have Unraid Connect Remote Access

    • Navigate to the Settings -> Management Access page
    • Set Use SSL/TLS to Yes
    • Set the LocalTLD to the domain name used in the "Subject" of -the certificate.
    • Your URL will be https://[servername].[localTLD] (example: -https://tower.mydomain.com). You are responsible for managing DNS -for this URL.
    • You are responsible for managing the certificate. Upload it to -/boot/config/ssl/certs/[servername]_unraid_bundle.pem
    • The certificate must be valid for [servername].[localTLD] -(example: tower.mydomain.com). For a wildcard cert it must be -*.[localTLD] (example: *.mydomain.com). This url can be -specified in either the "Subject" of the certificate or one of the -"Subject Alternative Name" fields (prior to 6.10.3, only the -"Subject" field was used). If you find that Unraid deletes your -certificate, it is because the server's url is not specified in the -certificate.
    • All traffic will be encrypted
    • (optional) If desired, see the Unraid Connect Remote Access section -above

    Data Encryption

    Unraid supports the use of encrypted drives in both the cache and the -array. It does this using the Linux LUKS (Linux Unified Key System) -encryption modules.

    LUKS is the standard for Linux hard disk encryption. By providing a -standard on-disk-format, it does not only facilitate compatibility among -distributions but also provides secure management of multiple user -passwords. In contrast to an existing solution, LUKS stores all -necessary setup information in the partition header, enabling the user -to transport or migrate their data seamlessly.

    The home page for LUKS can be found -here

    Because it is a Linux standard drives that are encrypted using LUKS can -be read on any standard Linux system even when removed from Unraid as -long as one has the key phrase/file needed to unlock the drive.

    The Unraid implementation expects the same key to be used for encrypting -all drives being used by Unraid. The key for the encryption can be -either a pass phrase, or provided via a key file. When using a key file -it is a good idea to use something like an image as there is no chance -of that ever being guessed. You must make sure that you do not lose the -encryption key as without it you will not be able to access the data on -encrypted drives.

    To encrypt a drive (Note that this will erase any content already on the -drive).

    • Stop the array
    • Click on the drive on the Main tab
    • change the file system to the encrypted type that you want to use
    • click Apply to commit the change
    • click Done to return to the Main tab
    • the drive will now show as unmountable and the option to format -unmountable drives will be present. Check that the drive is the one -you are expecting to be encrypted and if it is correct go ahead and -format it.

    Once you have set up encryption then it will be necessary to provide the -encryption key when starting the array. Once this has been done and the -array successfully started then you can access the data without being -aware of the fact that any drive is encrypted.

    CAUTION: Encrypting data is good from a security perspective, but users -should be aware of the fact that it can complicate recovering from -certain types of hardware failure without data loss. On that basis only -use encryption if you feel you have a real need for it, and ideally make -sure you have a good system for backing up any important data.

    Flash Drive

    The flash drive that is used to boot Unraid is important as it contains -all the configuration information relating to an Unraid server. You -therefore want to consider the security of the information it contains -and how it is accessed.

    Backups

    If a flash drive ever fails for any reason then as long as you have a -backup getting the Unraid server back into normal operation is an easy -process. It is recommended that you make a backup whenever you make a -significant configuration change.

    You easily achieve this from the Unraid GUI by:

    1. Click on the flash drive on the Main tab in the GUI.
    2. In the Flash Device Settings section click on the Flash Backup -button.
    3. The system will now start creating a zip file that is a backup of -the contents of the flash drive
    4. When the zip file has been created your browser should prompt you to -provide the location where you want the backup saved to. It is -recommended that this is a location off the Unraid server so that it -is available even when the Unraid server is not operational.

    If you later need to recreate your flash drive for any reason this -backup can be used as input to the Limetech USB Creator tool.

    Network Access

    The flash drive can have similar settings applied to it to control -access over the network as is the case for other shares on an Unraid -system. The difference is that you set this up by clicking on the -flash device on the Main tab in the GUI rather than doing it via -the Shares tab.

    • Network visibility: You can specify whether the flash drive -should even be accessible via the network, and if it is accessible -whether it should be hidden or visible to everyone.
    • Access rights: If network access is allowed you can specify any -access permissions that you want applied.

    Permissions

    As part of improving the security of Unraid systems, starting with -Unraid 6.8 files on the flash drive can no longer be given execute -permission.

    The implication of this is that if a user has their own custom scripts -(or programs) stored on the flash drive they can no longer be executed -from that location. There are a number of ways to handle this:

    • Copy the files to a location from which they can be executed
      • The location /usr/local/bin is a good choice if you want the -files on the default search path.
      • You can copy the files into position when booting by adding -appropriate commands to the config/go file on the flash drive.
      • Remember to give the files execute permission after copying -them.
    • For scripts precede the script name with the command that runs the -script (e.g. bash path-to-script)

    VPN

    Unraid servers are not hardened against attack via the network so -should NEVER be exposed directly to the internet.

    • One exception is the WireGuard VPN service introduced in Unraid 6.8 -explicitly to address secure access to/from the internet.
    • If running Docker containers are exposed to the internet then the -security of these needs to be assessed on a case-by-case basis.

    You may need to contact the developer of the container to determine -how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a -'sandboxed' environment so the level of access to the content of -your disks is constrained to what you allow in the path mapping -settings for the container.

    • If running VMs that are exposed to the internet then you need to -apply the same security to these that you would apply to a physical -PC attached to the local LAN.

    If you want to make secure connections between an Unraid server and the -Internet then you want to use a technology known as VPN (Virtual Private -Network). VPN works on a client/server model where you have a server -that accepts incoming connections and a client that initiates such -connections.

    In simplistic terms, the idea behind VPN connections is to set up an -encrypted 'tunnel' between the client and server ends so that no -malicious players can intercept or eavesdrop on your interactions. Such -tunnels are set up so that only authorized users are able to make such -connections. More information on VPN as a technology can be found in -this wiki -article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the -commonest use case and many users want to be able to safely access -their Unraid servers (and potentially their whole home LAN) when -away from home. When running in this mode the server end of the VPN -link will either be running on the user's router (if it supports -such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you -want applications running on Unraid to access the internet. This -could be to access generic internet content or to access another -server located remotely to the Unraid server. If in is generic -access to the internet then it is highly likely that the server end -of such connection will be via a commercial VPN provider. When -running in this mode Unraid will be acting as the client end of any -VPN link.

    There are a wide variety of VPN solutions available both free and -commercial.

    Router

    Many modern routers have a VPN server built-in as standard (typically -based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of -not needing any other component on your home LAN to be operational for -the VPN to function. Once setup it should allow you to access all -devices on your home LAN in a similar manner to when you are directly -connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow -connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN -then you can search Community Applications for a plugin or docker -container that meets your requirements. You may also find the -SpaceInvaderOne YouTube -video of use in setting it -up.

    It is expected that with the introduction of WireGuard support in -Unraid 6.8 that WireGuard will become the favored way of setting up a -VPN connection to an Unraid server.

    WireGuard

    Overview

    Unraid 6.8 introduces built-in support for WireGuard VPN connections. The -intention is to make it as easy as possible for Unraid users to set up -VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to -add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid -boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be -better than OpenVPN.

    More information about WireGuard can be found on the WireGuard web -site. It should be noted that WireGuard is -still labeled as ''experimental'' by its developers but many users are -already finding that it appears to be robust enough for real-world use. -A number of the commercial VPN services are working on adding WireGuard -support so they must deem it to be mature enough for this to make sense -to them.

    The initial Unraid implementation includes adding the WireGuard kernel -modules to the standard Unraid distribution and starting the WireGuard -services as part of the Unraid boot process, but does not yet have the -management of WireGuard built-in. At the moment the GUI part is offered -as a separate plugin, but it is intended that it will be integrated into -Unraid in the future. This approach allows for quick updates and -enhancements without dependency on Unraid version releases. The Unraid -WireGuard GUI plugin can be installed via Community Applications, and -when it is installed you will find that an entry called VPN Manager -is added to the GUI under Settings->Network Services

    Note that the Unraid WireGuard plugin is still evolving so in the event -of a discrepancy between what is described here and the following forum -threads then it is likely that the thread is correct and this wiki needs -updating to bring it inline. These threads are also the appropriate -place to ask questions regarding Unraid's WireGuard implementation.

    What can you do with WireGuard? Let's walk through each of the -connection types:

    • Remote access to server: Use your phone or computer to remotely -access your Unraid server, including:

      • Unraid administration via the webgui
      • Access dockers, VMs, and network shares as though you were -physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", -allowing you to access your entire LAN as well.

    • Server to server access: Allows two Unraid servers to connect to -each other.

    • LAN to LAN access: Builds on "Server to server access", -allowing two entire networks to communicate. May require additional -settings, TBD.

    • Server hub & spoke access: Builds on "Remote access to -server", except that all of the VPN clients can connect to each -other as well. Note that all traffic passes through the server.

    • LAN hub & spoke access: Builds on "Server hub & spoke access", -allowing you to access your entire LAN as well.

    • VPN tunneled access: Route traffic for specific Dockers and VMs -through a commercial WireGuard VPN provider (see this guide)

    • Remote tunneled access: Securely access the Internet from -untrusted networks by routing all of your traffic through the VPN -and out Unraid's Internet connection

    The following diagram attempts to show these different connection types -in a graphical format

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your -trusted devices can VPN into your home network to access Unraid and the -other systems on your network.

    Prerequisites
    • You must be running Unraid 6.8 with the Dynamix WireGuard plugin -installed via the Apps tab (Community Applications).

    • Be aware that WireGuard is technically classified as experimental. -It has not gone through a full security audit yet and has not -reached 1.0 status. But it is the first open-source VPN solution -that is extremely simple to install, fast, and designed from the -ground up to be secure.

    • Understand that giving someone VPN access to your LAN is just like -giving them physical access to your LAN, except they have it 24x7 -when you aren't around to supervise. Only give access to people and -devices that you trust, and make certain that the configuration -details (particularly the private keys) are not passed around -insecurely. Regardless of the "connection type" you choose, assume -that anyone who gets access to this configuration information will -be able to get full access to your network.

    • This guide works great for simple networks. But if you have Dockers -with custom IPs or VMs with strict networking requirements, please -see the "Complex Networks" section below.

    • Unraid will automatically configure your WireGuard clients to -connect to Unraid using your current public IP address, which will -work until that IP address changes. To future-proof the setup, you -can use Dynamic DNS instead. There are many ways to do this, -probably the easiest is described in this 2 minute video from -SpaceInvaderOne.

    • If your router has UPnP enabled, Unraid will be able to -automatically forward the port for you. If not, you will need to -know how to configure your router to forward a port.

    • You will need to install WireGuard on a client system. It is -available for many operating systems as mentioned at WireGuard -clients. Android or iOS make -good first client systems because you can get all the details via QR -code.

    Setting up the Unraid side of the VPN tunnel
    • First, go to Settings -> Network Settings -> Interface eth0. If -"Enable bridging" is "Yes", then WireGuard will work as -described below. If bridging is disabled, then none of the "Peer -type of connections" that involve the local LAN will work properly. -As a general rule, bridging should be enabled in Unraid.

    • If UPnP is enabled on your router and you want to use it in Unraid, -go to Settings -> Management Access and confirm "Use UPnP" is set -to Yes
    • On Unraid go to Settings -> VPN Manager

    • Give the VPN Tunnel a name, such as "MyHome VPN"
    • Press "Generate Keypair". This will generate a set of public and -private keys for Unraid. Take care not to inadvertently share the -private key with anyone (such as in a screenshot like this)
    • By default, the local endpoint will be configured with your current -public IP address. If you chose to setup DDNS earlier, change the IP -address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to -change this unless you already have WireGuard running elsewhere on -your network.
    • Hit Apply
    • If Unraid detects that your router supports UPnP, it will -automatically setup port forwarding for you:

    • If you see a note that says "configure your router for port -forwarding..." you will need to login to your router and setup the -port forward as directed by the note:

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports -should be set to the value Unraid provides. If your router -interface asks you to put in a range, use the same port for both -the starting and ending values. Be sure to specify that it is a -UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of -your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, -i.e. "how to port forward Asus RT-AC68U"
    • Note that after hitting Apply, the public and private keys are -removed from view. If you ever need to access them, click the -"key" icon on the right-hand side.

    • Similarly, you can access other advanced settings by pressing the -"down chevron" on the right-hand side. They are beyond the scope -of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to -Active to start WireGuard. You can optionally set the tunnel to -Autostart when Unraid boots.

    There have been cases where this step has been omitted and users -end up wondering why the WireGuard VPN link is not working!

    Defining a Peer (client)
    • Click "Add Peer"

    • Give it a name, such as "MyAndroid"
    • For the initial connection type, choose "Remote access to LAN". -This will give your device access to Unraid and other items on your -network.
    • Click "Generate Keypair" to generate public and private keys for -the client. The private key will be given to the client/peer, but -take care not to share it with anyone else (such as in a screenshot -like this)
    • For an additional layer of security, click "Generate Key" to -generate a preshared key. Again, this should only be shared with -this client/peer.
    • Click Apply.
    • Note: Technically, the peer should generate these keys and not -give the private key to Unraid. You are welcome to do that, but it -is less convenient as the config files Unraid generates will not be -complete and you will have to finish configuring the client -manually.
    Caution

    It can be a little risky to add a new client ("peer") to WireGuard if -you are already connected remotely using WireGuard as adding a new peer -sometimes toggles the WireGuard tunnel off which will render you -unable to reconnect. This is because a configuration change is made -effective by inactivating the tunnel with the current (old) -configuration and next activating it with the updated (new) -configuration. If there is any sort of configuration conflict at this -point the tunnel stays inactive, and you can no longer connect to the -Unraid server

    Configuring a Peer (client)
    • Click the "eye" icon to view the peer configuration. If the button -is not clickable, you need to apply or reset your unsaved changes -first.

    • If you are setting up a mobile device, choose the "Create from QR -code" option in the mobile app and take a picture of the QR code. -Give it a name and make the connection. The VPN tunnel starts almost -instantaneously, once it is up you can open a browser and connect to -Unraid or another system on your network. Be careful not to share -screenshots of the QR code with anyone, or they will be able to use -it to access your VPN.
    • If you are setting up another type of device, download the file and -transfer it to the remote computer via trusted email or dropbox, -etc. Then unzip it and load the configuration into the client. -Protect this file, anyone who has access to it will be able to -access your VPN.
    About DNS

    The Dynamix WireGuard plugin includes a "Peer DNS Server" option

    If you are having trouble with DNS resolution on the WireGuard client, -return to the VPN Manager page in Unraid and switch from Basic to -Advanced mode, add the IP address of your desired DNS server into the -"Peer DNS Server" field, then install the updated config file on the -client. You may want to use the IP address of the router on the LAN you -are connecting to, or you could use a globally available IP like 8.8.8.8

    This is required for "Remote tunneled access" mode if the client's -original DNS server is no longer accessible after all traffic is routed -through the tunnel.

    If you are using any of the split tunneling modes, adding a DNS server -may provide name resolution on the remote network, although you will -lose name resolution on the client's local network in the process. The -simplest solution is to add a hosts file on the client that provides -name resolution for both networks.

    Complex Networks

    The instructions above should work out of the box for simple networks. -With "Use NAT" defaulted to Yes, all network traffic on Unraid uses -Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Dockers with custom IPs or VMs with strict -networking requirements, things may not work right (I know, kind of -vague, but feel free to read the two WireGuard threads for examples)

    A partial solution is:

    • In the WireGuard config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the -WireGuard "Local tunnel network pool" through the IP address of -your Unraid system. For instance, for the default pool of -10.253.0.0/24 you should add this static route:
      • Network: 10.253.0.0/16 (aka 10.253.0.0 with subnet 255.255.0.0)
      • Gateway: <IP address of your Unraid system>
    • Note that this covers the entire class B 10.253.x.x network, so you -can add other WireGuard tunnels without having to modify your router -setup again.

    With these changes, your network should work normally. However, your -WireGuard clients still may not be able to access Dockers on custom IPs -or VMs. If you find a solution to this, please ask questions in the -forum threads mentioned earlier.

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be -invisible! There aren't really any error messages if things aren't -working, it either works or it doesn't. It cannot be detected by a port -scanner.

    If you can't connect, it will mainly be an exercise in double-checking -your work:

    • Confirm that the tunnel is active (!)
    • Confirm that your DDNS is pointed at your current public IP address, -and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router -to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your -clients, you will need to set the clients up again so they have the -latest config.
    • Be sure you save your changes before you press "View Peer Config", -otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    - For your first client, setup a phone using its data connection (not -wifi). This eliminates issues related to the client network, and the QR -code is the easiest way to transfer settings. Once you have it working -from your phone, move on to other clients.

    • Disable any energy-saving features on the client, phones in particular -may not use VPNs properly when in low power mode. Also, you may need to -disable any "Data Saver" features on the phone so that VPN is not -throttled. See this post. -- If your "Peer type of connection" includes one of the LAN options but -you can only access Unraid, go to Settings -> Network Settings and see -whether "Enable bridging" is yes.  If bridging is disabled, you will not -be able to access your LAN over WireGuard.
    • If you are connecting from another network over the Internet, be -sure that the networks on both sides use different subnets. You -can't connect two networks that both use 192.168.1.0/24, for -instance.
    • If you can connect from some locations but not others, keep in mind -that the "broken" remote locations may have a firewall that blocks -UDP traffic. Hopefully, WireGuard will support TCP in the future, -but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm -that the "Local tunnel network pool" is not already in use on your -network or on one of the networks you are connecting to. If there is -a conflict you will need to change it to a different private network -(10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | -192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webgui for some reason and you need -to prevent a WireGuard tunnel from automatically starting, delete -this file from your flash drive and reboot:

    /boot/config/wireguard/autostart

    • Note that if you have Dockers with custom IPs or VMs with strict -networking requirements, you will likely have issues. Please see the -"Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection -from an Unraid server to a commercial VPN provider. If you are trying to -access your Unraid network from a remote location, see the section on -making inbound connections. There is a forum -thread -discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. A few are listed -below but this is not intended to be an exhaustive list. No endorsement -is implied, you need to research and determine which one meets your -needs.

    Note that with the current state of WireGuard, VPN providers cannot -guarantee the same amount of privacy as they can with OpenVPN. See -here for more detail. -Typically the objections are not around security, but around the fact -that it is harder for them to guarantee that they cannot track you.

    Configuring VPN tunneled access
    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" -button and select the file on your hard drive. This will create a -new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. -Click Apply.
    • Note: You do not need to forward any ports through your router for -this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN -tunnel.
      • In the future it may be possible to restrict it so that only -specific Dockers use the VPN tunnel. Until then, you may need to -disable the tunnel in order to check for plugin updates or -perform other Unraid administrative tasks.
      • Note that currently, Unraid will ignore any DNS server that is -specified in the downloaded config file. Unraid's DNS should be -set to something that will work whether the tunnel is up or -down, such as 8.8.8.8 and 8.8.4.4
    Testing the tunnel
    • Using Community Applications, install a browser such as the -jlesage/Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should -see that your IP address is in the country you selected when you -signed up with the provider

    Support

    WireGuard is a new feature in Unraid so the forum is the place to -ask questions and get the most up-to-date information on using -WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - +

    Security

    An Unraid server is likely to contain data that is sensitive or that you would otherwise hate to lose. Since most users will have their home network connected to the internet, precautions should be taken to avoid an Unraid server being compromised by malicious actors trying to access them remotely.

    The following simple guidelines will help avoid many common pitfalls that some users encounter regarding the security of their Unraid servers.

    Review the below recommendations on your server(s) to ensure they are safe.

    There is also a forum thread that discusses this topic.

    + + \ No newline at end of file diff --git a/zh/unraid-os/manual/security/secure-webgui-ssl/index.html b/zh/unraid-os/manual/security/secure-webgui-ssl/index.html new file mode 100644 index 000000000..f30bfd01f --- /dev/null +++ b/zh/unraid-os/manual/security/secure-webgui-ssl/index.html @@ -0,0 +1,22 @@ + + + + + +Securing webGUI connections (SSL) | Unraid Docs + + + + + + + + + + +
    +

    Securing webGUI connections (SSL)

    As of Unraid 6.10, you can improve the security of the SSL implementation for both local access and Unraid Connect Remote Access using wildcard SSL Certificates provisioned by Let's Encrypt.

    SSL parameters

    When it comes to SSL security, there are different parameters across the Unraid settings pages that affect the behavior of your connection to an Unraid server.

    ParameterDescription
    servernameCan be changed in Settings > Identification. The default value is tower.
    localTLDCan be changed in Settings > Management Access. Default value is local.
    Use SSL/TLSCan be changed in Settings > Management Access. Default value is No.
    HTTP portCan be changed in Settings > Management Access. Default value is 80. If you change this, add :[HTTP port] to any of the HTTP URLs in the scenarios below. (example: http://tower.local:8080)
    HTTPS portCan be changed in Settings > Management Access page. It defaults to "443". If you change this, add :[HTTPS port] to any of the HTTPS URLs in the scenarios below. (example: https://tower.local:3443)
    certificateRefers to either a self-signed SSL Certificate, or a SSL certificate issued by a Certificate Authority (Let's Encrypt)
    lan-ipThis is your server's LAN IP address with dots changed to dashes (example 192-168-100-1)
    wan-ipThis is your internet-facing IP address with dots changed to dashes (example 136-26-144-139)
    hashThis is a random 40 character hex string (160 bits) uniquely assigned to your server when a certificate is first issued

    How to access the Unraid server webGUI on your LAN

    HTTP-only

    With HTTP only, traffic between the browser and the server will not be encrypted, but you will not need a certificate.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to No.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution.
    4. Your URLs:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    5. Select Apply.

    HTTPS with self-signed certificate

    With HTTPS and a self-signed certificate, traffic to and from the server is encrypted. Unraid generates a certificate for you.

    1. Go to Settings > Management Access.
    2. Set Use SSL/TLS to Yes.
    3. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution
    4. Your URLs:
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    5. Select Apply.
    信息

    When you use self-signed certificates, browsers will show a certificate error because they cannot verify the authenticity of self-signed certificates. All traffic will be encrypted once users acknowledge the browser warning.


    HTTPS with Myunraid.net certificate and fallback URL if DNS is unavailable

    You can access your server securely via the webGUI using a Myunraid.net certificate, and configure a fallback URL in case your DNS resolution is down. All traffic will be encrypted and the server is configured to fallback to a secondary method when DNS is down.

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate).
    3. Leave Use SSL/TLS set to either No or Yes.
    4. Press Provision.
    5. Your primary URLs when Use SSL/TLS set to No:
      • http://[servername].[localTLD] (example: http://tower.local)
      • http://[ipaddress] (example: http://192.168.100.1)
    6. Your primary URLs when Use SSL/TLS set to Yes. Note that these URLs use a self-signed certificate.
      • https://[servername].[localTLD] (example: https://tower.local)
      • https://[ipaddress] (example: https://192.168.100.1)
    7. Your alternate URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the Unraid Connect plugin it will also be shown on the Connect dashboard.

    HTTPS with Myunraid.net certificate and with no fallback URL

    1. Go to Settings > Management Access.
    2. LocalTLD should be kept at the default of local unless you can provide your own DNS name resolution (this is used for the fallback certificate if you run the use_ssl command mentioned below).
    3. Press Provision.
    4. If DNS Rebinding is not an issue, the Strict option for Use SSL/TLS will be available.
    5. Set Use SSL/TLS to Strict (or Auto in earlier versions of Unraid).
    6. Your URL will be https://[lan-ip].[hash].myunraid.net (example: https://192-168-100-1.a1b2c3d4e5.myunraid.net). This URL is shown in the Local access URLs field on the Management Access page. If you install the optional Unraid Connect plugin it will also be shown on the Connect dashboard.
    警告

    If at any point DNS resolution becomes unavailable (e.g., your Internet goes down), you can use Telnet, SSH or local keyboard/monitor to login. Then:

    • Type use_ssl no to access the webGUI via http://[servername].[localTLD] or http://[ipaddress].
    • Type use_ssl yes to access the webGUI via https://[servername].[localTLD] or https://[ipaddress] using a self-signed certificate (See HTTPS with a self-signed certificate above).
    • Once DNS resolution is available again, change Use SSL/TLS back to Strict.

    Redirects

    When you access http://[ipaddress] or http://[servername].[localTLD], the behavior will change depending on the value of the Use SSL/TLS setting:

    • If Use SSL/TLS is set to Strict, you will be redirected to https://[lan-ip].[hash].myunraid.net However, this behavior makes it more difficult to access your server when DNS is unavailable (your Internet goes down). If that happens see the cautionary note under HTTPS with Myunraid.net certificate - with no fallback URL above.
    • If Use SSL/TLS is set to Yes, you will be redirected to https://[ipaddress] or https://[servername].[localTLD] as that will likely work even if your Internet goes down.
    • If Use SSL/TLS is set to No, then the HTTP URL will load directly.
    提示

    For the redirects to work, you must start from HTTP URLs, not HTTPS URLs.


    Unraid Connect remote access

    Looking for setup instructions for Unraid Connect remote access? See our dedicated page.


    Custom certificates

    HTTPS with custom certificate - with option to have Unraid Connect Remote Access

    1. Navigate to the Settings > Management Access page.
    2. Set Use SSL/TLS to Yes.
    3. Set the LocalTLD to the domain name used in the "Subject" of the certificate.
    4. Your URL will be https://[servername].[localTLD] (example: https://tower.mydomain.com). You are responsible for managing DNS for this URL.
    5. You are responsible for managing the certificate. Upload it to /boot/config/ssl/certs/[servername]_unraid_bundle.pem.
    6. The certificate must be valid for [servername].[localTLD] (example: tower.mydomain.com). For a wildcard cert it must be *.[localTLD] (example: *.mydomain.com). This url can be specified in either the "Subject" of the certificate or one of the "Subject Alternative Name" fields (prior to 6.10.3, only the "Subject" field was used). If you find that Unraid deletes your certificate, it is because the server's URL is not specified in the certificate.
    7. As an option, use Unraid Connect Remote Access.
    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/security/vpn/index.html b/zh/unraid-os/manual/security/vpn/index.html new file mode 100644 index 000000000..5ab6b5bae --- /dev/null +++ b/zh/unraid-os/manual/security/vpn/index.html @@ -0,0 +1,27 @@ + + + + + +VPN | Unraid Docs + + + + + + + + + + +
    +

    VPN

    警告

    Unraid servers are not hardened against attack via the network so should never be exposed to the internet without use of a VPN.

    If you want to make secure connections between an Unraid server and the Internet then you want to use a technology known as VPN (Virtual Private Network). VPN works on a client/server model where you have a server that accepts incoming connections and a client that initiates such connections.

    In short, the idea behind VPN connections is to set up an encrypted 'tunnel' between the client and server ends so that no malicious players can intercept or eavesdrop on your interactions. Such tunnels are set up so that only authorized users are able to make such connections. More information on VPN as a technology can be found in this wiki article

    There are 2 common Use Cases that Unraid users are likely to have:

    • Remote Access to Unraid from the Internet: This is by far the commonest use case and many users want to be able to safely access their Unraid servers (and potentially their whole home LAN) when away from home. When running in this mode the server end of the VPN link will either be running on the user's router (if it supports such a feature) or will be hosted on the Unraid server.
    • Remote Access from Unraid to the Internet: This is used when you want applications running on Unraid to access the internet. This could be to access generic internet content or to access another server located remotely to the Unraid server. If it is generic access to the internet then it is highly likely that the server end of such connection will be via a commercial VPN provider. When running in this mode Unraid will be acting as the client end of any VPN link.

    There are a wide variety of VPN solutions available both free and commercial.

    Unraid has built-in support for the WireGuard VPN service to provide secure access to/from the internet. However, if you are running Docker containers and exposing them to the internet, then their security needs to be assessed on a case-by-case basis. In such a case, you may need to contact the developer of the container to determine how safe it is to expose it to the internet.

    There is a level of protection as a docker container runs in a 'sandboxed' environment so the level of access to the content of your disks is constrained to what you allow in the path mapping settings for the container. If running VMs that are exposed to the internet then you need to apply the same security to these that you would apply to a physical PC attached to the local LAN.

    Router

    Many modern routers have a VPN server built-in as standard (typically based on OpenVPN).

    Using your router to provide the VPN support has the great advantage of not needing any other component on your home LAN to be operational for the VPN to function. Once setup it should allow you to access all devices on your home LAN in a similar manner to when you are directly connected to the LAN.

    OpenVPN

    This has been the way that has historically been advocated to allow connections to be made between an Unraid server and the internet.

    OpenVPN is a well-established solution so if you want to use OpenVPN then you can search Community Applications for a plugin or docker container that meets your requirements. You may also find the SpaceInvaderOne YouTube video of use in setting it up.

    WireGuard

    Overview

    Wireguard logo

    Unraid has built-in support for WireGuard VPN connections. The intention is to make it as easy as possible for Unraid users to set up VPN connections to/from their Unraid servers.

    Some points to note about the Unraid WireGuard implementation are:

    • The WireGuard service is built into Unraid so there is no need to add 3rd party software to achieve a VPN connection.
    • The WireGuard service can be set to auto-start as part of the Unraid boot process.
    • The WireGuard service is available even if the array is not started.
    • WireGuard uses a light-weight protocol so performance tends to be better than OpenVPN.
    • The interface is available under Settings > VPN Manager.

    More information about WireGuard can be found on the WireGuard website.

    What can you do with WireGuard? Let's walk through each of the connection types:

    • Remote access to server: Use your phone or computer to remotely access your Unraid server, including:
      • Unraid administration via the webGUI
      • Access Docker containers, VMs, and network shares as though you were physically connected to the network
    • Remote access to LAN: Builds on "Remote access to server", allowing you to access your entire LAN as well.
    • Server to server access: Allows two Unraid servers to connect to each other.
    • LAN to LAN access: Builds on "Server to server access", allowing two entire networks to communicate. May require additional settings.
    • Server hub & spoke access: Builds on "Remote access to server", except that all of the VPN clients can connect to each other as well. Note that all traffic passes through the server.
    • LAN hub & spoke access: Builds on "Server hub & spoke access", allowing you to access your entire LAN as well.
    • VPN tunneled access: Route traffic for specific Docker containers and VMs through a commercial WireGuard VPN provider.
    • Remote tunneled access: Securely access the Internet from untrusted networks by routing all of your traffic through the VPN and out Unraid's Internet connection.

    The following diagram attempts to show these different connection types in a graphical format

    Connection Types

    Incoming VPN Connections

    This section will walk through how to setup WireGuard so that your trusted devices can VPN into your home network to access Unraid and the other systems on your network.

    Implementation considerations

    • Understand that giving someone VPN access to your LAN is just like giving them physical access to your LAN, except they have it 24x7 when you aren't around to supervise. Only give access to people and devices that you trust, and make certain that the configuration details (particularly the private keys) are not passed around insecurely. Regardless of the "connection type" you choose, assume that anyone who gets access to this configuration information will be able to get full access to your network.
    • This guide works great for simple networks. But if you have Docker containers with custom IPs or VMs with strict networking requirements, please see the Complex Networks section.
    • Unraid will automatically configure your WireGuard clients to connect to Unraid using your current public IP address, which will work until that IP address changes. To future-proof the setup, you can use Dynamic DNS instead. There are many ways to do this, probably the easiest is described in this 2 minute video from SpaceInvaderOne.
    • If your router has UPnP enabled, Unraid will be able to automatically forward the port for you. If not, you will need to know how to configure your router to forward a port.
    • You will need to install WireGuard on a client system. It is available for many operating systems as mentioned at WireGuard clients. Android or iOS make good first client systems because you can get all the details via QR code.

    Setting up the Unraid side of the VPN tunnel

    • If UPnP is enabled on your router and you want to use it in Unraid, go to Settings -> Management Access and confirm "Use UPnP" is set to Yes
    • On Unraid go to Settings > VPN Manager

    Initial setup screen

    • Give the VPN Tunnel a name, for example MyHome VPN.
    • Select Generate Keypair. This will generate a set of public and private keys for Unraid. Take care not to share the private key by accident (such as in a screenshot like this).
    • By default, the local endpoint will be configured with your current public IP address. If you chose to setup DDNS earlier, change the IP address to the DDNS address.
    • Unraid will recommend a port to use. You typically won't need to change this unless you already have WireGuard running elsewhere on your network.
    • Select Apply.
    • If Unraid detects that your router supports UPnP, it will automatically setup port forwarding for you:

    UPnP available

    • If you see a note that says "configure your router for port forwarding..." you will need to login to your router and setup the port forward as directed by the note:

    UPnP not available

    • Some tips for setting up the port forward in your router:
      • Both the external (source) and internal (target/local) ports should be set to the value Unraid provides. If your router interface asks you to put in a range, use the same port for both the starting and ending values. Be sure to specify that it is a UDP port and not a TCP port.
      • For the internal (target/local) address, use the IP address of your Unraid system shown in the note.
      • Google can help you find instructions for your specific router, i.e. "how to port forward Asus RT-AC68U".
    • Note that after Apply, the public and private keys are removed from view. If you ever need to access them, click the "key" icon on the right-hand side.

    Key icon

    • Similarly, you can access other advanced settings by pressing the "down chevron" on the right-hand side. They are beyond the scope of this guide, but you can turn on help to see what they do.
    • In the upper right corner of the page, change the Inactive slider to Active to start WireGuard. Optionally, you can set the tunnel to autostart when Unraid boots.

    Activate switch

    Defining a Peer (client)

    1. Select Add Peer. +Add Peer
    2. Give it a name, such as MyAndroid.
    3. For the initial connection type, choose Remote access to LAN. This will give your device access to Unraid and other items on your network.
    4. Click "Generate Keypair" to generate public and private keys for the client. The private key will be given to the client/peer, but take care not to share it with anyone else (such as in a screenshot like this)
    5. For an additional layer of security, click "Generate Key" to generate a preshared key. Again, this should only be shared with this client/peer.
    6. Click Apply.
    信息

    Technically, the peer should generate these keys and not give the private key to Unraid. You are welcome to do that, but it is less convenient as the config files Unraid generates will not be complete and you will have to finish configuring the client manually.

    警告

    It can be a little risky to add a new client ("peer") to WireGuard if you are already connected remotely using WireGuard as adding a new peer sometimes toggles the WireGuard tunnel off which will render you unable to reconnect. This is because a configuration change is made effective by disabling the tunnel with the current (old) configuration and then activating it with the updated (new) configuration. If there is any sort of configuration conflict at this point the tunnel remains inactive, and you can no longer connect to the Unraid server.

    Configuring a Peer (client)

    • Select the eye icon to view the peer configuration. If the button is not selectable, you must first apply or reset your unsaved changes.

    Peer area - Eye icon

    Peer details popup

    • If you are setting up a mobile device, choose the "Create from QR code" option in the mobile app and take a picture of the QR code. Give it a name and make the connection. The VPN tunnel starts almost instantaneously, once it is up you can open a browser and connect to Unraid or another system on your network. Be careful not to share screenshots of the QR code with anyone, or they will be able to use it to access your VPN.
    • If you are setting up another type of device, download the file and transfer it to the remote computer via trusted email or dropbox, etc. Then unzip it and load the configuration into the client. Protect this file, anyone who has access to it will be able to access your VPN.

    About DNS

    Everything discussed so far should work if you access the devices by IP address or with a Fully Qualified Domain Name such as yourpersonalhash.unraid.net.

    Short names such as "tower" probably won't work, nor any DNS entries managed by the router.

    To get those to work over the tunnel, return to the VPN Manager page in Unraid, switch from Basic to Advanced mode, and add the IP address of your desired DNS server into the "Peer DNS Server" field (don't forget to put the updated config file on the client after saving it!) You may want to use the IP address of the router on the LAN you are connecting to, or you could use a globally available IP like 8.8.8.8

    This is particularly important for "Remote tunneled access" mode if the client's original DNS server is no longer accessible after all traffic is routed through the tunnel.

    Note that mdns addresses such as tower.local are designed to work on the local network only and not over a WireGuard connection.

    Complex Networks

    The instructions above should work out of the box for simple networks. With "Use NAT" defaulted to Yes, all network traffic on Unraid uses Unraid's IP, and that works fine if you have a simple setup.

    However, if you have Docker containers with custom IPs or VMs with strict networking requirements, you'll need to make a few changes:

    • In the WireGuard tunnel config, set "Use NAT" to No
    • In your router, add a static route that lets your network access the WireGuard "Local tunnel network pool" through the IP address of your Unraid system. For instance, for the default pool of 10.253.0.0/24 you should add this static route:
      • Destination Network: 10.253.0.0/24 (aka 10.253.0.0 with subnet 255.255.255.0)
      • Gateway / Next Hop: IP address of your Unraid system
      • Distance: 1 (your router may not have this option)
      • If you use pfSense, you may also need to check the box for "Static route filtering - bypass firewall rules for traffic on the same interface"
    • Navigate to Settings > Docker Settings and set Host access to custom networks to Enabled

    Configurations to avoid

    There are some configurations you'll want to avoid, here is how a few key settings interact:

    • With "Use NAT" = Yes and "Host access to custom networks" = disabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (this is the "simple network" setup assumed by the guide above)
    • With "Use NAT" = Yes and "Host access to custom networks" = enabled (static route optional)
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this config)
    • With "Use NAT" = No and no static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - NOT accessible
      • dockers with custom IP - NOT accessible
      • (avoid this, if "Use NAT" = No, you really need to add a static route in your router)
    • With "Use NAT" = No and "Host access to custom networks" = disabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - NOT accessible
      • (You've come this far, just set "Host access to custom networks" to enabled you're set)
    • With "Use NAT" = No and "Host access to custom networks" = enabled and static route
      • server and dockers on bridge/host - accessible!
      • VMs and other systems on LAN - accessible!
      • dockers with custom IP - accessible!
      • (woohoo! the recommended setup for complex networks)

    Troubleshooting WireGuard

    WireGuard is not a chatty protocol, in fact, it is designed to be invisible! There aren't really any error messages if things aren't working, it either works or it doesn't. It cannot be detected by a port scanner.

    If you can't connect, it will mainly be an exercise in double-checking your work:

    • Confirm that the tunnel is active (!) on both the Unraid side and the client side. Note that "active" does not mean "connected". It simply means that the tunnel has started from that end. If DDNS/port forwards/etc are all setup correctly then the two ends will connect and the Unraid dashboard will show a "handshake" and data being transferred.
    • Confirm that your DDNS is pointed at your current public IP address, and is assigned to your "Local endpoint"
    • Confirm that you forwarded the correct UDP port through your router to Unraid, and assigned that same port to the "Local endpoint"
    • If you made any changes to your configuration after setting up your clients, you will need to set the clients up again so they have the latest config.
    • Be sure you save your changes before you press "View Peer Config", otherwise your QR codes/files will not have the latest data.

    A few other ideas:

    • For your first client, setup a phone using its data connection (not wifi). This eliminates issues related to the client network, and the QR code is the easiest way to transfer settings. Once you have it working from your phone, move on to other clients.
    • If you are unable to get a handshake between the client and the server, try doing something that actually uses the tunnel. The client may be waiting for traffic before it starts the connection.
    • Disable any energy saving features on the client, phones in particular may not use VPNs properly when in low power mode. Also, you may need to disable any "Data Saver" features on the phone so that VPN is not throttled.
    • If you are connecting from another network over the Internet, be sure that the networks on both sides use different subnets. You can't connect two networks that both use 192.168.1.0/24, for instance.
    • If you are using Cloudflare for DDNS, be sure to configure the Cloudflare "Proxy status" to "DNS only" and not "Proxied". Note that this change takes some time to take effect.
    • If you can connect from some locations but not others, keep in mind that the "broken" remote locations may have a firewall that blocks UDP traffic. Hopefully, WireGuard will support TCP in the future, but currently, there is no workaround for this.
    • If nothing is working properly, switch to advanced mode and confirm that the "Local tunnel network pool" is not already in use on your network or on one of the networks you are connecting to. If there is a conflict you will need to change it to a different private network (10.0.0.0 to 10.255.255.255 | 172.16.0.0 to 172.31.255.255 | 192.168.0.0 to 192.168.255.255)
    • If you can't reach the Unraid webGUI for some reason and you need to prevent a WireGuard tunnel from automatically starting, delete this file from your flash drive and reboot: +/boot/config/wireguard/autostart
    • Note that if you have Docker containers with custom IPs or VMs with strict networking requirements, you will likely have issues. Please see the "Complex Networks" section above.

    Outgoing VPN Connections

    This section explains how to make an outgoing WireGuard VPN connection from an Unraid server to a commercial VPN provider. If you are trying to access your Unraid network from a remote location, see the section on +making inbound connections. There is a forum thread discussing making an outbound VPN connection using WireGuard

    Commercial VPN Providers

    Several commercial VPN providers now support WireGuard. The community has had success with the options listed below but this is not intended to be an exhaustive list. No endorsement is implied, you need to research and determine which one meets your needs.

    Note that any provider that requires a custom WireGuard client will not work with Unraid.

    Note that VPN providers cannot guarantee the same amount of privacy as they can with OpenVPN, see here for detail. Typically the objections are not around security, but around the fact that it is harder for them to guarantee that they cannot track you.

    Configuring “VPN tunneled access for Docker”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • The “Peer type of access” will default to “VPN tunneled access for docker”. There are no settings to change, except perhaps to give it a local name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Take note the name of this tunnel, it will be wg0 or wg1 or wg2, etc. You'll need this later when setting up your containers
    • Also note that any DNS setting the Commercial VPN provides is not imported. Open their config file and see if there is a "DNS" entry, make note of the server they provided, you will use it below. If they didn't provide one, you may want to use Google's at 8.8.8.8.
    Testing the Docker tunnel
    信息

    The "VPN tunneled access for docker" tunnel includes a kill switch - if the tunnel drops then any containers using that tunnel will lose access to the Internet.

    Important! Prior to Unraid 6.11.2, you must take care to start the WireGuard tunnel before the Docker container in order for the kill switch to work. If the docker container is started first, it will use the server's default Internet connection. That is no longer an issue for tunnels created/updated after installing Unraid 6.11.2.

    • Using Community Applications, install a Firefox Docker container
    • When setting up the container, set the “Network Type” to “Custom: wg2” (or whatever the name of the tunnel was in the previous step)
    • Switch to Advanced view and add your preferred DNS provider to the "Extra Parameters". i.e.: +--dns=8.8.8.8 +(if you don't set this, the container may leak your ISP's DNS server)
    • The rest of the defaults should be fine, apply the changes and start the container
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider
    • Also visit https://www.dnsleaktest.com/ and run a test, confirm that it only finds IPs related to the DNS provider you specified.
    • Feel free to add more containers to this same tunnel, or create multiple tunnels if desired.

    Configuring “VPN tunneled access for system”

    • Download a config file from your preferred commercial VPN provider
    • On the Settings -> VPN Manager page, click the "Import Config" button and select the file on your hard drive. This will create a new tunnel specific to this provider.
    • There are no settings to change, except perhaps to give it a name. Click Apply.
    • Note: You do not need to forward any ports through your router for this type of connection
    • Change the Inactive slider to Active
    • Now ALL of your Unraid traffic will go through the commercial VPN tunnel.
      • You may need to disable the tunnel in order to check for plugin updates or perform other Unraid administrative tasks.
      • Since ALL traffic is routed through this tunnel, you cannot start a second tunnel while this one is enabled.
      • Note that currently Unraid will ignore any DNS server that is specified in the downloaded config file. Unraid's DNS should be set to something that will work whether the tunnel is up or down, such as 8.8.8.8 and 8.8.4.4
    Testing the System tunnel
    • Using Community Applications, install a Firefox Docker container
    • Accept all defaults
    • Launch Firefox and visit https://whatismyipaddress.com/ you should see that your IP address is in the country you selected when you signed up with the provider

    Support

    The forum is the place to ask questions and get the most up-to-date information on using WireGuard with Unraid. The threads most likely to be of interest are:

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/shares/create-a-share/index.html b/zh/unraid-os/manual/shares/create-a-share/index.html new file mode 100644 index 000000000..d26db4207 --- /dev/null +++ b/zh/unraid-os/manual/shares/create-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Create a new share | Unraid Docs + + + + + + + + + + +
    +

    Create a new share

    When you create a new share, plan ahead.

    1. On the Shares tab select Add Share.

    2. Enter a name for your share in Share name

      Share names

      The Linux file systems used by Unraid are case sensitive while the SMB share system - the one used by Windows - is not. However, at the network level, case is ignored so media, Media, and MEDIA would all be the same share. When you view the share on the network, you only get the content of one of those underlying folders to appear - and it would not be clear which one this would be.

    3. (Optional) Enter a description for the share in the Comments field. This is visible when viewed over the network.

    4. Set a Minimum free space value, in kilobytes, if you plan to use the setting, otherwise leave it empty.

    5. Select the Primary storage for your share. The dropdown displays all available options, which include: the cache, the array, and any named pool.

    6. Select the Allocation method: high-water, fill-up, or most-free, depending on your use case. You can read about the differences here.

    7. Select the Split level method for your data. You can find more information split level, here.

    8. In Included disks choose which disks will be available to the share. By default, all disks will be included.

    9. In Excluded disks choose which disks will not be available to the share. Note that if you configure Included disks there is no need to configure Excluded disks.

    10. Select a Secondary storage if you plan on using it. Think of secondary storage as a fall-back resource when the primary storage is full. By default this is set to None.

    11. (Optional) If you configure a primary and secondary storage, then Mover action option becomes active. This sets the direction of file transfers between Primary and Secondary storage.

    12. Select Add share to complete the creation.

    信息

    Note that, by default, a new share will not be shared over the network. You must configure network access after the share is created.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/shares/delete-a-share/index.html b/zh/unraid-os/manual/shares/delete-a-share/index.html new file mode 100644 index 000000000..c90a262ff --- /dev/null +++ b/zh/unraid-os/manual/shares/delete-a-share/index.html @@ -0,0 +1,22 @@ + + + + + +Delete a share | Unraid Docs + + + + + + + + + + +
    +

    Delete a share

    To delete a share on your Unraid server the share must contain no data.

    Delete an empty share

    1. Go to Shares.
    2. Select the share you want to delete.
    3. Select the Delete checkbox. The Apply button switches to a Delete button.
    4. Select the Delete button.
    5. The system confirms the share has been deleted. Select Done.

    Delete a share that contains data

    1. Go to Apps.
    2. Install a file management plugin from Community, such as Dynamix File Manager.
    3. Go to Shares.
    4. Select the browse icon to the left of the name of the share you wish to delete. This displays the content of the drive.
    5. If you have installed a file manager, this view is enhanced with extra functionality to perform different file operations, including deletion.
    6. Delete the data or move it to another share on the server.
    7. Return to Shares.
    8. Select the share you want to delete. This will open the share settings. If no data is left in the share, a Delete checkbox is available.
    9. Select the Delete checkbox. The Apply button switches to a Delete button.
    10. Select the Delete button.
    11. The system confirms the share has been deleted.
    12. Select Done to return to Shares
    提示

    Optionally, if you have read/write access to the shared folder over the network, you can use, for example, Windows Explorer or macOS Finder, to access the share and delete the data.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/shares/disk-shares/index.html b/zh/unraid-os/manual/shares/disk-shares/index.html new file mode 100644 index 000000000..13bd09871 --- /dev/null +++ b/zh/unraid-os/manual/shares/disk-shares/index.html @@ -0,0 +1,22 @@ + + + + + +Disk shares | Unraid Docs + + + + + + + + + + +
    +

    Disk shares

    提示

    Enable or disable disk shares in Settings > Global Share Settings. Disk shares are disabled by default.

    Overview

    Disk shares correspond to individual array drives or pools within the Unraid system and are visible over the network. Once enabled, disk shares appear in the Unraid GUI under a Disk Shares section on the Shares tab. If you create a disk share, you should modify the user access permissions to restrict network user access.

    When viewed at the Linux level, the physical devices or pools will appear directly under /mnt with a name corresponding to the array drive or pool. This happens regardless of whether Disk Shares are enabled.

    Examples of such names are:

    • /mnt/diskX: - these are individual drives in the array where X corresponds to the disk number that shows in the Unraid GUI. The corresponding disk share at the network level would be diskX.
    • /mnt/pool-name: - these are pools of disks. A single pool can actually consist of multiple drives but Unraid treats them as if they were one drive. The most common example of a pool name is 'cache', but you can set any name. The corresponding disk share at the network level would be pool-name.
    警告

    The Unraid flash device, used to boot Unraid and store all user settings, is also a physical device. However, it is not considered to be a disk share. If you want it visible on the network then you can click on it in the Main tab and set it to appear at the network level as the 'flash' share. At the Linux level it is mounted at /boot.

    Due to the nature of the Unraid boot device, we recommend you maintain your shares in Private mode, with read/write access given to trusted users.

    Disk share constraints

    If you have both disk shares and user shares enabled in Global Share Settings, then there is an important restriction that you must observe to avoid potential data loss.

    You must never copy between a user share and a disk share in the same copy operation where the folder name on the disk share matches the name of the user share. For example, cp /mnt/user/share/file /mnt/disk1/share/file.

    At the base system level, Linux does not understand user shares, and cannot tell apart a file in a disk share from one in a user share. If you mix the share types in the same copy command you can end up trying to copy the file to itself which results in the file being truncated to zero length and its content being lost.

    There is no problem if the copy is between shares of the same type, or copying to/from a disk mounted as an Unassigned Disk.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/shares/index.html b/zh/unraid-os/manual/shares/index.html index e1a6e31d0..40d54740d 100644 --- a/zh/unraid-os/manual/shares/index.html +++ b/zh/unraid-os/manual/shares/index.html @@ -1,495 +1,22 @@ - + -Shares | Unraid Docs +Shares | Unraid Docs - - - + + +
    -

    Shares

    Once you have assigned some devices to Unraid and started the array, you -can create shares to simplify how you store data across multiple disks -in the array. Unraid will automatically create a handful of shares for -you that it needs to support common plugins, containers, and virtual -machines, but you can also create your own shares for storing other -types of data. Unraid supports 2 types of share:

    • User Shares
    • Disk Shares

    You can control which of these types of shares are to be used under -Settings->Global Share Settings. The default on Unraid is to have User -Shares enabled but Disk Shares disabled.

    It is sometimes important to realize that these are two different views -of the same underlying file system. Every file/folder that appears -under a User Share will also appear under the Disk Share for the -physical drive that is storing the file/folder.

    User Shares

    User Shares can be enabled/disabled via Settings->Global Share -Settings.

    From the Shares tab, you can either create a new share or edit -an existing share. Click the Help icon in the top-right of the -Unraid webGui when configuring shares for more information on the -settings available._

    User Shares are implemented by using Linux Fuse file system support. -What they do is provide an aggregated view of all top level folders of -the same name across the cache and the array drives. The name of this -top level folder is used as the share name. From a user perspective this -gives a view that can span multiple drives when viewed at the network -level. Note that no individual file will span multiple drives - it is -just the directory level that is given a unified view.

    When viewed at the Linux level then User Shares will appear under the -path /mnt/user. This includes the files on the main array and also -any for the share on any pool. It is important to note that a User Share -is just a logical view imposed on top of the underlying physical file -system so you can see the same files if you look at the physical level -(as described below for Disk Shares).

    • Current releases of Unraid also include the mount point -/mnt/user0 that shows the files in User Shares OMITTING any -files for a share that are on any pool. This is just a different -view of the files on your server. However This mount point is now -deprecated and may stop being available in a future Unraid release.

    Normally one creates User Shares using the Shares tab. However if you -manually create a top level folder on any drive the system will -automatically consider this to be a user Share and give it default -settings.

    Which physical drive in the main array is used to store a physical file -is controlled by a number of settings for the share:

    • Allocation method: This has various options:

      • Most Free: This option means that new files should go to the -disk with the most free space. It has the downside that one is -continually switching drives which keeps the drive involved spun -up.

      • Fill Up: This option means simply fill up drives in disk -order until the free space falls below the Minimum Free Space -setting, and when that happens move onto the next disk. Many -users like this setting because their content is static in -nature to they find this a simple way to manage their storage.

      • High Water: (default) This option attempts to provide a -compromise between continually switching drives as is caused by -the Most Free setting and filling up disks in a sensible -manner, but not fill each drive to capacity before using the -next one. The aim is to allow related files do be kept together -on the same drive and to let unused drives be spun down.

        • It works with switch points based by continually halving the -size of the largest drive in the array.
        • Many people find this confusing (particularly in an array with -drives of varying size). so as an example if you had an array -consisting of drives of 8TB, 3Tb and 2TB
          • The largest drive is 8TB so the switch points are 4TB, 2TB, -1Tb etc.
          • The 4TB switch point is active so The 8TB Drive one would be -filled to 4TB free space left.
          • The 2TB switch point becomes active so the 8TB and 3TB -drives each gets used in disk order until it they have 2TB -free space
          • The 1TB switch point becomes active so each drive now gets -used in disk order until it only has 1TB free space.
          • etc
    • Included or excluded drives: These settings allow you to -control which array drives can hold files for the share. Never set -both values, set only the one that is most convenient for you. If no -drives are specified under these settings then all drives allowed -under Settings >> Global Share settings are allowed.

    • Split level: This setting controls how files should be grouped.

    Important: in the event of there being contentions between the -Minimum free space, Split Level and the Allocation -method settings in deciding which would be an appropriate drive to -use the Split level setting always wins. This means that you can -get an out-of-space error even though there is plenty of space on -other array drives that the share can logically use.

    Changing any of these settings for a share only affects where any new -files are put. Any files already present in the share are left where -they are located when a setting is changed. It takes Manual action to -move existing files.

    Important: The Linux file systems used by Unraid are case sensitive -while the SMB share system is not. As an example this means that a -folder at the Linux level a folder called 'media' is different to one -called 'Media'. However at the network level case is ignored so for -example 'media', Media', 'MEDIA' would all be the same share. -However to take this example further you would only get the content of -one of the underlying 'media' or 'Media' folders to appear at the -network share level - and it can be non-obvious which one this would be.

    The following sections proved more detail on how these settings work:

    Allocation method

    When a new User share is created, or when any object (file or directory) -is created within a User share, the system must determine which data -disk the User share or object will be created on. In general, a new User -share, or object within a User share, will be created on the data disk -with the most free space. However there are a set of share configuration -parameters available to fine tune disk allocation.

    The basic allocation strategy for a share is defined by the Allocation -method configuration parameter. You may select one of three allocation -methods for the system to use.

    High Water

    The high water allocation method attempts to step fill each disk so at -the end of each step there is an equal free space left on each disk. The -idea is to progressively fill each disk but not constantly go back and -forth between disks each time new data is written to the array. Most -times, only a single disk will be needed when writing a series of files -to the array so the array will only spin-up the needed disk. The high -water level is initially set equal to one-half of the size of the -largest disk. A new high water level is again set to one-half of the -previous high level once all the disks have less free space than the -current high water level.

    The above example shows what will occur when there is a mix of 4 disks -varying is size from 500gig to 2T in size.

    First Pass - The high water level is set to one-half of the size of the -2T drive or 1T. Each disk will be filled until it has <1T of free space -remaining. This means no data is stored on disk1 or disk2 since both -already have <1T of free space. 500gig of data will be stored on disk3 -followed by 1T of data being stored on disk4.

    Second Pass - The high water level is reset to one-half of the previous -level or 500gig. Each disk will be filled until it has <500gig of free -space remaining. This means no data is stored on disk1 since it already -has <500gig of free space. 500gig of data will be stored on disk2 and -then 500gig of data will be stored on disk3 and finally 500gig of data -will be stored on disk4.

    Third Pass - The high water level is again reset to one-half of the -previous level or 250gig. Each disk will be filled until it has <250gig -of free space remaining. 250gig of data will be stored on disk1 and then -250gig of data will be stored on disk2 and then 250gig of data will be -stored on disk3 and finally 250gig of data will be stored on disk4. An -interesting note is that the 500gig disk does not get used at all until -the third pass. Don't be concerned if the smaller sized disks don't -immediately get used with this method.

    This pattern will continue with progressively smaller high water levels -until the disks are full.

    Most Free

    The most free allocation method simply picks the disk with the most free -space and writes the data to that disk. Each time a file is written -Unraid will check the free space on the disks and pick the one with the -most free space.

    Fill-Up

    The fill-up allocation method simply attempts to fill each disk in order -from the lowest numbered disk to the highest numbered disk. The fill-up -allocation method must be used in conjunction with the minimum free -space setting. Otherwise, Unraid will begin to give disk full errors and -not allow any more transfers once the first disk gets close to being -full.

    Min. Free Space

    The minimum free space setting is used with the allocation method and -split level. The Minimum Free space setting doesn't control how much -space is kept free, but instead it controls how much space must be free -for a drive to be chosen for a new file. The minimum free space setting -therefore tells Unraid to stop putting new content onto the disk when -the free space falls below the level you set (as long as the Split Level -setting indicates it can be split to a new disk). This must be used with -the fill-up allocation method or disk full errors will occur when there -is not enough space to fit a file you are trying to write to the array.

    First a brief explanation of how Unraid will typically receive a file. -Unraid typically receives data in this manner. First, Unraid receives -the request to store a file, named for example "file.eg". At this -time, Unraid has no idea how big "file.eg" is so Unraid will pick a -spot to place "file.eg" and begin to store the file data as the data -is transferred over the network. Now, this is important because Unraid -may pick a storage disk that does not have enough space to store the -complete "file.eg". Unraid doesn't know there is not enough space -when it first places the file so Unraid will only find out the disk -doesn't have enough space when the disk is full. At this point, the -transfer will fail with a disk full error.

    So, Unraid will write to a different disk if the minimum free space is -set to a value larger than the biggest file size you will ever transfer. -The recommended setting is 2 times the largest file size you will ever -transfer. For example, if the largest file you have is 8gig in size then -set the minimum free space to 16gig. This allows you to transfer files -that may vary in size somewhat and not accidentally transfer one too -large. The minimum free space is set in kilo-bytes.

    Here are some examples of the minimum free space setting;


    Free SpaceValue
    500 meg500000
    20 gig20000000
    40 gig40000000

    Note that unRAID will still place files on the disk if the split level -does not allow the files to be placed on another disk with more free -space.

    Also note that Unraid will typically not move a file onto a new disk if -you're over-writing or updating it. For example, a backup file that -grows in size over time could end up filling a disk and causing a disk -full error.

    IMPORTANT: There is also a Minimum Free Space setting for cache pools. -This is used to determine when a new file for a User Share with the Use -Cache setting having a value of Yes or Prefer should be written to the -cache or instead bypass the cache and go directly to the array. This -needs to be set if you want to avoid filling a cache pool which can -cause problems. As for this value when used with a User Share it -should be larger than the largest file you intend to write, and some -people like to make it significantly larger. You get to this setting by -clicking on a pool on the Main tab.

    Split level

    The split level setting tells Unraid how many folder levels are allowed -to be created on multiple disks. The split level can be used to ensure -that the contents of a folder are kept on the same disk. The split level -numbering starts with the user share being the top level and given the -number 1.

    IMPORTANT: in the event of there being contention between the -various settings for a share over which array drive to select for a file -the Split Level setting always takes precedence. This means the -Allocation Method and Minimum Free Space settings end up being -over-ridden. This can mean Unraid chooses a drive which does not have -enough space for the file so that an out-of-space error subsequently -occurs for the file.

    The Split level setting is one that many users find confusing to here -is a more detailed description of how it works.

    Here is an example showing a possible directory structure for a user -share called "Media".

    Note: I (the original author of this section) consider combining -media types into a single large share a poor way to store media. I use a -share for each media type. Movies is a share and TV shows is a share. I -combined the movies and TV shows to show the pitfalls in the split -levels when doing this as explained after the figure.

    Here is an explanation of the different split levels, referenced to the -folder structure above;

    1. Level 1
      • This is what you have if in the GUI you select the -"Automatically split only the top level directory as required" -option.
      • The top level Media share can be created on every disk.
      • Every other folder under the Media share must remain on a single -disk.
      • This setting does not allow the SD Movies, HD Movies, Kids -Movies or TV Shows folders to spread to multiple disks.
      • This setting is too low for all the media.
    2. Level 2
      • this is what you have if in the GUI you select the -"Automatically split only the top two directory levels as -required" option.
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder must remain on a single -disk.
      • This setting may work well. It will keep each movie and each TV -series together on a single disk.
      • This setting may give issues because it keeps each TV series on -a single disk. So, a disk may fill as new TV seasons are added -to a TV show which is on a disk which is close to full.
    3. Level 3
      • This is what you have if in the GUI you select "Automatically -split only the top three directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder must remain on a single disk.
      • This setting will allow the contents stored in each Movie Folder -to be spread out onto multiple disks.
      • This setting is too high for the different movie types.
    4. Level 4
      • This is what you have if in the GUI you select "Automatically -split only the top four directory levels as required".
      • The top level Media share can be created on every disk.
      • The SD Movies, HD Movies, Kids Movies and TV Shows folders can -be created on every disk.
      • Each Movie Folder and TV Show Folder can be created on every -disk.
      • Each Season Folder can be created on every disk.
      • This setting is too high because it will allow the contents of -every folder to be spread out onto multiple disks. The split -level is not being used to keep similar content together.

    The only valid split level for the above example is 2. This causes a -split level limitation which forces each complete TV series to a single -disk. This can force a new TV season to be placed on a disk which is -almost full and result in out of space errors once new episodes -completely fill the disk. The split level can't be increased to 3 -because each individual movie would not be contained to a single disk.

    The first way to fix this split level mismatch issue is to create -separate shares for the movies and the TV shows. This way, the movies -can be set to use a split level of 2 and the TV shows can use a split -level of 3.

    For Movies use a split level = 2. This allows the "SD Movies", "HD -Movies" and "Kids Movies" folders to be placed on every disk and it -keeps each individual movie folder on a single disk. This way, any -single movie folder and the contents of the movie folder will remain on -a single disk.

    For TV_Shows use a split level of either 1 or 2. A split level of 1 will -keep each TV series on a single disk and split level of 2 will keep each -season on a single disk. The split level of 2 means that the complete TV -series can be stored on multiple disks, however each individual season -of that TV series will be on a single disk.

    The second way to fix the issue is to add another folder level to the -movies, starting first with a Movies folder in the Media share and then -placing the different movie types below this.

    This user share structure must use split level = 3. SD Movies, HD -Movies, Kids Movies and each TV series can exist on multiple disks. This -structure means each TV season can be on a different disk. This has the -opposite issue compared to the first example. You can not use split -level 2 to force each complete TV series to remain on a single disk -without messing up the ability of the movies to split to every disk.

    Some things to keep in mind.

    • The above examples are to demonstrate the use of the split level. It -is not necessary to store your media sorted in the same format as -the above example illustrates. You may want to use a Movies share -and then just place a "Movie Name" folder for each movie directly -into the share without sorting the movies by type.

    • It is completely valid to force each complete TV series to stay on a -single disk. Just understand that a continuing TV series will keep -filling the disk where it is first placed. This may require manual -intervention to shift some TV series from an almost full disk to an -empty disk. Using the Most Free allocation method can help eliminate -the issue since a completely new TV series would be placed on the -disk with the most free space.

    • The above TV example applies to any similar share. It could apply to -a Pictures share where you store the pictures in folders based on -the year (2010, 2011, 2012 etc) or it could apply to a Music share -where you store the music in a folder for each artist. In these -cases, a split level of 1 would keep a whole year of pictures on a -single disk or it would keep all the music by an artist on a single -disk.

    Disable Split Level

    It is also possible to disable the split level by setting a high split -level. A file copy or move will fail if a folder is locked to a full -disk and an attempt is made to add more files into that folder. Setting -a high split level will ensure each file will get written to the server -as long as a disk has space for it.

    Split Level = 1 Example

    The following example demonstrates how the share behaves when the split -level is set to 1. The Share name is New_Movies. Each movie stored in -this share has its own folder. Inside the movie folder is the movie file -as well as some metadata files used by MediaBrowser.

    The above Windows Explorer screen shot shows the file structure of the -New_Movies share on the left and the contents of the A History of -Violence movie folder on the right. The levels for this share are -labeled on the example. This is what split level = 1 means:

    • A New_Movies folder can be created on each disk allowed by the -include and exclude disk settings. A new New_Movies folder will be -created on the next disk in line when the allocation method calls -for Unraid to begin filling the next disk. Note that the New_Movies -folder will only be created on the next disk in line when it is -necessary and not when the share is created.

    • The A History of Violence folder can only -exist on one disk. Once it is created on the disk, all of the -contents will remain on the same disk. Any changes or additions to -this folder will remain on the same disk. For example, a new file -called movie.nfo for the XBMC metadata might be created in this -folder in the future. The movie.nfo file will be created in the -existing A History of Violence folder. A duplicate A History of -Violence folder will not be created on another disk to store this new -file.

    You will notice that the movie folders (500) Days of Summer (2009) and -2 Fast 2 Furious (2003) both appear in the New_Movies share. The next -screen shot will show how each of these files is stored on a separate -disk.

    The above screen shot shows side by side Window Explorer views of the -file structure stored on disk1 and disk2. On the left is disk1 and on -the right is disk2. The left Explorer window shows the contents of -disk1. The New_Movies share is a folder stored at the top level or the -root of disk1 with the individual movie directories stored in this -directory. The right Explorer window shows the contents of disk2. The -New_Movies share is a folder stored at the top level or the root of -disk2 with the individual movie folders stored in this directory. As -files were being moved into the New_Movies share, Unraid created the -New_Movies folder on both disk1 and disk2 to store these files.

    The windows side by side can be used to examine the contents of the -New_Movies share on a disk by disk basis. You will notice that the movie -folder (500) Days of Summer (2009) is stored on disk1 and the movie -folder 2 Fast 2 Furious (2003) is stored on disk2. As previously noted, -Unraid combines the movies stored on disk1 and disk2 into one network -share called New_Movies and both movies appear in the New_Movies network -share.

    Take note that a share called Movies is also visible on disk2.

    Split Level 0

    This is what you have if in the GUI you select "Manual: do not -Automatically split directories".

    Split level 0 is a special case. Split level 0 requires you to create -the desired top level or parent folder structure. Unraid will -unconditionally create an object on the disk that contains the parent -folders. Unraid will choose which disk to use according to the -allocation method if the parent folders exist on multiple disks.

    If you set the Split level to 0, then all directories/files created -under that share will be on the same disk where the directory within -that share share was originally created. In other words, use level 0 to -not allow the share to split automatically across disks

    NOTE: If you create the same folder structure on multiple disks then -Unraid will apply the other share settings to decide which disk to use.

    Example

    The server has 4 disks. A user share called Media is desired. Different -types of media will be stored in this share. The desired structure is;

    • disk1 - will hold the DVD movies.
    • disk2 - will hold the BluRay movies.
    • disk3 - will hold the BluRay movies.
    • disk4 - will hold the TV series.

    The desired structure is illustrated below.

    On the left side is how the user share will appear and on the right side -is the folder structure on each disk. The user will go to each disk and -create the folders shown in red to create the storage as listed above. -Then, the Media folder as well as the DVD Movies, BluRay Movies and TV -Shows folders become the parent folders for everything stored in the -Media share. The media will be sorted by disk as follows;

    • Movies placed in the DVD Movies folder will go to disk1.
    • Movies placed in the BluRay Movies folder will go to disk2 or disk3. -The disk is selected by the allocation method.
    • TV shows placed in the TV Shows folder will go to disk4.

    Say one day that disk1 is full and disk5 is added to the server to hold -new DVD Movies. The same folders on disk1 must be created on the new -disk5. In other words, the folder Media and sub-folder DVD Movies must -be created on disk5. Then, Unraid can use either disk1 or disk5 to store -DVD Movies.

    Split By Character

    Specify a character in the split level box to use this method. Then, -Unraid will not allow any folder name containing the character to split. -For example, set the split level to an opening square bracket ( [ ) -instead of a number. Then, create each movie folder with the year -encased in square brackets after the title in this manner - Iron Man 2 -[2010]. Unraid will see the opening square bracket ( [ ) and it will -not split this folder or any content stored inside this folder.

    This type of split level can allow different levels of sub-folders to be -specified as not splitting simply by inserting the character into the -folder name which should not split. This can overcome the limitation of -having a fixed split level for a share.

    Included and Excluded disk(s)

    The included disk(s) and excluded disk(s) parameters control which disks -are allowed to be used by each user share. These parameters can be used -separately or together to define the group of disks allowed for writing -files to each user share. The disks are entered by disk number with a -comma separating each disk, for example "disk2,disk5".

    Unraid will first check the included disks(s) set and then the Excluded -disk(s) set when deciding which disk to place a file on. Then, Unraid -will use the split level and allocation method to pick a disk which is -allowed to hold the file.

    Note: The Include/Exclude settings at the individual share level -only control which disks new files can be written to. Files on other -disks that are in a folder corresponding to the share name will still -show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are -candidates for allocation to that share. All disks may be used by the -user share when the Included disk(s) parameter is left blank. Specify -the disks to include here. For example, set the included disk(s) to -"disk1,disk2,disk3" to allow the share to only use disk1, disk2 and -disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are -excluded from use by the user share. No disks are excluded from use by -the user share when the excluded disk(s) parameter is left blank. -Specify the disks to exclude here. For example, set the excluded disk(s) -to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If you have Docker or VMs enabled then a number of default shares are -set up to support their use. It is not mandated that you use these -shares (and the system will let you remove them if you do not want to -use them for their standard purpose) but it is recommended as it tends -to make it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata: this is the default location for storing working files -associated with docker containers. Typically there will be a -sub-folder for each docker container.
    • system: this is the default location for storing the docker -application binaries, and VM XML templates
    • domains: this is the default location for storing virtual disk -images (vdisks) that are used by VMs.
    • isos: this is the default location for storing CD iso images for -use with VMs.

    Unraid 6.12

    The Unraid 6.12 release has introduced some new terminology to make it -clearer to new users where files are initially placed and where they -will end up. The same functionality is present in earlier releases, but -has often been misunderstood by new users.

    Primary Storage

    This is the location to which new files will be written.

    If Primary storage is below the Minimum Free Space setting then new -files and folders will be created in Secondary storage, if configured

    For the Primary storage drop-down:

    • this option is mandatory. ie, Primary storage must be selected
    • any named pool can be selected
    • "Array" can be selected (meaning the Unraid array)

    Secondary Storage

    This is the location where files will be moved to if appropriate.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this -share i.e Secondary storage is optional
    • if Primary storage is a pool name, then the only options are -"none" and "Array"
    • if Primary storage is "Array", then only "none" appears as an -option

    Unraid 6.11 and earlier

    The following settings are only found in Unraid 6.11 and earlier. They -achieve the same functionality as the settings available in 6.12 but are -presented differently.

    Use Cache (and Mover Behavior with User Shares)

    Note: Starting with Unraid 6.9.0 multiple pools can exist and they -can have any name the user chooses. Any of these pools can act act as a -cache in the way Unraid uses the term. The word cache therefore is -referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called mover that is used in -conjunction with User Shares. It's behavior is controlled by the "Use -Cache for new files" setting under each User Share. The way these -different settings operate is as follows

    • Yes: Write new files to the cache as long as the free space on -the cache is above the Minimum free space value. If the free space -is below that then by-pass the cache and write the files directly to -the main array.

      When mover runs it will attempt to move files to the main array as -long as they are not currently open. Which array drive will get the -file is controlled by the combination of the Allocation method, -Split level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive -will get the file is controlled by the combination of the -Allocation method, Split level, and Minimum Free Space setting -for the share.

      When mover runs it will take no action on files for this share -even if there are files on the cache that logically belong to this -share.

    • Only: Write new files directly to the cache. If the free space -on the cache is below the Minimum free space setting for the cache -then the write will fail with an out-of-space error.

      When mover runs it will take no action on files for this share -even if there are files on the main array that logically belong to -this share.

    • Prefer: Write new files to the cache if the free space on the -cache is above the Minimum free space setting for the share, and -if the free space falls below that value then write the files to the -main array instead.

      When mover runs it will attempt to move any files for this share -that are on the main array back to the cache as long as the free -space on the cache is above the Minimum free space setting for the -cache

      It is the default setting for the appdata and System Shares that -are used to support the Docker and VM sub-systems. In typical use -you want the files/folders belonging to these shares to reside on -the cache as you get much better performance from Docker containers -and VMs if their files are not on the main array (due to the cost of -maintaining parity on the main array significantly slowing down -write operations).

      This setting works for a share even if you do not have (yet) a -physical cache drive(s) as then files will simply be written -directly to the array. If at a later date you add a cache drive -mover will now automatically try and move the files in any share set -to Prefer to the pool defined as the cache for the share to improve -performance. This is why it is the default for shares that are -typically located on the cache rather than Only as it caters for -those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where one wants -the files for a particular share initially written to a pool acting as a -cache to maximise write speed, but later you want it to be moved to the -main array for long term storage. Most of the time all that is required -is to set the Use Cache setting for the share to Yes and the default -behaviour handles the rest with no further user interaction.

    Sometimes for one reason or another users find that the files seem to be -'stuck' on a pool. The way to proceed in such a case to get the files -belonging to a share from a pool onto the main array is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved).
    • Change the Use Cache setting for the share to Yes
    • Manually run mover from the Main tab to get it to move Yes -type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use if you disabled them earlier.
    • (optional) change the Use Cache setting to Only to say files -for this share can never be written to the array.
    Moving Files from the Array to a Pool (cache)

    One typically wants files associated with running Docker containers or -VMs on a pool to maximise performance. It is not unusual for one reason -or another to find that one has files on the main array which you really -want to be on a pool. In particular this is likely to happen for the -appdata or system shares

    The way to proceed to get the files belonging to a share from the main -array onto a pool is:

    • Disable Docker/VM services if they are enabled (as files open in -these services cannot be moved)
    • Change the Use Cache setting for the share to Prefer
    • Manually run mover from the Main tab to get it to move -Prefer type shares from array to the pool (cache).
    • When mover finishes you can re-enable the Docker and/or VMs -services you use.
    • (optional) change the Use Cache setting to No to say files for -this share can never be cached on a pool.

    Disk Shares

    These are shares that relate to individual array drives or pools within -the Unraid system and that are visible over the network. By default if -User Shares are enabled then Disk Shares are not enabled (see the -IMPORTANT section below for the reason why this is the case). If you -want the Disk Shares to be enabled then this is done under -Settings->Global Share Settings. The Disk Shares will then appear in -the Unraid GUI under a Disk Shares section on the Shares tab. You will -want to modify the user permissions to restrict network user access if -desired, just like User Shares.

    When viewed at the Linux level the physical devices or pools will appear -directly under /mnt with a name corresponding to the array drive or -pool. (This happens regardless of whether Disk Shares are enabled) . -Examples of such names are:

    /mnt/diskX: these are array drives where X corresponds to the disk -number that shows in the Unraid GUI. The corresponding Disk Share at the -network level would be diskX

    /mnt/pool-name: These are pools. A single pool can actually consist of -multiple drives but Unraid treats them as if they were one drive. The -commonest example of a pool-name is 'cache' but it can be any name -defined by the user. The corresponding Disk Share at the network level -would be pool-name.

    The Unraid flash device that is used to boot Unraid and store all user -settings is also a physical device, but is not normally considered to be -a Disk Share. If you want it visible on the network then you can click -on it in the Main tab and set it to appear at the network level as the -'flash' share. At the Linux level it is mounted at /boot

    IMPORTANT -If you have both Disk Shares and User Shares enabled then there -is an important restriction that you must observe if you want to -avoid potential data loss. What you must NEVER do is copy -between a User Share and a Disk Share in the same copy -operation where the folder name on the Disk Share corresponds to the -User Share name. This is because at the base system level Linux does -not understand User Shares and therefore that a file on a Disk -Share and a User Share can be different views of the same -file. If you mix the share types in the same copy command you can -end up trying to copy the file to itself which results in the file -being truncated to zero length and its content thus being lost.

    There is no problem if the copy is between shares of the same type, -or copying to/from a disk mounted as an Unassigned Device.

    There is another quirk of the interaction between Linux and the Unraid -User Share system that users can encounter if they are working at the -Disk Share level. The Linux command for Move is implemented by first -trying a rename on the file (which is fast) and only if that fails does -it do a copy then delete operation. This can mean that under some -circumstances when working locally on the server (e.g. from the command -line when you try to move files from one user share to another, Linux -will often simply rename the files so they have a different path on the -same disk, in violation of any user share settings such as included -disks. The workaround for this is to instead explicitly copy from source -to destination so that new files get created following the user share -settings, then deleting from the source.

    Network access

    You can control what protocols should be supported for accessing the -Unraid server across the network. Click on Settings->Network Services -to see the various options available.. These options are:

    • SMB: This the standard protocol used by Windows systems. It is -widely implemented on other systems.
    • NFS: Network File System. This is a protocol widely -used on Unix compatible systems.
    • AFP: Apple File Protocol. This is the protocol that -has historically been used on Apple Mac systems. It is now a -deprecated option as the latest versions of MacOS now use SMB as the -transferred protocol for accessing files and folders over the -network.
    • FTP: File Transfer Protocol.

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the visibility of the share on the -network for each of the protocols you have enabled. The setting is -labelled Export and has the following options:

    • Yes: With this setting the share will be visible across the -network.
    • Yes (Hidden): With this setting the share can be accessed across -the network but will not be listed when browsing the shares on the -server. Users can still access the share as long as they know the -name and the user is prepared to enter in manually.
    • No: With this option selected then it is not possible to access -the share across the network.

    Access Permissions

    When you click on the name of a share on the Shares tab then there is a -section that allows you to control the access rights of the share on the -network for each of the protocols you have enabled. The setting is -labelled Security and has the following options:

    • Public: All users have both read and write access to the -contents of the share
    • Secure: All users including guests have read access, you select -which of your users have write access
    • Private: You select which of your users have access and for each -user whether that user has read/write or read-only access.

    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares that many -users fall foul of:

    • This is the fact that Windows only allows a single username to -be used to connect to a specific server at any given time. All -attempts to then connect to a different share on the same server -that are not public shares put up a Username/Password prompt and -this fails as though you have entered an incorrect password for this -username. If you have any shares on the server set to Private or -Secure access it can therefore be important that you connect to -such a share first before any shares set for Public access which -may connect as a guest user and make subsequent attempts to connect -with a specific user fail.
    • A workaround that can help with avoiding this issue is the fact that -if you access a server both by it's network name and via it's IP -address then Windows will treat it a two separate servers as far as -authentication is concerned.
    - - +

    Shares

    提示

    Once you have assigned devices to Unraid and started the array, we recommend that you plan and create shares to simplify how you store data across multiple disks in the array.

    One key feature of Unraid is the management of shares. Shares represent folders or drives on your Unraid server that can be accessed over a network. You can add as many shares as you like to your Unraid server. For example, you may have a share for your photo library, another for movies, and yet another for important documents, each with their own separate access permissions and configurations. They can be made secure and their configuration determines how data is written and spread out across your array or named pool of drives.

    There are two types of shares in Unraid:

    It is important to highlight that there are two different views of the same underlying file system. Every file/folder that appears under a user share will also appear under the disk share for the physical drive that is storing the file/folder.

    When you first initialize your array, Unraid automatically creates a handful of user shares. These are needed to support common plugins, containers, and virtual machines. You can create your own shares to store other data.

    You manage shares from the Shares tab in Unraid. You enable or disable shares in Settings > Global Share Settings, with user shares being enabled by default.

    + + \ No newline at end of file diff --git a/zh/unraid-os/manual/shares/network-access/index.html b/zh/unraid-os/manual/shares/network-access/index.html new file mode 100644 index 000000000..e2babbe1a --- /dev/null +++ b/zh/unraid-os/manual/shares/network-access/index.html @@ -0,0 +1,22 @@ + + + + + +Network access | Unraid Docs + + + + + + + + + + +
    +

    Network access

    Communication protocols

    For any type of share, you can control which protocols provide access to your Unraid server over the network. Unraid supports some of the most widely-used communication protocols for network access. These are:

    • SMB, or Server Message Block, is the standard protocol used by Windows systems. It is also widely implemented on other systems, including macOS X.
    • NFS, or Network File System, is a widely-used protocol on Unix-compatible systems.
    • FTP, or File Transfer Protocol, offers the flexibility of being supported through browsers and client software in different devices with different OSes.
    信息

    As of Unraid 6.9, AFP support has been deprecated. For best interoperability with macOS, and to export a share for Time Machine purposes, in Settings > SMB set the Enhanced macOS interoperability parameter to Yes.

    Protocol selection

    Your choice of protocol depends on the devices that exist on your network and the most common use case for file transfers. Modern versions of Windows and OS X support SMB and for this reason the protocol is enabled by default, while FTP and NFS are disabled. Each protocol also offers pros and cons, and is suited for different use cases.

    For example, if you use an FTP client to access an FTP share on your Unraid server, and transfer large amounts of data, you can schedule a file upload or a download, or even resume a failed transfer.

    Access permissions at share level

    Each protocol can be configured at the share level. On the Shares tab, select an existing share to display its settings. At the bottom of the share settings there is a security sub-section for any active network protocols. This section enables you to control the visibility of the share on the network. The setting is labelled Export and has the following options:

    • Yes - The share will be visible across the network.
    • Yes (Hidden) - The share can be accessed across the network but will not be listed when browsing the shares on the server. Users can still access the share as long as they know the name and the user is prepared to enter in manually.
    • No - This will disable network access through that protocol, for that share.

    Share security

    Share security determines how a share enables user access. If you need, a share may request user credentials to allow read/write access, or may be publicly available.

    For example, you may configure a movies share on your Unraid server to request a valid username and password, just to read data from that share. You can also make it public, which requires no user credentials.

    When you select an existing share on the Shares tab the share settings display. Here, you can find a security section that enables you to control access to the share, for each of the protocols you have enabled.

    The Security setting has the following options:

    • Public - The share is unsecured and all users have both read and write access to the contents of the share.
    • Secure - The share is secured and all users, including guests, have read access. You can select which of your users have write access.
    • Private - The share is private, and you select which of your users have access. You can then pick if that user has read/write or read-only access.
    Windows 'Gotcha'

    There is an issue with the way Windows handles network shares: Windows only allows a single set of credentials to be in use on any one server. Any attempts to connect to a different share on the same server, that requires a different set of credentials, and that is not a public share, automatically fails.

    If you have any shares on the server set to Private or Secure access, it is important that you connect to that share first, before any shares set for Public access.

    As a workaround you can access a server by both its network name and its IP address, that Windows identifies as different devices as far as authentication is concerned.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/shares/user-shares/index.html b/zh/unraid-os/manual/shares/user-shares/index.html new file mode 100644 index 000000000..b15988ad1 --- /dev/null +++ b/zh/unraid-os/manual/shares/user-shares/index.html @@ -0,0 +1,27 @@ + + + + + +User shares | Unraid Docs + + + + + + + + + + +
    +

    User shares

    提示

    Enable or disable user shares in Settings > Global Share Settings. User shares are enabled by default.

    Overview

    User shares provide an aggregated view of all top level folders of the same name across the cache and the array drives. The name of this top level folder is used as the share name. From a user perspective this gives a view that can span multiple drives when viewed at the network level. Note that no individual file spans multiple drives - it is just the directory level that is given a unified view.

    You manage User Shares from the Shares tab. There, you can see an overview off all shares on your Unraid server, you can create new shares, and edit or delete existing ones. If you manually create a top level folder on any drive, the system will automatically consider this to be a User Share and assign it default attributes.

    When viewed at the Linux level, user shares appear under the path /mnt/user. This includes the files on the main array and also any for the share on any pool. A user share is a logical view imposed on top of the underlying physical file system so you can see the same files if you look at the physical level, as described for Disk Shares.

    Note that current releases of Unraid also include the mount point /mnt/user0 that shows the files in User Shares omitting any files for a share that are on any pool. This is a different view of the files on your server. However, this mount point is now deprecated and may stop being available in a future Unraid release.

    The physical drive in the main array, used to store a physical file, is controlled by a number of settings for the share, including the allocation method, included or excluded disks, and the split level.

    If you change the settings for an existing share, the changes only affect where new files are put after the new settings are applied. Any files already present in the share are left where they are. To move existing files takes manual action.

    警告

    There is a quirk of the interaction between Linux and the Unraid user share system that users can encounter if they are working at the disk share level. The Linux command for 'move' is implemented by first trying a rename on the file (which is faster) and only if that fails does it do a copy-and-delete operation.

    This can mean when you try to move files from one user share to another from the command line, Linux will often simply rename the files so they have a different path on the same disk, in violation of any user share settings such as included disks. The workaround for this is to instead explicitly copy from source to destination so that new files get created following the user share settings, then deleting from the source.

    Share settings

    提示

    When you configure the settings for the share, select the Help icon in the top-right of the Unraid webGUI for detailed information on the individual settings.

    Minimum free space

    The Minimum free space setting is used with the allocation method and split level. This setting controls how much space must be free for a drive to be chosen for a new file. If the condition is met, Unraid stops putting new data onto the disk (as long as the Split Level setting indicates it can be split to a new disk).

    备注

    This parameter must be used when the fill-up allocation method is configured, or disk full errors will occur when there isn't enough space to fit a file you are trying to write.

    When Unraid receives a request to store a file, say for example file.eg, it has no idea how big the file is. Unraid will pick a spot to place it and begin to store the file data as the data is transferred over the network. Now, this may result in Unraid picking a storage disk with insufficient storage space for the complete file. Unraid is unaware there isn't enough space when it first places the file so it will only find out when the disk is full. At this point, the transfer will fail with a 'disk full' error. So, Unraid will write to a different disk if the minimum free space is set to a value larger than the biggest file size you will ever transfer.

    We recommend setting the value to twice the size of the largest file you will ever transfer. For example, if the largest file you have is 8GB in size then set the minimum free space to 16GB. This allows you to transfer files that may vary in size somewhat and not accidentally transfer one too large.

    The minimum free space is set in kilobytes (KB), megabytes (MB), gigabytes (GB), or terabytes (TB). Enter the value and units without any spaces. For example, if you want to set the value at 50 Gigabytes, enter 50GB. Note that new user shares will have a default 10% minimum free space assignment.

    Unraid will still place files on the disk if the split level does not allow the files to be placed on another disk with more free space. Note that Unraid will typically not move a file onto a new disk if you're overwriting or updating it. For example, a backup file that grows in size over time could end up filling a disk and causing a disk full error.

    警告

    There is also a Minimum Free Space setting for cache pools. This is used to determine if a new file for a user share, with the Use Cache setting of Yes or Prefer, should be written to the +cache or, instead, bypass the cache and go directly to the array.

    This needs to be set if you want to avoid filling a cache pool which can cause problems. As for this value when used with a User Share it should be larger than the largest file you intend to write, and some people like to make it significantly larger. You get to this setting by clicking on a pool on the Main tab.

    Primary and Secondary storage (Unraid 6.12)

    The Primary storage parameter defines the location - Cache, Array, or any named pool - to which new files will be written for the selected share. The Secondary storage parameter sets the location where files will be moved to if there is not enough room in primary storage.

    When primary storage is below the Minimum Free Space value, new files and folders are created in secondary storage.

    备注

    If you select an array or any named pool for your primary or secondary storage, you must also configure its allocation method, split level, and any included or excluded disks.

    Unraid 6.12 introduces new terminology to make it clearer to users where files are initially placed, and where they will end up. The same functionality is present in earlier releases, but has often been misunderstood by new users.

    For the Primary storage drop-down:

    • This setting is mandatory. You must select a primary storage device or pool. Primary storage has a default value of Cache
      • any named pool can be selected.
      • Array can be selected.

    For the Secondary storage drop-down:

    • None: This means that there is no secondary storage set for this share. Note that secondary storage is optional.
      • if Primary storage is a pool name, then the only options are None and Array.
      • if Primary storage is Array, then only None appears as an option.

    Use Cache and mover behavior with user shares (Unraid 6.11 and earlier)

    The following settings are only found in Unraid 6.11 and earlier. They achieve the same functionality as the settings available in 6.12 but are presented differently.

    INFO

    Starting with Unraid 6.9, multiple pools can exist and they can have any name you choose. Any of these pools can act as a cache in the way Unraid uses the term. The word cache therefore is referring to this functionality and not necessarily to the pool name.

    Unraid includes an application called Mover that is used in conjunction with user shares. It's behavior is controlled by the Use Cache for new files setting under each user share. The way these settings operate is as follows:

    • Yes: Write new files to the cache as long as the free space on the cache is above the Minimum free space value. If the free space is below that then bypass the cache and write the files directly to the main array.

      When Mover runs it will attempt to move files to the main array as long as they are not currently open. Which array drive will get the file is controlled by the combination of the Allocation Method, Split Level, and Minimum Free Space setting for the share.

    • No: Write new files directly to the array. Which array drive will get the file is controlled by the combination of the Allocation method, Split level, and Minimum Free Space setting for the share.

      When Mover runs it will take no action on files for this share even if there are files on the cache that logically belong to this share.

    • Only: Write new files directly to the cache. If the free space on the cache is below the Minimum free space setting for the cache then the write will fail with an out-of-space error.

      When Mover runs it will take no action on files for this share even if there are files on the main array that logically belong to this share.

    • Prefer: Write new files to the cache if the free space on the cache is above the Minimum free space setting for the share, and if the free space falls below that value then write the files to the main array instead.

      When Mover runs it will attempt to move any files for this share that are on the main array back to the cache as long as the free space on the cache is above the Minimum free space setting for the cache

      It is the default setting for the appdata and system shares that support the Docker and VM subsystems. Generally, you want the files/folders belonging to these shares to reside on the cache as it provides better performance for Docker containers and VMs if their files are not on the main array. This is due to the performance overhead of maintaining parity on the main array which slows down write operations.

      This setting works for a share even if you do not (yet) have a physical cache drive(s) as files will be written directly to the array. If at a later date you add a cache drive, Mover will automatically try and move the files in any share set to Prefer to the pool defined as the cache for the share. This is why Prefer is the default for shares that are located on the cache rather than Only as it caters to those who do not (yet) have a cache drive.

    Moving Files from a Pool (cache) to the Array

    This is the more traditional usage of a pool for caching where you want the files for a particular share initially written to a pool that acts as a cache to maximize write speed, but later you want it to be moved to the main array for long term storage.

    Sometimes, however, you may find that the files seem to be 'stuck' in a pool. In this situation, the way to get the files belonging to a share from a pool onto the main array is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Cache -> Array.
    3. Disable Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the pool (cache) to the array.
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Moving Files from the Array to a Pool (cache)

    You typically want files associated with running Docker containers or VMs on a pool to maximize performance. It is not unusual, for one reason or another, to find that you have files on the main array which you really want to have in a pool. In particular, this is likely to happen for the appdata or default system shares.

    The way to proceed to get the files belonging to a share from the main array onto a pool is:

    1. Make sure that Primary Storage is set to Cache and Secondary Storage is set to Array, for any shares you want to move files from.
    2. Set the Mover action field to Array -> Cache.
    3. Disable any Docker and VM services, if they are enabled, as files open in these services cannot be moved.
    4. Go to Main > Array Operation, and select Move to manually move files from the array to the pool (cache).
    5. When mover finishes, you can re-enable the Docker and/or VMs services you use if you disabled them earlier.

    Allocation method

    When you create a new user share, or when any object (file or directory) is created within a user share, the system must determine which data disk the user share or object will be stored on. In general, a new user +share, or object within a user share, is created on the data disk with the most free space. However, there are a set of configuration parameters available to fine-tune disk allocation.

    The basic allocation strategy for a share is defined by its allocation method configuration parameter. You may select one of three allocation methods for the system to use: High-water, Most-free, or Fill-up.

    High-water method

    The High-water setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level.

    Example

    If you have an array that consists of drives of 8 TB, 3 TB and 2 TB, the largest drive is the one that sets the switch points at 4 TB, 2 TB, 1 TB, and so on, halving the amount in each pass.

    • While the 4 TB switch point is active the 8 TB drive one is filled to 4 TB free space left.
    • When the 2 TB switch point becomes active, the 8 TB and 3 TB drives each get used in disk order until they have 2 TB free space
    • Finally, the 1 TB switch point becomes active, so each drive now gets used in disk order until there is only 1 TB free space.

    This pattern continues with progressively smaller high-water levels until the disks are full.

    Fill-up method

    The fill-up allocation method attempts to fill each disk in order from the lowest numbered disk to the highest numbered disk. The fill-up allocation method must be used in conjunction with the minimum free +space setting. Otherwise, Unraid will begin to give disk full errors and not allow any more transfers once the first disk gets close to being full.

    Most-free method

    The most free allocation method picks the disk with the most free space and writes the data to that disk. Each time a file is written Unraid will check the free space on the included disks and pick the one with the +most free space.

    Split level

    The Split level setting tells Unraid how many folder levels are allowed to be created on multiple disks. The split level can be used to ensure that the contents of a folder are kept on the same disk. The split level +numbering starts with the user share being the top level and given the number 1.

    Automatically split any directory as required

    When a new file or subdirectory is created in a share, Unraid OS first chooses which disk it is created on, according to the configured Allocation method. If the parent directory containing the new file or subdirectory does not exist on this disk, then Unraid OS will first create all necessary parent directories, and then create the new file or subdirectory.

    Automatically split only the top level directory as required

    When a new file or subdirectory is being created in the first level subdirectory of a share, if that first level subdirectory does not exist on the disk being written, then the subdirectory will be created first. If a new file or subdirectory is being created in the second or lower level subdirectory of a share, the new file or subdirectory is created on the same disk as the new file or subdirectory's parent directory.

    Automatically split only the top "N" level directories as required

    Similar to the previous option. When a new file or subdirectory is being created, if the parent directory is at level "N", and does not exist on the chosen disk, Unraid OS will first create all necessary parent directories. If the parent directory of the new file or subdirectory is beyond level "N", then the new file or subdirectory is created on the same disk where the parent directory exists.

    Manual - do not automatically split directories

    When a new file or subdirectory needs to be created in a share, Unraid OS will only consider disks where the parent directory already exists.

    信息

    In the event of there being conflicts between the Minimum free space, Split Level and the Allocation method settings in deciding which would be an appropriate drive to use, the Split level setting always wins. This means that you can get an out-of-space error even though there is plenty of space on other array drives that the share can logically use.

    Included or excluded disks

    These settings allow you to control which array drives can hold files for the share. Never set both values, set only the one that is most convenient for you. If no drives are specified under these settings then all drives allowed under Settings > Global Share settings are allowed.

    Unraid will first check the included disks(s) set and then the excluded disk(s) set when deciding which disk to place a file on. Then, it will use the split level and allocation method to pick a disk which is allowed to hold the file.

    信息

    The include/exclude settings at the individual share level only control which disks new files can be written to. Files on other disks that are in a folder corresponding to the share name will still show up under that share for read purposes.

    Included disk(s)

    The included disks(s) parameter defines the set of disks which are candidates for allocation to that share. All disks may be used by the user share when the Included disk(s) parameter is left blank. Specify the disks to include here. For example, set the included disk(s) to "disk1,disk2,disk3" to allow the share to only use disk1, disk2 and disk3.

    Excluded disk(s)

    The excluded disk(s) parameter defines the set of disks which are excluded from use by the user share. No disks are excluded from use by the user share when the excluded disk(s) parameter is left blank. Specify the disks to exclude here. For example, set the excluded disk(s) to "disk1,disk2" to restrict a share from using disk1 and disk2.

    Default Shares

    If Docker or VMs are enabled then, Unraid automatically sets up a number of default shares to support their use. You are not required to use these shares, and the system will let you remove them if you do not want to use them for their standard purpose. However, we recommend their use, as it makes it easier to support users who encounter problems.

    The shares that fall into this category are:

    • appdata - This is the default location for storing working files associated with docker containers. Typically there will be a sub-folder for each docker container.
    • system - This is the default location for storing the docker application binaries, and VM XML templates
    • domains - This is the default location for storing virtual disk images (vdisks) that are used by VMs.
    • isos - This is the default location for storing CD ISO images for use with VMs.
    信息

    We do not recommend changing the permissions on most default shares, as these may impact the functioning of docker containers and VMs. The exception is the isos share that can be shared over the network so you can place new ISOs to use in virtual machines.

    + + + + \ No newline at end of file diff --git a/zh/unraid-os/manual/storage-management/index.html b/zh/unraid-os/manual/storage-management/index.html index 80999e92a..c2f8a66bd 100644 --- a/zh/unraid-os/manual/storage-management/index.html +++ b/zh/unraid-os/manual/storage-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Storage Management

    To assign devices to +

    Storage Management

    To assign devices to the array and/or cache, first login to the server's webGui. Click on the Main tab and select the devices to assign to slots for parity, data, and cache disks. Assigning devices to Unraid is easy! Just @@ -920,7 +920,7 @@ parity system is file system agnostic as it works at the physical sector level and is not even aware of the file system that is in use on any particular drive.

    In addition drives can be -encrypted. A point to +encrypted. A point to note about using encryption is that if you get any sort of file system corruption then encryption can make it harder (and sometimes impossible to recover data on the corrupted file system.

    If using a cache pool (i.e multiple drives) then the supported types are @@ -1412,8 +1412,8 @@ using the BTRFS file system.

    BTRFS supports a variety of RAID profiles and these will perform more like a traditional RAID system giving much higher throughput than the main Unraid array.

    Recovery after drive failure tends to be harder and more prone to lead -to data loss which is one disadvantage of using pools for everything.

    - - +to data loss which is one disadvantage of using pools for everything.

    + + \ No newline at end of file diff --git a/zh/unraid-os/manual/tools/index.html b/zh/unraid-os/manual/tools/index.html index db2bfd151..bcb6d8a10 100644 --- a/zh/unraid-os/manual/tools/index.html +++ b/zh/unraid-os/manual/tools/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools +

    Tools

    THIS SECTION IS STILL UNDER CONSTRUCTION

    The Tools section of the Unraid GUI is used to access a number of Tools to help with managing an Unraid server on a day-to-day basis. The list of tools available is often extended by 3rd party supplied plugins.

    Unraid Standard Tools

    This section covers tools that are supplied as standard with an Unraid installation. They are grouped into a number of sections for ease of @@ -68,8 +68,8 @@ application's appdata config files without utilizing the command prompt)

    Docker Safe New Perms

    This is part of the Fix Common Problems plugin.

    It differs from the standard Unraid New Permissions tool in that it will never change permissions on the appdata folder/share that is normally -used to store working files for docker containers.

    About

    Update Assistant

    - - +used to store working files for docker containers.

    About

    Update Assistant

    + + \ No newline at end of file diff --git a/zh/unraid-os/manual/troubleshooting/index.html b/zh/unraid-os/manual/troubleshooting/index.html index 18f730789..ad860fe84 100644 --- a/zh/unraid-os/manual/troubleshooting/index.html +++ b/zh/unraid-os/manual/troubleshooting/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This +

    Troubleshooting

    THIS SECTION IS STILL UNDER CONSTRUCTION

    More detail still needs to be added

    Most of the time Unraid systems function with minimal problems. This section is intended to help with resolving issues that are most commonly encountered.

    There are some important general guidelines that it is recommended that a user follows that will help with any troubleshooting that may be @@ -134,7 +134,7 @@ do so to provide the logs captured by the syslog server as these are not included in the standard system diagnostics.

    Docker Containers

    The standard system diagnostics do not contain much that will help with diagnosing issues with specific docker containers.

    MORE DETAIL NEEDED

    VMs

    The standard system diagnostics do not contain much that will help with -diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting +diagnosing issues with specific VMs.

    MORE DETAIL NEEDED

    Boot Issues

    Preparing the flash drive

    This is covered under the Getting Started section of the documentation.

    If for any reason you decide that you need to redo the flash drive then it is a good idea to make sure you first backup the current flash drive @@ -600,7 +600,7 @@ User Share will never appear to be on the same mount point so a copy + delete is done automatically.

  • Make sure the mount points for source and target appear to be different at the Linux level.
  • Move between physical drives rather than at the User Share level.
  • - - + + \ No newline at end of file diff --git a/zh/unraid-os/manual/upgrade-instructions/index.html b/zh/unraid-os/manual/upgrade-instructions/index.html index b2195fa6a..fb56b5aa2 100644 --- a/zh/unraid-os/manual/upgrade-instructions/index.html +++ b/zh/unraid-os/manual/upgrade-instructions/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your +

    Upgrading Unraid

    Prerequisites

    Before upgrading, we highly recommend making a complete backup of your USB flash device. You can do this by copying the entire contents of the "flash" share to a separate computer.

    From version 6.4 or higher

    1. Boot your server up and login to the web interface
    2. Click the Tools tab
    3. Click "Update OS" under the About section
    4. Click "Check for Updates" to see if a new release is available
    5. Click "Update" to apply the update
    6. Once the upgrade is complete, reboot your server for it to take effect

    Note: You can optionally install releases from the "Next" branch as @@ -100,7 +100,7 @@ earlier.

    From version 5.x or earlier

    Please see this forum post for information on upgrading.

    Manual Upgrade or Downgrade

    This is useful if you don't have access to the Unraid webgui for some reason.

    Manual upgrade using a network share or by putting the flash drive in another system

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Unzip that file locally
    • Access the 'flash' share on the server, or physically put the flash drive in the local computer
    • If the previous directory does not exist on the flash drive, create it
    • Move (not copy) bz* and changes.txt from the root of the flash drive to the previous directory, overwriting files as needed
    • Copy bz* and changes.txt from the unzipped file to the root of the flash drive
    • Reboot the server

    Manual upgrade from the Unraid command line

    • Copy the URL of the unRAIDServer-version.zip file that you want from https://unraid.net/download
    • Login to the Unraid server using SSH, telnet, or a local keyboard/mouse
    • Type these commands one line at a time and press enter. If there are errors along the way, stop and ask for help:
    cd /tmp
    rm -f unraid.zip
    rm -rf unraid_install
    wget -O unraid.zip <paste the URL from above>
    [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP the file was not downloaded"
    unzip -d unraid_install unraid.zip
    [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP the file was not extracted properly"
    [[ ! -d /boot/previous ]] && mkdir /boot/previous
    mv /boot/bz* /boot/previous
    mv /boot/changes.txt /boot/previous
    cp unraid_install/bz* /boot
    cp unraid_install/changes.txt /boot
    sync -f /boot
    sleep 5
    reboot
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/manual/users/index.html b/zh/unraid-os/manual/users/index.html index 01ec8501e..6002ce0c5 100644 --- a/zh/unraid-os/manual/users/index.html +++ b/zh/unraid-os/manual/users/index.html @@ -9,16 +9,16 @@ - - - + + +
    -

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does +

    Users

    THIS SECTION IS STILL UNDER CONSTRUCTION

    Even though Unraid is based at its core on a Linux distribution it does not support the standard set of user facilities available on most Linux systems. Instead the users defined in Unraid can be divided into:

    • Admin user:
    • Share permissions Users:
    • Other Users:

    Admin User (root)

    Share permissions Users

    Other Users

    - - + + \ No newline at end of file diff --git a/zh/unraid-os/manual/vm-management/index.html b/zh/unraid-os/manual/vm-management/index.html index ff49433f5..060f43791 100644 --- a/zh/unraid-os/manual/vm-management/index.html +++ b/zh/unraid-os/manual/vm-management/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running +

    Managing VMs

    Overview

    While Docker Containers are the preferred mechanism for running Linux-based applications such as media servers, backup software, and file sharing solutions, virtual machines add support for non-Linux workloads and the ability to utilize devices that the host cannot (think @@ -382,7 +382,7 @@ file to install the QEMU guest agent.

  • Shut down your VM.
  • Step 6: Remove the temporary vdisk and start the VM

    1. Click to edit the VM using the form-based editor (the pencil symbol)
    2. Remove the secondary vdisk
    3. Ensure the primary vdisk is pointing to your original vdisk file (it may be pointing to the secondary vdisk, and if so, update it to point to your actual vdisk)
    4. When completed, click Update
    5. Start your VM
    6. Verify your device manager shows no warnings
    7. DONE!
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/manual/vm-support/index.html b/zh/unraid-os/manual/vm-support/index.html index 5042fa06e..a63c5563d 100644 --- a/zh/unraid-os/manual/vm-support/index.html +++ b/zh/unraid-os/manual/vm-support/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    VM Support

    Overview

    Unraid 6 currently supports the virtualization of nearly any 64-bit +

    - - + + \ No newline at end of file diff --git a/zh/unraid-os/manual/what-is-unraid/index.html b/zh/unraid-os/manual/what-is-unraid/index.html index 6dd5a6e71..b6a53cd9d 100644 --- a/zh/unraid-os/manual/what-is-unraid/index.html +++ b/zh/unraid-os/manual/what-is-unraid/index.html @@ -9,13 +9,13 @@ - - - + + +
    -

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you +

    What is Unraid?

    Unraid® is an embedded operating system that is designed to provide you with the ultimate control over your hardware. In addition to performing the duties of a robust NAS (network-attached storage), Unraid is also capable of acting as an application server and virtual machine host. @@ -208,8 +208,8 @@ transfer files from the cache to the array.

  • Docker Containers. Manage application controls from a single pane of glass. Add applications with minimal effort using community-provided templates.
  • Virtual Machines. Choose between pre-created virtual machine -images or create your own custom VM from scratch.
  • - - +images or create your own custom VM from scratch.
    + + \ No newline at end of file diff --git a/zh/unraid-os/manual/zfs/placeholder/index.html b/zh/unraid-os/manual/zfs/placeholder/index.html index cb52a657f..53f95e42e 100644 --- a/zh/unraid-os/manual/zfs/placeholder/index.html +++ b/zh/unraid-os/manual/zfs/placeholder/index.html @@ -9,14 +9,14 @@ - - - + + + - - +
    + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.10.0/index.html b/zh/unraid-os/release-notes/6.10.0/index.html index 313c8e7e1..6496b4e4f 100644 --- a/zh/unraid-os/release-notes/6.10.0/index.html +++ b/zh/unraid-os/release-notes/6.10.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -80,7 +80,7 @@ daemon, we recommend setting up either a static DHCP lease, or assigning a static IP address for your server.  Finally, we have set up nginx such that the URL's:

    • http://<server-name>.<local-tld>/

    or

    • https://<server-name>.<local-tld>/

    will redirect to https://[lan-ip].[hash].myunraid.net

    More information including use cases may be found in Documentation -here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been +here.

    Virtualization

    Both libvirt and qemu have been updated.  In addition, qemu has been compiled with OpenGL support, and ARM emulation (experimental).

    Windows 11 Support

    To support Windows 11 which requires TPM and Secure boot, we have added TPM emulation; and, added a "Windows 11" VM template which automatically selects TPM-aware OVMF bios.  Also, here are @@ -175,7 +175,7 @@ component called wsdd2 in an effort to eliminate instances where the wsd daemon would start consuming 100% of a CPU core.

  • Fixed issue where you couldn't create a docker image on a share name that contains a space.
  • Fixed issue where 'mover' would not move to a pool name that -contains a space.
  • Fixed issue in User Share +contains a space.
  • Fixed issue in User Share file system where permissions were not being honored.
  • Fixed jumbo frames not working.
  • sysctl: handle net.netfilter.nf_conntrack_count max exceeded (increase setting to 131072) - hattip to Community Member @DieFalse
  • Fixed bug found by @thohell where md_sync_limit was not being honored to limit stripe_head cache usage when other I/O is active. @@ -259,7 +259,7 @@ shares
  • webgui: jQuery: version 3.6.0
  • webgui: present CA-signed certificate subject as a link
  • webgui: privatize host in diagnostics
  • webgui: refactor UpdateDNS.php: anonymize verbose output by default, other improvements
  • webgui: remove 'My Servers' skeleton page
  • webgui: require sign in to provision cert
  • webgui: support simultaneous LAN SSL with self-signed cert and DNS-based SSL with Lets Encrypt cert
  • webgui: various Multi-language corrections
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.10.1/index.html b/zh/unraid-os/release-notes/6.10.1/index.html index f1b706d35..039e6cd95 100644 --- a/zh/unraid-os/release-notes/6.10.1/index.html +++ b/zh/unraid-os/release-notes/6.10.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ introduced a regression where only partition 1 was considered, leaving those users unable to complete the boot sequence.

    This is fixed in 6.10.1 - and this is the only functional change in 6.10.1 vs. 6.10.0.

    Change Log vs. Unraid OS 6.10.0

    Management

    • startup: fix regression: support USB flash boot from other than partition 1
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.10.2/index.html b/zh/unraid-os/release-notes/6.10.2/index.html index e0641b2d2..3ee22efad 100644 --- a/zh/unraid-os/release-notes/6.10.2/index.html +++ b/zh/unraid-os/release-notes/6.10.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -50,7 +50,7 @@ 'Auto' to 'Strict'
  • webgui: Fixed: smGlue not included when selecting a controller
  • webgui: Fixed: allow share names with embedded ampersand
  • webgui: add LXC terminal support (for LXC Plugin)
  • webgui: Docker Web UI to use Docker label for icons as fallback
  • webgui: VM Manager: support libvirt networks (make libvirt networks accessible via gui)
  • webgui: fix issue where 'root' login works with password from another username which includes string 'root'
  • webgui: Update OS page spelling corrction: warninging -> warning
  • webgui: helptext review: minor corrections
  • - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.10.3/index.html b/zh/unraid-os/release-notes/6.10.3/index.html index 7c29a1da1..dea03e90c 100644 --- a/zh/unraid-os/release-notes/6.10.3/index.html +++ b/zh/unraid-os/release-notes/6.10.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -20,7 +20,7 @@ reports of data corruption involved platforms which also (coincidentally) used 'tg3' network driver. If you created a blank 'config/modprobe.d/tg3.conf' file you may remove it.

    Plugin authors: A plugin file may include an <ALERT> tag which displays a markdown formatted message when a new version is available. Use this to give instructions or warnings to users before the upgrade is done.

    Brought back color-coding in logging windows.

    Bug fixes

    Fix issue detecting Mellanox NIC.

    Misc. webGUI bug fixes

    Change Log vs. Unraid OS 6.10.2

    Base distro

    • no changes

    Linux kernel

    • version 5.15.46-Unraid
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough

    Management

    • startup: improve network device detection
    • webgui: Added color coding in log files
    • webgui: In case of flash corruption try the test again
    • webgui: Improved syslog reading
    • webgui: Added log size setting when viewing syslog
    • webgui: Plugin manager: add ALERT message function
    • webgui: Add INFO icon to banner
    • webgui: Added translations to PageMap page
    • webgui: Fix: non-correcting parity check actually correcting if non-English language pack installed
    • webgui: Updated azure/gray themes
      • Better support for Firefox
      • Move utilization and notification indicators to the right
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.11.0/index.html b/zh/unraid-os/release-notes/6.11.0/index.html index a668173d8..ea47bb915 100644 --- a/zh/unraid-os/release-notes/6.11.0/index.html +++ b/zh/unraid-os/release-notes/6.11.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -25,7 +25,7 @@ "btrfs fi" commands will attempt to read btrfs metadata from this device which fails because there really is not a btrfs filesystem there.

  • Fixed bug in mover that prevented files from being moved from unRAID array to a cache pool (mode Prefer) if the share name contains a space.

  • Change Log vs. Unraid OS 6.10.3

    Management

    • Add sha256 checks of un-zipped files in unRAIDServer.plg.
    • bash: in /etc/profile omit "." (current directory) from PATH
    • docker: do not call 'docker stop' if there are no running containers
    • emhttpd: improve standby (spinning) support
    • mover: fixed issue preventing moving filed from array to cache if share name contains a space
    • rc.nginx: enable OCSP stapling on certs which include an OCSP responder URL
    • rc.nginx: compress 'woff' font files and instruct browser to cache
    • rc.wireguard: add better troubleshooting for WireGuard autostart
    • rc.S: support early load of plugin driver modules
    • SMB: fixed 'fruit' settings for the USB Flash boot device
    • SMB: remove NTLMv1 support since removed from Linux kernel
    • SMB: (temporarily) move vfs_fruit settings into separate /etc/samba/smb-fruit.conf file
    • SMB: (temporarily) get rid of Samba 'idmap_hash is deprecated' nag lines
    • startup: Prevent installing downgraded versions of packages which might exist in /boot/extra
    • upc: version v1.3.0
    • webgui: Plugin system update
      • Detach frontend and backend operation
      • Use nchan as communication channel
      • Allow window to be closed while backend continues
      • Use SWAL as window manager
      • Added multi remove ability on Plugins page
      • Added update all plugins with details
    • webgui: docker: use docker label as primary source for WebUI
      • This makes the 'net.unraid.docker.webui' docker label the primary source when parsing the web UI address. If the docker label is missing, the template value will be used instead.
    • webgui: Update Credits.page
    • webgui: VM manager: Fix VM log can not open when VM name has an embedded '#'
    • webgui: Management Access page: add details for self-signed certs
    • webgui: Parity check: fix regression error
    • webgui: Remove session creation in scripts
    • webgui: Update ssh key regex
      • Add support for ed25519/sk-ed25519
      • Remove support for ecdsa (insecure)
      • Use proper regex to check for valid key types
    • webgui: misc. style updates
    • webgui: Management access: HTTP port setting should always be enabled
    • webgui: Fix: preserve vnc port settings
    • webgui: Fix regression error in plugin system
    • webgui: Fix issue installing registration keys
    • webgui: Highlight case selection when custom image is selected
    • webgui: fix(upc): v1.4.2 apiVersion check regression
    • webgui: Update Disk Capabilities pages for NVME drives
    • webgui: chore(upc): v1.6.0
    • webgui: Plugin system and docker update
    • webgui: System info - style update
    • webgui: Plugins: keep header buttons in same position
    • webgui: Prevent overflow in container size for low resolutions
    • webgui: VM Manager: Add boot order to GUI and CD hot plug function
    • webgui: Docker Manager: add ability to specify shell with container label.
    • webgui: fix: Discord notification agent url
    • webgui: Suppress info icon in banner message when no info is available
    • webgui: Add Spindown message and use -n for identity if scsi drive.
    • webgui: Fix SAS Selftest
    • webgui: Fix plugin multi updates
    • webgui: UPS display enhancements:
      • Add icon for each category
      • Add translation in UPS section on dashboard
      • Add Output voltage / frequency value
      • Add coloring depending on settings
      • Normalize units
      • Make updates near real-time
      • Added UPS model field
    • webgui: JQuery: version 3.6.1
    • webgui: JQueryUI: version 1.13.2
    • webgui: improved 'cache busting' on font file urls
    • webgui: Fixed: text color in docker popup window sometimes wrong
    • webgui: Fixed: show read errors during Read Check
    • webgui: VM Manager: Add USB Startup policy; add Missing USB support
    • webgui: Docker: fixed javascript error when no containers exist
    • webgui: added 3rd party system diagnostics
      • added diagnostics for third party plugin packages
      • added diagnostics for /dev/dri devices
      • added diagnostics for /dev/dvb devices
      • added diagnostics for nvidia devices

    Linux kernel

    • version 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166)
    • md/unraid: version 2.9.24
    • CONFIG_IOMMU_DEFAULT_PASSTHROUGH: Passthrough
    • CONFIG_VIRTIO_IOMMU: Virtio IOMMU driver
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_FIREWIRE: FireWire driver stack
    • CONFIG_FIREWIRE_OHCI: OHCI-1394 controllers
    • CONFIG_FIREWIRE_SBP2: Storage devices (SBP-2 protocol)
    • CONFIG_FIREWIRE_NET: IP networking over 1394
    • CONFIG_INPUT_UINPUT: User level driver support
    • CONFIG_INPUT_JOYDEV: Joystick interface
    • CONFIG_INPUT_JOYSTICK: Joysticks/Gamepads
    • CONFIG_JOYSTICK_XPAD: X-Box gamepad support
    • CONFIG_JOYSTICK_XPAD_FF: X-Box gamepad rumble support
    • CONFIG_JOYSTICK_XPAD_LEDS: LED Support for Xbox360 controller 'BigX' LED
    • CONFIG_MLX5_TLS: Mellanox Technologies TLS Connect-X support
    • CONFIG_MLX5_ESWITCH: Mellanox Technologies MLX5 SRIOV E-Switch suppor
    • CONFIG_MLX5_CLS_ACT: MLX5 TC classifier action support
    • CONFIG_MLX5_TC_SAMPLE: MLX5 TC sample offload support
    • CONFIG_MLXSW_SPECTRUM: Mellanox Technologies Spectrum family support
    • CONFIG_NET_SWITCHDEV: Switch (and switch-ish) device support
    • CONFIG_TLS: Transport Layer Security support
    • CONFIG_TLS_DEVICE: Transport Layer Security HW offload
    • CONFIG_TLS_TOE: Transport Layer Security TCP stack bypass
    • CONFIG_VMD: Intel Volume Management Device Driver
    • added additional sensor drivers:
      • CONFIG_AMD_SFH_HID: AMD Sensor Fusion Hub
      • CONFIG_SENSORS_AQUACOMPUTER_D5NEXT: Aquacomputer D5 Next watercooling pump
      • CONFIG_SENSORS_MAX6620: Maxim MAX6620 fan controller
      • CONFIG_SENSORS_NZXT_SMART2: NZXT RGB & Fan Controller/Smart Device v2
      • CONFIG_SENSORS_SBRMI: Emulated SB-RMI sensor
      • CONFIG_SENSORS_SHT4x: Sensiron humidity and temperature sensors. SHT4x and compat.
      • CONFIG_SENSORS_SY7636A: Silergy SY7636A
      • CONFIG_SENSORS_INA238: Texas Instruments INA238
      • CONFIG_SENSORS_TMP464: Texas Instruments TMP464 and compatible
      • CONFIG_SENSORS_ASUS_WMI: ASUS WMI X370/X470/B450/X399
      • CONFIG_SENSORS_ASUS_WMI_EC: ASUS WMI B550/X570
      • CONFIG_SENSORS_ASUS_EC: ASUS EC Sensors
    • patch: add reference to missing firmware in drivers/bluetooth/btrtl.c
      • rtl8723d_fw.bin
      • rtl8761b_fw.bin
      • rtl8761bu_fw.bin
      • rtl8821c_fw.bin
      • rtl8822cs_fw.bin
      • rtl8822cu_fw.bin
    • CONFIG_BPF_UNPRIV_DEFAULT_OFF: Disable unprivileged BPF by default
    • patch: quirk for Team Group MP33 M.2 2280 1TB NVMe (globally duplicate IDs for nsid)
    • turn on all IPv6 kernel options:
      • CONFIGINET6*
      • CONFIGIPV6*
    • CONFIG_RC_CORE: Remote Controller support
    • CONFIG_SFC_SIENA: Solarflare SFC9000 support
    • CONFIG_SFC_SIENA_MCDI_LOGGING: Solarflare SFC9000-family MCDI logging support
    • CONFIG_SFC_SIENA_MCDI_MON: Solarflare SFC9000-family hwmon support
    • CONFIG_SFC_SIENA_SRIOV: Solarflare SFC9000-family SR-IOV support
    • CONFIG_ZRAM: Compressed RAM block device support
    • CONFIG_ZRAM_DEF_COMP_LZ4: Default ram compressor (lz4)
    • turn on all EDAC kernel options
      • CONFIG_EDAC: EDAC (Error Detection And Correction) reporting
      • CONFIGEDAC*

    Base distro

    • aaa_base: version 15.1
    • aaa_glibc-solibs: version 2.36
    • aaa_libraries: version 15.1
    • at: version 3.2.3
    • bind: version 9.18.6
    • btrfs-progs: version 5.19.1
    • ca-certificates: version 20220622
    • cifs-utils: version 7.0
    • coreutils: version 9.1
    • cracklib: version 2.9.8
    • cryptsetup: version 2.5.0
    • curl: version 7.85.0
    • cyrus-sasl: version 2.1.28
    • dbus: version 1.14.0
    • dhcpcd: version 9.4.1
    • dmidecode: version 3.4
    • docker: version 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030)
    • etc: version 15.1
    • ethtool: version 5.19
    • eudev: version 3.2.11
    • file: version 5.43
    • findutils: version 4.9.0
    • firefox: version 105.0.r20220922151854-x86_64 (AppImage)
    • fuse3: version 3.12.0
    • gawk: version 5.2.0
    • gdbm: version 1.23
    • git: version 2.37.3
    • glib2: version 2.72.3
    • glibc: version 2.36
    • glibc-zoneinfo: version 2022c
    • gnutls: version 3.7.7
    • gptfdisk: version 1.0.9
    • grep: version 3.8
    • gzip: version 1.12
    • hdparm: version 9.65
    • htop: version 3.2.1
    • icu4c: version 71.1
    • inotify-tools: version 3.22.6.0
    • iperf3: version 3.11
    • iproute2: version 5.19.0
    • iptables: version 1.8.8
    • jemalloc: version 5.3.0
    • json-c: version 0.16_20220414
    • json-glib: version 1.6.6
    • kmod: version 30
    • krb5: version 1.20
    • libaio: version 0.3.113
    • libarchive: version 3.6.1
    • libcap-ng: version 0.8.3
    • libcgroup: version 3.0.0
    • libdrm: version 2.4.113
    • libepoxy: version 1.5.10
    • libffi: version 3.4.2
    • libgcrypt: version 1.10.1
    • libgpg-error: version 1.45
    • libidn: version 1.41
    • libjpeg-turbo: version 2.1.4
    • libmnl: version 1.0.5
    • libnetfilter_conntrack: version 1.0.9
    • libnfnetlink: version 1.0.2
    • libnftnl: version 1.2.3
    • libnl3: version 3.7.0
    • libpng: version 1.6.38
    • libssh: version 0.10.4
    • libtasn1: version 4.19.0
    • libtirpc: version 1.3.3
    • liburcu: version 0.13.1
    • libusb: version 1.0.26
    • libwebp: version 1.2.4
    • libxml2: version 2.9.14
    • libxslt: version 1.1.36
    • libzip: version 1.9.2
    • logrotate: version 3.20.1
    • lsof: version 4.95.0
    • lzip: version 1.23
    • mc: version 4.8.28
    • mcelog: version 189
    • nano: version 6.4
    • nfs-utils: version 2.6.2
    • nghttp2: version 1.49.0
    • nginx: version 1.22.0
    • ntfs-3g: version 2022.5.17
    • ntp: version 4.2.8p15
    • oniguruma: version 6.9.8
    • openssh: version 9.0p1
    • openssl: version 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274)
    • openssl-solibs: version 1.1.1q (CVE-2022-1292)
    • p11-kit: version 0.24.1
    • pciutils: version 3.8.0
    • pcre2: version 10.40
    • perl: version 5.36.0
    • php: version 7.4.30 (CVE-2022-31625 CVE-2022-31626)
    • pkgtools: version 15.1
    • rpcbind: version 1.2.6
    • rsync: version 3.2.6
    • samba: version 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742)
    • sqlite: version 3.39.3
    • sudo: version 1.9.11p3
    • sysfsutils: version 2.1.1
    • sysstat: version 12.6.0
    • sysvinit-scripts: version 15.1
    • talloc: version 2.3.4
    • tar: version 1.34
    • tevent: version 0.13.0
    • tree: version 2.0.2
    • util-linux: version 2.38.1
    • wayland: version 1.21.0
    • wget: version 1.21.3
    • xfsprogs: version 5.18.0
    • xz: version 5.2.6
    • zlib: version 1.2.12

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.11.1/index.html b/zh/unraid-os/release-notes/6.11.1/index.html index 98b5989e7..5f71fd0a6 100644 --- a/zh/unraid-os/release-notes/6.11.1/index.html +++ b/zh/unraid-os/release-notes/6.11.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ at system boot up. Users are advised to regenerate the WG configs. This can be done, e.g., by clicking in a field to change a value and then change it back in order to get the Apply button to light up. Then click Apply.

  • Fixed issue where empty popup windows gets displayed with certain browsers and devices.

  • Restored "NTLMv1 authenication" for incoming SMB connections.

  • Change Log vs. Unraid OS 6.11.0

    Base distro

    • acpid: version 2.0.34
    • bash: version 5.2.000
    • bind: version 9.18.7
    • ca-certificates: version 20220922
    • dbus: version 1.14.2
    • dnsmasq: version 2.87
    • docker: version 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109)
    • git: version 2.38.0
    • glib2: version 2.72.4
    • glibc-zoneinfo: version 2022d
    • gnutls: version 3.7.8
    • harfbuzz: version 5.2.0
    • intel-microcode: version 20220809
    • libXtst: version 1.2.4
    • libXxf86vm: version 1.1.5
    • libffi: version 3.4.3
    • libvirt: version 8.7.0
    • libvirt-php: version 0.5.6
    • lsof: version 4.96.3
    • nghttp2: version 1.50.0
    • pango: version 1.50.11
    • qemu: version 7.1.0 (built adding ppc, riscv32/64 support, replace arm with aarch64)
    • sqlite: version 3.39.4
    • xterm: version 373
    • xz: version 5.2.7

    Linux kernel

    • version 5.19.14
    • CONFIG_DRM_MGAG200: Matrox G200
    • CONFIG_X86_SGX: Software Guard eXtensions (SGX)
    • CONFIG_X86_SGX_KVM: Software Guard eXtensions (SGX) Virtualization
    • CONFIG_CRYPTO_ZSTD: Zstd compression algorithm
    • md/unraid: version 2.9.25
    • patch: silence EDID "block all zeros" and "has corrupt header" notices
    • patch: add NVMe quirks for non-compliant devices reported by users

    Management

    • webgui: VM Manager: Update GUI Options
      • Include 9P and Virtiofs
      • Remove 9P option for Windows.
      • Update XML if virtiofs and Windows in addition to Linux.
      • Update VM Share GUI Options
    • webgui: Fixed: wrong feedback display on VM page
    • webgui: Dashboard: store graph data in file instead of cookie
    • webgui: Ask user to provide diagnostics before downgrading the OS
    • webgui: Spice html client in addition to VNC
    • webgui: improve handling of windows-style config files
    • webgui: WireGuard: add explicit interface name in routing
    • webgui: SWAL: intercept "esc" button to stop nchan upon window closing
    • webgui: nchan: delayed command execution
      • This prevents an empty popup window in certain browsers and devices

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.11.2/index.html b/zh/unraid-os/release-notes/6.11.2/index.html index 9ba121f3f..536d522d6 100644 --- a/zh/unraid-os/release-notes/6.11.2/index.html +++ b/zh/unraid-os/release-notes/6.11.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -22,7 +22,7 @@ show text for guest not running or guest agent is not installed.
  • Fix unable to change HyperV settings.
  • Add 'start with console' option.
  • OVMF for QEMU: version edk2-stable202208
  • WireGuard

    Changes:

    • Fixed problem setting up tunnels if using default network.cfg settings.
    • Fix typo setting up routes.

    Plugin manager

    Changes:

    • If plugin files cannot be read from CDN URL, fall back to non-CDN URL.
    • Enforce plugin files must end in '.plg'.
    • Fix post hook failing when plugin download fails.
    • Adjust the wget parameters to keep it from indefinitely hanging.

    Scheduler

    For scheduled Parity Checks, change default mode to Non-correcting. In case there are disk issues during a parity check it would be safer to have the default be non-correct. If sync errors are detected then the user can analyze the log and act accordingly.

    Misc. webGUI

    Changes:

    • DashStats: The inbound networkstats is out of place when numeric value is xxx.x.
    • Docker: Add/clarify Help to Docker Custom Network settings.
    • Docker: Fix display aberration on orphan images
    • SMART attributes: clarify message: "Can not read attributes" to "Attributes not available"
    • ShareEdit/ShareList: show pool not defined when share pool is not a defined pool

    Linux kernel

    • version 5.19.17
    • patch: additional NVMe BOGUS_NID quirks for non-compliant devices reported by users
    • sound support:
      • CONFIG_SOUND: Sound card support
      • CONFIG_SND: Advanced Linux Sound Architecture
      • CONFIG_SND_OSSEMUL: Enable OSS Emulation
      • CONFIG_SND_PCM_OSS: OSS PCM (digital audio) API
      • CONFIG_SND_HRTIMER: HR-timer backend support
      • CONFIG_SND_SUPPORT_OLD_API: Support old ALSA API
      • CONFIG_SND_PROC_FS: Sound Proc FS Support
    • CONFIG_IPV6: The IPv6 protocol (change from module to built-in)

    Base Distro

    Package updates including CVE mitigations:

    • bash: version 5.2.002
    • bind: version 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795)
    • btrfs-progs: version 6.0
    • curl: version 7.86.0
    • dbus: version 1.14.4
    • freeglut: version 3.4.0
    • git: version 2.38.1 (CVE-2022-39253 CVE-2022-39260)
    • glibc-zoneinfo: version 2022e
    • harfbuzz: version 5.3.1
    • icu4c: version 72.1
    • iproute2: version 6.0.0
    • kernel-firmware: version 20221017_48407ff
    • less: version 608
    • libXmu: version 1.1.4
    • libXrender: version 0.9.11
    • libedit: version 20221009_3.1
    • libffi: version 3.4.4
    • libgpg-error: version 1.46
    • libpciaccess: version 0.17
    • libunistring: version 1.1
    • libxkbfile: version 1.1.1
    • libxshmfence: version 1.3.1
    • lsof: version 4.96.4
    • nginx: version 1.22.1
    • openssh: version 9.1p1
    • php: version 7.4.32
    • pixman: version 0.42.0
    • rsync: version 3.2.7
    • samba: version 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592)
    • sudo: version 1.9.12
    • tree: version 2.0.4
    • xkeyboard-config: version 2.37
    • xterm: version 375
    • zlib: version 1.2.13 (CVE-2022-37434)

    "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.11.3/index.html b/zh/unraid-os/release-notes/6.11.3/index.html index 041e52aae..71d23e777 100644 --- a/zh/unraid-os/release-notes/6.11.3/index.html +++ b/zh/unraid-os/release-notes/6.11.3/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.3

    Version 6.11.3 2022-11-08

    This release is focused on bug fixes and minor improvements. In particular, we need to revert a base library due to a bug which prevents formatting devices >2TB in size.

    Management

    • Reverted 'libpopt.so.0.0.1' to workaround 'sgdisk' bug used to format devices larger than 2TB.
    • Fixed issue where description setting for 'root' user was not preserved across reboots.
    • Fix issue that sometimes information window opens empty.

    VM Manager

    • Set correct values when edit for USB Boot and correct Share Selection.
    • Add Nic boot order.

    Base Distro

    • gptfdisk: version 1.0.8 (revert from version 1.0.9)
    • libXext: version 1.3.5
    • libXinerama: version 1.1.5
    • libdrm: version 2.4.114
    • libedit: version 20221030_3.1
    • mcelog: version 190
    • ntfs-3g: version 2022.10.3
    • openssl: version 1.1.1s
    • openssl-solibs: version 1.1.1s
    • pixman: version 0.42.2
    • sessreg: version 1.1.3
    • sudo: version 1.9.12p1
    • xsetroot: version 1.1.3
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.11.4/index.html b/zh/unraid-os/release-notes/6.11.4/index.html index d9139f362..f7c587beb 100644 --- a/zh/unraid-os/release-notes/6.11.4/index.html +++ b/zh/unraid-os/release-notes/6.11.4/index.html @@ -9,16 +9,16 @@ - - - + + +

    6.11.4

    Version 6.11.4 2022-11-18

    This release is focused on bug fixes and minor improvements.

    Diagnostics

    • Fix share information in Diagnostics.

    Docker

    • docker: version 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715)
    • Fix: "please wait" message after removing orphan image.
    • Set IPVLAN as default for new installations.

    Samba

    • samba: version 4.17.3 (CVE-2022-42898)
    • Set the default "max open files" to the value of 'ulimit -n' which is currently set to 40960.

    VM Manager

    • Allow Network PCI devices to have boot order.
    • Change to use libvirt_domain_interface_addresses which has been available for a long time but was not documented in the API manual. Using this function stops tainted warnings being written to the log, ex: "Domain id=4 is tainted: custom-ga-command".
    • Fix for VM Rename.

    Misc

    • Fixed issue which prevented array Autostart with a Trial key.
    • Fixed encoding issue when passwords contain multi-byte UTF-8 characters.
    • Parity History: add day of week to date.
    • Shares: Fix: do not allow creation of hidden share names.
    • Main page: reinitialize disk transfer statistics upon opening new broswer session.
    • Management Access page: improved messaging for SSL
    • Firefox: version 107.0.r20221110173214 (AppImage)
    • When all browser sessions close, stop unnecessary background processes.

    Base Distro

    • bash: version 5.2.009
    • btrfs-progs: version 6.0.1
    • gdk-pixbuf2: version 2.42.10
    • glibc-zoneinfo: version 2022f
    • intel-microcode: version 20221108
    • libX11: version 1.8.2
    • libnftnl: version 1.2.4
    • nghttp2: version 1.51.0
    • php: version 7.4.33 (CVE-2022-31630 CVE-2022-37454)
    • sed: version 4.9
    • sysstat: version 12.7.1
    • xkbevd: version 1.1.5
    • xkill: version 1.0.6
    • xlsatoms: version 1.1.4
    • xlsclients: version 1.1.5
    • xz: version 5.2.8
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.11.5/index.html b/zh/unraid-os/release-notes/6.11.5/index.html index 0abf9064e..f4f607615 100644 --- a/zh/unraid-os/release-notes/6.11.5/index.html +++ b/zh/unraid-os/release-notes/6.11.5/index.html @@ -9,15 +9,15 @@ - - - + + +

    6.11.5

    Version 6.11.5 2022-11-20

    This release reverts a change which modified the wrong file. This resulted in not being able to select 'macvlan' custom docker network type. New installations only will now have 'ipvlan' selected by default.

    Docker

    • fix: Set IPVLAN as default only for new installations.
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.12.0/index.html b/zh/unraid-os/release-notes/6.12.0/index.html index 88d2fc852..d0f8885f0 100644 --- a/zh/unraid-os/release-notes/6.12.0/index.html +++ b/zh/unraid-os/release-notes/6.12.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -79,7 +79,7 @@ still mounted - not good.

    To get around this, you must first create a temp directory on the flash device and then 'mv' (or drag) all the existing bz files into this temp directory. Now you can copy the new bz files to the root of the flash device and reboot.

    Linux kernel

    • version 6.1.33
    • md/unraid: version 2.9.27
    • CONFIG_FS_DAX: File system based Direct Access (DAX) support
    • CONFIG_VIRTIO_FS: Virtio Filesystem
    • CONFIG_ZONE_DEVICE: Device memory (pmem, HMM, etc...) hotplug support
    • CONFIG_USBIP_HOST: Host driver
    • CONFIG_INTEL_MEI: Intel Management Engine Interface
    • CONFIG_INTEL_MEI_ME: ME Enabled Intel Chipsets
    • CONFIG_INTEL_MEI_GSC: Intel MEI GSC embedded device
    • CONFIG_INTEL_MEI_PXP: Intel PXP services of ME Interface
    • CONFIG_INTEL_MEI_HDCP: Intel HDCP2.2 services of ME Interface
    • CONFIG_INTEL_PMC_CORE: Intel PMC Core driver
    • CONFIG_DRM_I915_PXP: Enable Intel PXP support
    • CONFIG_SCSI_FC_ATTRS: FiberChannel Transport Attributes
    • CONFIG_FUSION_SPI: Fusion MPT ScsiHost drivers for SPI
    • CONFIG_FUSION_FC: Fusion MPT ScsiHost drivers for FC
    • CONFIG_FUSION_CTL: Fusion MPT misc device (ioctl) driver
    • CONFIG_FUSION_LOGGING: Fusion MPT logging facility
    • CONFIG_X86_AMD_PSTATE: AMD Processor P-State driver
    • CONFIG_LRU_GEN: Multi-Gen LRU
    • CONFIG_SERIAL_8250_NR_UARTS=32: Maximum number of 8250/16550 serial ports
    • CONFIG_SERIAL_8250_RUNTIME_UARTS=4: Number of 8250/16550 serial ports to register at runtime
    • CONFIG_FANOTIFY: Filesystem wide access notification

    Base Distro updates

    • aaa_glibc-solibs: version 2.37
    • adwaita-icon-theme: version 43
    • at-spi2-core: version 2.46.0
    • bash: version 5.2.015
    • bash_completion: version 2.11
    • bind: version 9.18.12
    • btrfs-progs: version 6.2.1
    • ca-certificates: version 20221205
    • cryptsetup: version 2.6.1
    • curl: version 7.88.1
    • dbus: version 1.14.6
    • diffutils: version 3.9
    • dnsmasq: version 2.89
    • docker: version 23.0.6
    • e2fsprogs: version 1.47.0
    • encodings: version 1.0.7
    • file: version 5.44
    • firefox: version 111.0 (AppImage)
    • freetype: version 2.13.0
    • fuse3: version 3.12.0
    • gawk: version 5.2.1
    • git: version 2.39.2
    • glib2: version 2.74.6
    • glibc: version 2.37
    • glibc-zoneinfo: version 2022g
    • gnutls: version 3.7.9
    • gptfdisk: version 1.0.9
    • gtk+3: version 3.24.37
    • harfbuzz: version 7.1.0
    • htop: version 3.2.2
    • iproute2: version 6.2.0
    • iptables: version 1.8.9
    • iputils: version 20221126
    • kernel-firmware: 20230531_fc90c59
    • less: version 612
    • libICE: version 1.1.1
    • libSM: version 1.2.4
    • libX11: version 1.8.4
    • libXau: version 1.0.11
    • libXcomposite: version 0.4.6
    • libXdamage: version 1.1.6
    • libXdmcp: version 1.1.4
    • libXpm: version 3.5.15
    • libXrandr: version 1.5.3
    • libXres: version 1.2.2
    • libXxf86dga: version 1.1.6
    • libarchive: version 3.6.2
    • libdrm: version 2.4.115
    • libfontenc: version 1.1.7
    • libglvnd: version 1.6.0
    • libjpeg-turbo: version 2.1.5.1
    • libpcap: version 1.10.3
    • libpng: version 1.6.39
    • libpsl: version 0.21.2
    • liburcu: version 0.14.0
    • libwebp: version 1.3.0
    • libxkbcommon: version 1.5.0
    • libxkbfile: version 1.1.2
    • libxshmfence: version 1.3.2
    • lmdb: version 0.9.30
    • logrotate: version 3.21.0
    • lsof: version 4.98.0
    • lz4: version 1.9.4
    • lzlib: version 1.13
    • mc: version 4.8.29
    • mcelog: version 191
    • mpfr: version 4.2.0
    • nano: version 7.2
    • ncurses: version 6.4
    • nginx: version 1.23.3
    • nghttp2: version 1.52.0
    • openssh: version 9.2p1
    • openssl: version 1.1.1t
    • openssl-solibs: version 1.1.1t
    • openzfs: version 2.1.12
    • pango: version 1.50.14
    • pciutils: version 3.9.0
    • pcre2: version 10.42
    • php: version 8.2.4
    • php-libvirt: version 0.5.7
    • php-markdown: version 2.0.0
    • samba: version 4.17.7
    • sqlite: version 3.41.0
    • sudo: version 1.9.13p2
    • sysstat: version 12.7.2
    • tdb: version 1.4.8
    • tevent: version 0.14.1
    • traceroute: version 2.1.2
    • transset: version 1.0.3
    • tree: version 2.1.0
    • usbutils: version 015
    • xcb-util: version 0.4.1
    • xdriinfo: version 1.0.7
    • xf86-video-vesa: version 2.6.0
    • xfsprogs: version 6.1.1
    • xhost: version 1.0.9
    • xinit: version 1.4.2
    • xkbcomp: version 1.4.6
    • xkeyboard-config: version 2.38
    • xorg-server: version 21.1.7
    • xprop: version 1.2.6
    • xrandr: version 1.5.2
    • xset: version 1.2.5
    • xterm: version 379
    • xz: version 5.4.1
    • zstd: version 1.5.4
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.12.1/index.html b/zh/unraid-os/release-notes/6.12.1/index.html index ad5ca5456..00988ae8b 100644 --- a/zh/unraid-os/release-notes/6.12.1/index.html +++ b/zh/unraid-os/release-notes/6.12.1/index.html @@ -9,14 +9,14 @@ - - - + + +

    Version 6.12.1 2023-06-20

    Changes vs. 6.12.0

    Bug fixes

    • emhttpd: remove "unraid" from reserved names list
    • emhttpd: properly handle "ERROR" strings in 'btrfs filesystem show' command output
    • emhttpd: prevent cmdStart if already Started
    • network: Revised service reload functionality: ensures the services are only reloaded once
    • network: rc.library: read IP addresses directly from interfaces instead of file
    • network: NTP: fix listening interfaces
    • network: NTP: exclude WG tunnels and user defined interfaces
    • network: NTP: add interface name in config
    • network: SSH: add interface name in config
    • webgui: fix PHP8 warning in UPS Settings page
    • webgui: Dashboard: show ZFS percentage based on c_max value
    • webgui: Dashboard: suppress coloring of ZFS utilization bar
    • webgui: Dashboard: other misc fixes

    Linux kernel

    • version 6.1.34

    Base Distro

    • ttyd: version 1.7.3 (fixes issue of invisible underbar characters with certain FireFox versions)

    Security updates

    • ca-certificates: version 20230506
    • curl: version 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319)
    • git: version 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007)
    • ntp: version 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555)
    • openssl: version 1.1.1u (CVE-2023-2650)
    • openssh: version 9.3p1
    • php: version 8.2.7
    • libX11: version 1.8.6 (CVE-2023-3138)
    • libssh: version 0.10.5 (CVE-2023-1667 CVE-2023-2283)
    • zstd: version 1.5.5
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.12.2/index.html b/zh/unraid-os/release-notes/6.12.2/index.html index c98a7a854..fc6437125 100644 --- a/zh/unraid-os/release-notes/6.12.2/index.html +++ b/zh/unraid-os/release-notes/6.12.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -21,7 +21,7 @@ is automatically applied to all 'config/wireguard/*.conf' files when you update via Update OS page. For manual update or if you downgrade, it is necessary to make a "dummy change" in a setting on the Settings/VPN Manager page and then click Apply.

    Bug fixes and improvements

    • email notifications: add line in /etc/php.ini: 'mail.mixed_lf_and_crlf=On' to workaround change in PHP8 CRLF handling
    • emhttpd: Fix regression: emulated ZFS volumes not recognized
    • emhttpd: Fix regression: format fails if diskFsType==auto and defaultFsType specifies encryption
    • emhtptd: Fix regression: mount fails if diskFsType==auto
    • htop: remove predefined /root/.config/htop/htoprc file
    • network: RC services update:
      • NFS - fix service reload
      • RPC - fix service reload
      • NGINX - remove HTTPS port in FQDN redirect when default 443
      • All services - register IPv4 Link local assignment (169.254.xxx.xxx)
      • All services - make lock file programmable
      • WireGuard: delayed service update to avoid race condition
      • rc.library: do not allow duplicates in bind list
    • webgui: Dashboard updates:
      • Re-introduce show/hide tile content
      • Add new icon function to show/hide all content at once
      • Reduce gap between columns
      • description -> model
      • ZFS: fix percentage value to max 100%
      • Use prototype function: This makes it easier for 3rd party developers to automatically hide dynamic content
      • Handle duplicate IP assignments and give warning
      • change header MEMORY to SYSTEM
    • webgui: OS Update: add checkbox to confirm reading release notes before upgrading
    • webgui: diagnostics: include list of duplicate assignments
    • webgui: NFS: for Security/Private increase Rule field from 256 to 512 characters.

    Linux kernel

    • version 6.1.36

    Base Distro

    • bind: version -9.16.42 (CVE-2023-2911)
    • docker: 20.10.24 (revert from v23.0.6)
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.12.3/index.html b/zh/unraid-os/release-notes/6.12.3/index.html index 7d8d7074c..5722d5b24 100644 --- a/zh/unraid-os/release-notes/6.12.3/index.html +++ b/zh/unraid-os/release-notes/6.12.3/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -19,7 +19,7 @@ an issue where the webGUI will not load in certain instances.

    Note: If you have code in your 'go' script to disable IPv6, remove that and disable it via the 'Settings/Network Settings' page instead. Manually disabling IPv6 will cause conflicts.

    Docker

    This release resolves an issue where Docker does not properly stop when the array Stops, which can result in an unclean shutdown.

    If Docker containers have issues starting after a while, and you are running Plex, go to your Plex Docker container settings, switch to advanced view, and add this to the Extra Params: --no-healthcheck

    Bug fixes and improvements

    • rc.docker:
      • revised docker daemon running check
      • rc.docker: change route metric of main interface as needed to avoid conflict with shim interface with shim interface
    • rc.library:
      • code optimization for ipv6 max/min
      • support ipv4 mapped addresses
    • rc.nginx: explicit ipv4/ipv6 selection on lo interface
    • shfs: correct share size calculation when ZFS is one of the volumes
    • webgui:
      • VM settings page: fixed typo
      • Share Edit page: make minimum free space settings always available
      • Wireguard: fix typo in Ipv6 mask
      • Routing table: fix display of metric value when zero

    Linux kernel

    • version 6.1.38
    • Added support to monitor and also limit power on Intel Core (2nd Gen+) CPU models:
      • CONFIG_POWERCAP: Generic powercap sysfs driver
      • CONFIG_INTEL_RAPL: Intel RAPL Support via MSR Interface
      • CONFIG_IDLE_INJECT: Idle injection framework

    Base Distro

    • firefox: version 115.0.r20230710165010 (AppImage)
    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.9.0/index.html b/zh/unraid-os/release-notes/6.9.0/index.html index c66c81434..b31c36150 100644 --- a/zh/unraid-os/release-notes/6.9.0/index.html +++ b/zh/unraid-os/release-notes/6.9.0/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -284,7 +284,7 @@ can override at boot
  • mount all btrfs volumes using 'space_cache=v2' option
  • mount loopbacks with 'noatime' option; enable 'direct-io'
  • mount_image: suppport bind-mount
  • non-rotational device partitions aligned on 1MiB boundary by default
  • plugin: support sha256 file validation
  • rsyslog: fix broken "Mirror syslog to flash"
  • samba: disable aio by default
  • shfs: move: preserve ioctl_iflags when moving between same file system types
  • shfs: move: support spares files
  • smart-one.cfg keeps SMART info per-ID instead of per-slot; disk warning/critical config moved to disk/pool cfg
  • smb: fixed Ad join issue
  • smb: remove setting 'aio' options in smb.conf, use samba defaults
  • ssh: add /root/.ssh symlink to /boot/config/ssh/root directory
  • ssh: allow only root user, require passwords, disable non-root tunneling
  • ssh: require passwords, disable non-root tunneling
  • startup: setup an overlayfs for /lib/modules and /lib/firmware
  • syslog: configure to also listen on localhost udp port 514
  • web terminal: inhibit warning pop-up when closing window
  • wireguard support: rc.wireguard: add iptables rules
  • webGUI: Fix dockerupdate.php warnings
  • webGUI: Update statuscheck
  • webgui: Add 'Portuguese (pt)' key map option for libvirt
  • webgui: Add customizable timeout when stopping containers
  • webgui: Add log viewer for vfio-pci
  • webgui: Add notification agent for Discord
  • webgui: Add pools information to diagnostics
  • webgui: Add raid1c3 and raid1c4 btrfs pool balance options.
  • webgui: Add update dialog to docker context menu
  • webgui: Added "safe mode" one-shot safemode reboot option
  • webgui: Added btrfs info for all pools in diagnostics
  • webgui: Added new display setting: show normalized or raw device identifiers
  • webgui: Added new setting "Enable user share assignment" to cache pool
  • webgui: Added support for private docker registries with basic auth or no auth, and improvements for token based authentication
  • webgui: Allow different image types to upload with 512K max
  • webgui: Allow duplicate containers different icons
  • webgui: Allow markdown within container descriptions
  • webgui: Change Icon for Motherboard Info from cog (settings) to info
  • webgui: Changed: Consistency between dashboard and docker on accessing logs
  • webgui: Dashboard: fix stats of missing interface
  • webgui: Dashboard: style adjustment for server icon
  • webgui: Detect invalid session and logout current tab
  • webgui: Diagnostics: Remove SHA256 Hashes
  • webgui: Disallow "?" in share names
  • webgui: Display settings: colors should be 3 or 6 character hex digits
  • webgui: Do not show CA profiles in Add Container list
  • webgui: Docker: allow BTRFS or XFS vdisk, or folder location
  • webgui: Docker: more intuitive handling of images
  • webgui: Fix ' appearing
  • webgui: Fix Azure / Gray Switch Language being cut-off
  • webgui: Fix Banner Warnings Not Dismissing without reload of page
  • webgui: Fix Started VMs not appearing in dashboard
  • webgui: Fix crash when reading very large log files (limiting output to 1000 lines).
  • webgui: Fix dismiss all notification
  • webgui: Fix not able to change parity check schedule if no cache pool present
  • webgui: Fix notifications continually reappearing
  • webgui: Fix unable to use top right icons if notifications present
  • webgui: Fix wrong docker run URL reference
  • webgui: Fix: Dashboard / Docker scrolling on iPad devices
  • webgui: Fix: properly set samesite cookie (fix login issue with Safari)
  • webgui: For raid6 btrfs pool data profile use raid1c3 metadata profile.
  • webgui: Icon buttons re-arrangement
  • webgui: Main page: hide Move button when user shares are not enabled
  • webgui: Multi-language: Fixed regression error: missing indicator for required fields
  • webgui: Multilanguage: Fix unable to delete / edit users
  • webgui: Network settings: show first DNSv6 server
  • webgui: Network: allow metric value of zero to set no default gateway
  • webgui: Network: fix privacy extensions not set
  • webgui: New Perms: Support multi-cache pools
  • webgui: Notifications: Fix gap on white / black
  • webgui: Permit file system configuration when array Started for Unmountable volumes.
  • webgui: Prevent "Add" reverting to English when adding a new user with an invalid username
  • webgui: Prevent bonded nics from being bound to vfio-pci too
  • webgui: Remove WG from Dashboard if no tunnels defined
  • webgui: Show message when too many files for browsing
  • webgui: Support links on notifications
  • webgui: Suppress Autofan link on Dashboard if plugin not installed
  • webgui: Suppress WG on Dashboard if no tunnels defined
  • webgui: Switch Diagnostics to web socket
  • webgui: SysDevs - warn if leave page without saving
  • webgui: SysDevs overhaul with vfio-pci.cfg binding
  • webgui: Tabbed case select window
  • webgui: Task Plugins: Providing Ability to define Display_Name
  • webgui: Update Feedback.php
  • webgui: Update jGrowl to version 1.4.7
  • webgui: Update noVNC to v1.2.0
  • webgui: Updated case icons
  • webgui: Use update image dialog for update entry in docker context menu
  • webgui: VM Manager: add 'virtio-win-0.1.189-1' to VirtIO-ISOs list
  • webgui: VM manager: Fix: Changing from VM VNC graphics to GPU passthrough
  • webgui: VM manager: add virtio-win-0.1.190-1
  • webgui: VM manager: new setting "Network Model"
  • webgui: VMs: Fixed: Adding NICs or VirtFS mounts to a VM is limited
  • webgui: VMs: Fixed: rare cases vdisk defaults to Auto when it should be Manual
  • webgui: VMs: change default network model to virtio-net
  • webgui: VMs: more intuitive handling of image selection
  • webgui: avoid php syntax error if autov() source file does not exist
  • webgui: better handling of multiple nics with vfio-pci
  • webgui: correct login form wrong default case icon displayed
  • webgui: do not try to display SMART info that causes spin-up for devices that are spun-down
  • webgui: dockerMan: Allow readmore in advanced view
  • webgui: dockerMan: Only allow name compatible with docker
  • webgui: dockerMan: Selectable start upon install
  • webgui: fix: jGrowl covering buttons
  • webgui: fix: login prompt when switching between servers
  • webgui: other misc. improvements
  • webgui: pools not enabled for user shares should not be selectable for cache
  • webgui: sanitize input on tail_log
  • webgui: set 'mid-tower' default case icon
  • webgui: support spin-up/down and temperature monitoring of unassigned devices
  • webgui: turn off username autocomplete in login form
  • webgui: vm manager: Preserve VNC port settings
  • webgui: vnc: add browser cache busting
  • "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

    - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.9.1/index.html b/zh/unraid-os/release-notes/6.9.1/index.html index c88ba4f9c..4b841232f 100644 --- a/zh/unraid-os/release-notes/6.9.1/index.html +++ b/zh/unraid-os/release-notes/6.9.1/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -35,7 +35,7 @@ spindown/spinup logic
  • rc.local: ensure required directories exist on USB flash boot device
  • rc.local: for Docker containers: grant access to graphics device nodes /dev/dri/*
  • rc.nginx: add Cache-Control:nocache header to novnc
  • webgui: Increase syslog buffer from 1000 to 3000 lines
  • webgui: SysDevs fix display aberration
  • webgui: Diagnostics: include modprobe.d files
  • webgui: Diagnostics: include go as go.txt
  • webgui: Update share security helptext
  • webgui: Deprecate donation links in templates in lieu of links in CA profiles
  • webgui: Protect GUI from invalid .page files
  • webgui: Suppress ipv6 multicast entries in route table display
  • webgui: synchronize helptext.txt with lang-en_US repo
  • webgui: user management - disable password autocomplete
  • webgui: Dashboard: Fix color for utilization of disk
  • - - + + \ No newline at end of file diff --git a/zh/unraid-os/release-notes/6.9.2/index.html b/zh/unraid-os/release-notes/6.9.2/index.html index ee2de3687..84d513610 100644 --- a/zh/unraid-os/release-notes/6.9.2/index.html +++ b/zh/unraid-os/release-notes/6.9.2/index.html @@ -9,9 +9,9 @@ - - - + + +
    @@ -26,7 +26,7 @@ @ich777 to facilitate installing the correct driver.

    Change Log vs. Unraid OS 6.9.1

    Base distro

    • docker: version 20.10.5
    • fuse3: version 3.10.2
    • nginx: version 1.19.9
    • samba: verson 4.12.14 (CVE-2020-27840 CVE-2020-27840)

    Linux kernel

    • version 5.10.28
    • include all CONFIGNF* modules
    • oot: realtek r8125: version 9.005.01

    Management

    • emhttpd: detect out-of-band device spin-up
    • shfs: add 'copy_file_range()' support
    • shfs: fix 'mknod' creating a fifo
    • webgui: login: implement max 3 failed login attempts per 15 minute interval
    • webgui: Fix links on notifications not being present if in summary display
    • webgui: Plugins: Move incompatible plugins to ../plugins-error
    • webgui: Fix missing CSRF when deleting pool
    • webgui: Fix .sweet-alert color
    • webgui: Translations adjustments
    • webgui: Diagnostics: Prevent double clicks on download button
    • webgui: Fix default usage thresholds not sending notification
    • webgui: Fix CSS span.select background-color
    • webgui: Make diagnostics messages left aligned
    • webgui: Fixed javascript error in DeviceInfo.page preventing settings to be saved
    • webgui: Update DeviceInfo.page
    • webgui: Prevent autofilling of passwords on containers
    • webgui: Docker: Do not allow CPU pinning if no template present
    • webgui: Fix .sweet-alert .sa-icon color, * in the CSS
    - - + + \ No newline at end of file